V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TomVista
V2EX  ›  程序员

接到了一份另类的垃圾代码

  •  2
     
  •   TomVista · 188 天前 · 5656 次点击
    这是一个创建于 188 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是一份小程序。

    代码命名很规范,功能抽象做的也很好,代码结构也很漂亮,代码复用做的也很到位,但是这东西能跑起来,真他妈是个奇迹。

    主要问题出在,

    • 这兄弟完全不考虑 渲染过程 /生命周期,数据驱动视图的过程。

    网速的不同,手机性能的不同,会看到不同的表现,在 Android 和 iso 上表现更加诡异的不同.

    取回来个列表 用 foreach 更新视图?? 直接 set a=b,不香吗?

    ajax 回来的东西,直接取值,我寻思你家网速 比内存寻址 还快??

    修改 v-if=true 然后 直接操作 dom,咋想的??

    你这个 settimeout 我只在 笑话 里见过,真他妈长见识了。

    • 诡异的样式继承 和 冗余的元素,依赖 js 进行的页面布局

    我可搞不明白为什么 Android 样式没问题,ios 有问题,ios 9 没问题 ios 10 有问题,

    我也搞不明白,这个.container 一会儿 block 一会儿 felx,一会儿 position:abs,扔到全局样式,还他妈在页面重写,是为什么

    这个 view-〉 view-〉 view -〉 正文内容 是什么鬼? view-〉正文 不香吗?

    我还他妈搞不明白 为什么 page height:100% 就能解决的 问题,非他妈要在 js 取个 pageHeight 修改 dom style


    遇到这些问题导致的 bug,半天能找出来问题算快的,我可真佩服写这个代码的小天才。一个基本功这么优秀的人,是怎么写出来这种东西的。。

    第 1 条附言  ·  188 天前
    git 记录显示,两个亲搞了一年多,没啥好为他俩开脱的了,
    第 2 条附言  ·  187 天前
    我翻了一下 git 记录,这俩人是 前端开发,这个项目是 2 年前开始,他们主要写的是各个平台的小程序 还有快应用,其中一个人还是 h5 开发,中间没有换人的情况,
    46 条回复    2021-05-27 17:05:38 +08:00
    skys215
        1
    skys215   188 天前
    就是这样的,所以卷起来了
    emeab
        2
    emeab   188 天前
    很正常 可能是学生写的. 喜欢搞骚操作..
    mokeyjay
        3
    mokeyjay   188 天前   ❤️ 13
    大概率是大佬起头写的框架和基本结构,交给其他人接手后续开发和维护了
    sudoy
        4
    sudoy   188 天前
    这兄弟可能是转行过来的,代码从别的地方拷贝过来修改的
    dandelion911
        5
    dandelion911   188 天前
    提高自身的不可替代性
    Umenezumi
        6
    Umenezumi   188 天前   ❤️ 6
    也有可能是后端突然呗拉取做小程序
    binjoo
        7
    binjoo   188 天前
    后端写前端的可能性比较大。。
    codespots
        8
    codespots   188 天前
    曾经我也遇到过类似风格的代码,一份外包写的项目,用的是 angularjs+jquery+jquey mobile 数据驱动+原生 dom 操作+jQuery dom 操作加 jQuery 修改 angularjs 的 model 呆了半个月实在受不了跑路了,最后还是被强留半个月改了好多东西
    efaun
        9
    efaun   188 天前
    dfkjgklfdjg
        10
    dfkjgklfdjg   188 天前   ❤️ 2
    呃,可能是跨端,我们这边的混合开发 er 会写出这样的代码,这个小哥会 Android 原生和 Flutter,Objective-C 和 Swift,也会 Vue 和 React,同时也会写微信 /支付宝小程序,现实增强也会,所以代码风格会....突然某一部分的代码转不过弯来用其它平台的 Coding 方式绕一个弯.....
    eric96
        11
    eric96   188 天前
    后端写前端基本就这情况
    xrr2016
        12
    xrr2016   188 天前
    哈哈哈,优秀
    dfkjgklfdjg
        13
    dfkjgklfdjg   188 天前
    还有一个项目,用的 Php+vue,我接手的时候听项目描述没问题啊,结果是 Laravel 的 View 层 嵌了 Vue 的 .vue 文件 ...还不用编译 .vue 文件,我至今没有明白他是怎么实现的.....
    manhere
        14
    manhere   188 天前 via Android
    这应该是典型的“从网上找了个源码,各种拼凑缝合”
    fiypig
        15
    fiypig   188 天前
    喷就对了,有些人本身就不适合做开发, 比如我。
    KuroNekoFan
        16
    KuroNekoFan   188 天前   ❤️ 1
    js 取可视区域高度再修改样式其实很常见啊,存在局部滚动的时候必须这么搞....当然你吐槽的具体是什么 case 我也不清楚
    vishun
        17
    vishun   188 天前
    @dfkjgklfdjg view 本来就可以直接在 html 中引用的,而 php 的视图模板文件可以随便改后缀的,这个也算是正常。
    vansouth
        18
    vansouth   188 天前
    iso 哈哈 我佛了
    Elethom
        19
    Elethom   188 天前 via iPhone
    @mokeyjay
    同。遇到过这样的项目,是真的恶心。不只恶心在代码,还恶心在公司打完基础就把大佬开了,兔死狗烹。
    yinxianwei
        20
    yinxianwei   188 天前 via iPhone
    @vansouth 半斤八两
    jones2000
        21
    jones2000   188 天前
    每个人代码风格和代码逻辑都不一样, 除非设计文档有详细的流程图,可以确保代码大致一样, 否则千人千面了. 每个开发人员知识结构都不一样, 都是用自己最熟悉的知识点去开发. 你不能要求别人根据你了解的知识点去开发.
    下次接收你的代码的人, 估计也会这么说你.
    Rache1
        22
    Rache1   188 天前
    @dfkjgklfdjg 如果文件内格式是 Vue 的,那还是需要 build 的,只是 laravel 自带的 mix,不用配置太多东西,直接 npm build 就可以了
    wangsd
        23
    wangsd   188 天前
    有的地方我好像页这么写的,不过我是个后端,组里一个前端也没有还要开发个 APP 出来。
    xxjiege
        24
    xxjiege   188 天前
    写代码不都这样吗?有一个能跑就行。(狗头)
    MengiNo
        25
    MengiNo   188 天前   ❤️ 1
    “我可搞不明白为什么 Android 样式没问题,ios 有问题,ios 9 没问题 ios 10 有问题”

    >> 作为一个后端,一直认为这是常态,自己写前端挫败感就在这。调了一天把一个本来就没什么问题的东西,让某个机型也可以显示了,而这个适配过一段时间又会因为新版本的系统又会出现,感觉非常没有意义。
    superliwei
        26
    superliwei   188 天前   ❤️ 5
    程序员由于理解的局限性写出各种代码很正常,我很难认同这种公开指责别人的行为,尊重一个你认为不如你的人很难吗?而且这也只是一个经验问题,并不能说明人家不如你。
    madpecker009
        27
    madpecker009   188 天前
    六字真言送给你。
    Chappako
        28
    Chappako   188 天前
    @vansouth #18 还有一个 felx
    h1104350235
        29
    h1104350235   188 天前
    mxdsy
        30
    mxdsy   188 天前
    我能理解 ,接手代码改的全是 bug 让人心里抓狂,发泄一下情绪也是可以的
    pigzzz
        31
    pigzzz   188 天前
    不要这么苛刻,后端写前端,能运行起来就不错了
    LoNeFong
        32
    LoNeFong   188 天前
    这样就有不可替代性了, 建议多和"老员工"学学
    zhuangzhuang1988
        33
    zhuangzhuang1988   188 天前
    能用就行
    dfkjgklfdjg
        34
    dfkjgklfdjg   188 天前
    @vishun vue 的 template+script+style 格式,改后缀还是要编译啊....
    hhjswf
        35
    hhjswf   188 天前
    作为后端,兼职前端取列表确实是 foreach...确实不精都是仿着别人写
    learningman
        36
    learningman   188 天前
    @dfkjgklfdjg #13 直接用带编译器版本的 vue 就行
    dfkjgklfdjg
        37
    dfkjgklfdjg   188 天前
    @faqqcn 你这一说我看到了 laravel-mix 这个依赖。之前我还疑惑呢,说 /resources/assets 下也没有 package.json 和 node_modules 这两个东西啊
    stephenyin
        38
    stephenyin   188 天前
    前端卷吧卷吧卷吧,不是罪。
    OHyn
        39
    OHyn   188 天前
    @dfkjgklfdjg vue 可以 runtime compile 的。
    namaketa
        40
    namaketa   188 天前
    我听着就是后端去写的前端。
    抽象和命名基本功在。
    但是对 js+vue+小程序这一套东西的细节不了解。
    而且不太会用 css,干脆直接用 js 操作。
    memedahui
        41
    memedahui   187 天前
    我不赞同楼主的说法,我建议找 git 里面的联系方式联系到本人,然后对代码里面的问题一个一个解释说明(前提是心平气和).这样才能得出结论,我见过太多把代码写烂的理由了,都是非本人意愿.
    nicebird
        42
    nicebird   187 天前
    估计不是前端写的吧,后端搞的
    TomVista
        43
    TomVista   187 天前
    @memedahui 估计已经离职了,git 显示,这是他们俩最后的工作,上一次提交分别在 7 个月前 /3 个月前
    7gugu
        44
    7gugu   187 天前 via iPhone
    代码和人,其中一个能跑就行🤣
    littlebaozi
        45
    littlebaozi   187 天前
    感觉是个有经验的开发,但不是有经验的前端
    STtree
        46
    STtree   187 天前 via Android
    我想到我接手的一个前端项目,这个项目之前很多代码都是后端写的,也不会拆组件化,相似页面的代码各处粘,各种骚操作,维护起来很难受。问题是我也是后端啊,根本看不明白,改问题只能边谷歌边抄代码。我实在不明白为啥公司有前端,很多前端的活要交给后端做啊。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1823 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:20 · PVG 08:20 · LAX 16:20 · JFK 19:20
    ♥ Do have faith in what you're doing.