V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TomVista
V2EX  ›  程序员

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

  •  2
     
  •   TomVista · 2021-05-26 10:24:01 +08:00 · 7633 次点击
    这是一个创建于 1311 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是一份小程序。

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

    主要问题出在,

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

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

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