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

吐槽一下公司前端的骚操作, .eslintignore

  •  1
     
  •   STRRL ·
    STRRL · 2019-06-21 10:49:05 +08:00 · 15679 次点击
    这是一个创建于 1981 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是写 java 的 由于 dalao 觉得我工作不饱和 帮公司前端写一些需求
    写就写吧 : /
    把项目 clone 下来瞬间难受了
    没有文档
    没有注释
    没有测试
    甚至连 eslint 都给禁了 (扣题,.eslintignore 里面 ignore 了 src 所有的东西
    这么大个项目能做成这样我也是醉了

    到底是什么东西能驱动着他们还在写..
    到底是什么东西能证明这玩意能用...

    偷偷放个统计结果

    $ cloc --exclude-dir="node_modules" .
         805 text files.
         774 unique files.                                          
          39 files ignored.
    
    github.com/AlDanial/cloc v 1.82  T=1.47 s (522.6 files/s, 111166.5 lines/s)
    -------------------------------------------------------------------------------
    Language                     files          blank        comment           code
    -------------------------------------------------------------------------------
    Vuejs Component                304           1797           4445          86097
    JavaScript                     415           7905           9456          45512
    LESS                            37            267            389           5583
    CSS                              4            150            133           1063
    JSON                             4              0              0            292
    SVG                              2              0              0            235
    Markdown                         1             10              0             20
    HTML                             1              0              1             10
    -------------------------------------------------------------------------------
    SUM:                           768          10129          14424         138812
    -------------------------------------------------------------------------------
    
    第 1 条附言  ·  2019-06-21 15:59:37 +08:00
    看到很多人在提 eslint 恶心

    我只能引用 #18 兄弟的一句话了

    自律即自由
    107 条回复    2019-06-24 14:17:41 +08:00
    1  2  
    cuzfinal
        1
    cuzfinal  
       2019-06-21 10:55:00 +08:00   ❤️ 1
    我们也是,没有文档、没有注释、没有测试、没有 eslint
    murmur
        2
    murmur  
       2019-06-21 10:55:46 +08:00   ❤️ 2
    我们也禁了 eslint,文档有、注释有,没有单元测试
    CliCli025
        3
    CliCli025  
       2019-06-21 11:02:37 +08:00
    nuxt 打包一次 20 多秒..... 还在艰难的使用中
    npe
        4
    npe  
       2019-06-21 11:20:54 +08:00   ❤️ 2
    其实大多盲写的时候,挺烦 eslint 的。
    df4VW
        5
    df4VW  
       2019-06-21 11:24:30 +08:00
    前端项目现在测试真的已经很幸福了,jest cypress 一个个都这么好用放几年前我都想哭
    KoreyHan
        6
    KoreyHan  
       2019-06-21 11:33:09 +08:00
    14424 行那个不是注释么 😃
    STRRL
        7
    STRRL  
    OP
       2019-06-21 11:41:11 +08:00
    @CliCli025 我们这好像还有个 happypack, yarn dev 也要很久

    @KoreyHan 注释基本上都是那种巨长的方法里解释 if 的. methdos (用的是 vue 嘛)里很少有注释说明这个方法做什么的.

    而且 data 里 flag 满天飞, computed 不怎么用.. 一堆 flag 感觉像是回到了写 C
    FakeLeung
        8
    FakeLeung  
       2019-06-21 11:44:58 +08:00
    我们也差不多,没有文档,没有注释,没有测试,有 eslint。
    drydiy
        9
    drydiy  
       2019-06-21 11:48:06 +08:00   ❤️ 2
    eslint 真的不能禁。对于说 eslint 烦的,vscode 可以保存自动修正的。并不是问题。
    wengjin456123
        10
    wengjin456123  
       2019-06-21 11:51:28 +08:00
    估计没 prettier 吧
    agdhole
        11
    agdhole  
       2019-06-21 12:09:39 +08:00
    eslint 可以写到 webpack 然后自动 fix,不过很多人不研究就禁了,然后抛弃一切工具写着原始代码骂前端真浮躁,还是 jQuery 好(😀
    STRRL
        12
    STRRL  
    OP
       2019-06-21 13:09:31 +08:00
    @wengjin456123 eslint 里有 prettier, 但是配置了.eslintignore..
    我自己编辑器了装了 prettier 但是也不敢按格式化, commit 的时候变化太多 ..
    skyrem
        13
    skyrem  
       2019-06-21 13:09:34 +08:00
    你见过 ```var a = b; reutrn a;```这种骚操作吗。。。
    impl
        14
    impl  
       2019-06-21 13:14:33 +08:00 via Android   ❤️ 6
    有些人就是喜欢在屎堆里打滚。
    kvker
        15
    kvker  
       2019-06-21 13:18:00 +08:00
    独立开发:文档+注释,不用 eslint 与测试。
    version
        16
    version  
       2019-06-21 13:23:57 +08:00 via iPhone
    如今的前端 90%都是毒瘤,更加坚持能跑就行,优化啥的不会考虑的,加载大小也不会优化的,习惯就好,因为这一切他们只会埋冤客户机器烂,自己的没问题就好,有问题说没机器复现的多,久了就是一坨烂代码,比 jq 年代写得还差
    sugars
        17
    sugars  
       2019-06-21 13:25:30 +08:00
    我想问,公司一个前端,有必要用 eslint 吗
    WittBulter
        18
    WittBulter  
       2019-06-21 13:28:13 +08:00   ❤️ 10
    @sugars 有,自律即自由。
    STRRL
        19
    STRRL  
    OP
       2019-06-21 13:29:39 +08:00
    @sugars 有必要 eslint 不只是做多人协作代码时规范的, 一个人写代码也要注意风格之类的问题的.
    zhlssg
        20
    zhlssg  
       2019-06-21 13:35:01 +08:00
    @sugars 有,eslint 可以帮助发现 bug
    wengjin456123
        21
    wengjin456123  
       2019-06-21 13:40:05 +08:00
    @STRRL 项目不规范确实很麻烦,我们项目最大一个 class 7000 行代码,不过一直遵守 airbnb 的 eslint 规范,随便格式化
    azh7138m
        22
    azh7138m  
       2019-06-21 13:41:46 +08:00   ❤️ 13
    @version 如今的安卓 90%都是毒瘤,更加坚持能跑就行,优化啥的不会考虑的,APK 大小也不会优化的,习惯就好,因为这一切他们只会埋冤客户机器烂,自己的没问题就好,有问题说没机器复现的多,久了就是一坨烂代码,比塞班年代写得还差

    :doge:
    lqw3030
        23
    lqw3030  
       2019-06-21 13:46:42 +08:00 via iPhone
    @skyrem 可能为了有利于 gc,哈哈哈哈
    hronro
        24
    hronro  
       2019-06-21 14:01:00 +08:00
    六字真言:要么忍,要么滚
    version
        25
    version  
       2019-06-21 14:02:09 +08:00 via iPhone
    @azh7138m 客户端就很多了,所以市面上好用的应用都是个人开发的多,小团队开发的也多,上了企业都是死亡 app 也很明显,都是外包成分各种内嵌开发,手机上没安装过几个软件,最毒瘤就是钉钉了,能恶心你一辈子
    toku
        26
    toku  
       2019-06-21 14:06:42 +08:00
    我们前端也是,只有代码。。而且还不是好代码
    azh7138m
        27
    azh7138m  
       2019-06-21 14:09:35 +08:00
    @version 资本和打工者本来就是对立的,为钉钉付费的还是资本,没办法
    jydeng
        28
    jydeng  
       2019-06-21 14:13:44 +08:00
    新入职公司,最近正在弄这些东西,eslint 和单元测试
    zhw2590582
        29
    zhw2590582  
       2019-06-21 14:23:12 +08:00
    我也不写文档、注释、测试的,想用的话就大概看一遍整体结构就上手了
    STRRL
        30
    STRRL  
    OP
       2019-06-21 14:33:14 +08:00
    @zhw2590582 唉 功力不够实在是无奈 138K 行代码实在是太多了
    LeroyMooney
        31
    LeroyMooney  
       2019-06-21 14:37:30 +08:00
    舒服了,之前不知道同事把我的 eslint 加了*,现在我关闭了,一个一个修改 :doge
    xianxiaobo
        32
    xianxiaobo  
       2019-06-21 14:56:55 +08:00
    eslint 这个东西用起来真的很恶心啊。
    xianxiaobo
        33
    xianxiaobo  
       2019-06-21 15:00:56 +08:00
    我们也是,没有文档、有注释、没有测试、没有 eslint。很正常啊,算不上骚操作。
    whypool
        34
    whypool  
       2019-06-21 15:11:55 +08:00
    eslint 恶心+10086

    用文档约束比较好,用这玩意编译不合规就直接报错,首先去检测的错误肯定是 js 语法,结果一查是这玩意

    已经成功的在团队干掉了这智障玩意
    likaka
        35
    likaka  
       2019-06-21 15:17:47 +08:00
    关键是客户满意
    momocraft
        36
    momocraft  
       2019-06-21 15:18:24 +08:00
    这东西开哪些规则是可以配置的,还可以配合 fixer / prettier

    其实 lint 没遵守至少你还知道,文档么看心情了
    moocean
        37
    moocean  
       2019-06-21 15:40:20 +08:00
    我就一个前端,配置一个统一的格式化还可以
    moocean
        38
    moocean  
       2019-06-21 15:46:01 +08:00
    注释还是有的,每次编译大概 20 多个警告,懒得一一修改了,2 周一个大跌带,我一个人也闲不了
    hyy1995
        39
    hyy1995  
       2019-06-21 15:46:14 +08:00
    eslint 恶心继续+1。。。楼上还有老哥直接开炮 90%的前端都是毒瘤了?
    litpen
        40
    litpen  
       2019-06-21 15:47:44 +08:00
    用 TS 结合 TSlint 可以代替 eslint 和测试了
    shanhegu
        41
    shanhegu  
       2019-06-21 15:50:15 +08:00 via Android
    拿人工资,写人代码
    otakustay
        42
    otakustay  
       2019-06-21 15:51:21 +08:00
    我想具体听听 eslint 恶心在哪里……
    somethin
        43
    somethin  
       2019-06-21 15:51:32 +08:00   ❤️ 8
    是的,不用 lint 的前端都是毒瘤
    roscoecheung1993
        44
    roscoecheung1993  
       2019-06-21 15:51:38 +08:00
    @whypool 那如果团队成员不按文档执行呢?怎么知道团队成员有没有按文档执行呢?
    freak118
        45
    freak118  
       2019-06-21 15:55:36 +08:00
    前端项目都没有单元测试可能就是现在大部分的开发现状吧
    toma77
        46
    toma77  
       2019-06-21 15:56:01 +08:00
    多人协作还是推荐使用 TS,定义公共组件、接口、数据类型等等,vscode 还有个插件,保存的时候会自动转换成推荐的写法,比如你写一个函数类型(type),如果插件觉得更适合用接口会自动改成(interface),多人协作很爽呀~
    mota
        47
    mota  
       2019-06-21 15:56:40 +08:00
    喷 eslint 恶心的有点没懂。这东西遵守起来也不难,也不复杂。
    BestSera
        48
    BestSera  
       2019-06-21 15:56:45 +08:00
    @skyrem 我见过
    if(j === 3){
    j = 3
    }
    这种骚操作。。。。
    STRRL
        49
    STRRL  
    OP
       2019-06-21 15:58:38 +08:00
    @litpen @roscoecheung1993 我也是想用 TS 的, 无奈不是我住到的项目
    rxdey
        50
    rxdey  
       2019-06-21 16:01:45 +08:00
    lint 配上保存自动修复挺舒服的呀
    kxxoling
        51
    kxxoling  
       2019-06-21 16:05:51 +08:00   ❤️ 1
    eslint 不是基本要求吗? 2019 年了还需要讨论 eslint 是否有必要的问题吗?
    tuomasi
        52
    tuomasi  
       2019-06-21 16:06:12 +08:00
    要么忍 要么滚 去谷歌找存在感去啊
    Elephant696
        53
    Elephant696  
       2019-06-21 16:12:14 +08:00
    大家好,我是毒瘤
    zhwithsweet
        54
    zhwithsweet  
       2019-06-21 16:12:30 +08:00
    @STRRL #49 直接上,能混着写
    zhwithsweet
        55
    zhwithsweet  
       2019-06-21 16:14:03 +08:00   ❤️ 1
    想我一样,脱离 eslint 也能写出风格极其统一的代码就行了(🐶
    cutlove
        56
    cutlove  
       2019-06-21 16:14:53 +08:00
    没进来之前我就知道,这个帖子会变成讨伐所有前端,似乎“前端”在有些人眼里就是脏乱差的代言词
    whypool
        57
    whypool  
       2019-06-21 16:20:24 +08:00
    @roscoecheung1993 代码抽查,命名,注释,缩进,必须按文档来,组件和 css 相对宽松,单元测试不用写,因为有自动化测试,包括 ui 自动化

    新人有 2 周适应期,会安排熟悉文档和 demo 工程,并完成安排 demo 工程任务,这个提交的代码会审核

    如果审查过后还会犯错,情况严重会离开项目组(并不是辞退,而是转移到维护组,目前还没有这样的情况发生)

    抽查机制很简单,由小组 leader 随机抽取 git 提交的代码片段,如果发现不规范直接显示提交人就行,周期大概是 3-5 个月,可能更久(一般是有时间 review,能发现就跑不掉),抽查的代码不局限于最新代码,可能是最开始提交的版本

    目前用的是 angular 和 vue,主要是单页和 dashboard,有原生嵌入的版本,也有单独的 hybrid 版本(ionic 开发),前端约 32 人,7 个项目组
    fengxianqi
        58
    fengxianqi  
       2019-06-21 16:59:38 +08:00   ❤️ 1
    没有 eslint,回头看以前写的代码,缩进不一样,这里有个分号那里又没有分号,这里换了行那里多了好几个空行,总之看着都把自己给恶心到了,所以无论是一个人写代码或团队,都有必要用 eslint
    wangcansun
        59
    wangcansun  
       2019-06-21 17:30:08 +08:00   ❤️ 1
    我都是在项目中加上 git hooks 强制提交要满足 eslint

    对于不按照规范来写公司代码的,真的觉得很毒瘤。。。
    evlos
        60
    evlos  
       2019-06-21 17:47:24 +08:00   ❤️ 2
    eslint 的作用是防止有人写出来的代码恶心到别人,我无法想象有人会觉得 eslint 恶心,那么他的无自知之明是到了何种程度?
    MikeFeng
        61
    MikeFeng  
       2019-06-21 18:34:58 +08:00   ❤️ 2
    那些嘲笑 eslint、tslint 恶心的是不是还活在原始社会? vscode eslint 扩展 autoFix 有听说过吗?跟我写代码的不管从来不用管缩进、分号、单双引号,只要一保存文件、或者输入焦点移出 vscode 触发自动保存,统统给你格式化缩进 2 空格、删除分号、单引号。还有用文档约束的,leader 还 review 找格式问题的,我快笑尿了,这是在锻炼员工的记忆力还是 leader 时间太多
    z742364692
        62
    z742364692  
       2019-06-21 18:46:07 +08:00 via iPhone
    我们没网
    iugo
        63
    iugo  
       2019-06-21 18:47:03 +08:00   ❤️ 1
    没想到还会有人说 ESLint 恶心, 就是 ESLint 让我坚持写 JavaScript 到现在的. 要不是因为 ESLint, 我也会成为一名 JavaScript 黑.
    ioly
        64
    ioly  
       2019-06-21 19:12:53 +08:00
    @roscoecheung1993 review 的人呢?不用 approve 就给合? CICD 吃灰了?
    lguan
        65
    lguan  
       2019-06-21 19:23:02 +08:00
    我自己一个人的项目,起项目的时候都要设置好.eslintrc,还有其它语言的 rc,自律最后得益的肯定是自己
    ibufu
        66
    ibufu  
       2019-06-21 19:55:49 +08:00   ❤️ 3
    暗暗记下说 eslint 恶心的这些人,这种都是团队毒瘤,千万别招进你们的公司。
    很多前端都没看过 airbnb 的 js 规范,更别提《 Clean Code 》了,写出来的都是啥 shit 玩意,最影响团队效率的就是你,还没一点自知之明。
    ibufu
        67
    ibufu  
       2019-06-21 19:59:58 +08:00   ❤️ 2
    eslint 最关键的一个作用是保持代码风格一致性,在团队协作方面这比其他所有作用都重要。
    royzxq
        68
    royzxq  
       2019-06-21 20:00:29 +08:00
    eslint 还是得有,而且不也蛮好用的嘛。 觉得真的受不了的规则干掉就是了,忽略所有 src/* 那可是真滴🐂🍺
    kzfile
        69
    kzfile  
       2019-06-21 20:07:53 +08:00   ❤️ 1
    当 eslint 和 vscode 的自动格式化冲突时才是真的烦,一保存一堆错,关键又不能保证每家的 eslint 都和 vscode 的格式化规范一样
    kzfile
        70
    kzfile  
       2019-06-21 20:09:43 +08:00
    我还记得我同时维护过两个项目,一个要求句尾有分号,一个要求没分号.
    avenger
        71
    avenger  
       2019-06-21 20:12:01 +08:00 via iPhone
    我爱 eslint
    roscoecheung1993
        72
    roscoecheung1993  
       2019-06-21 20:19:58 +08:00
    @ioly 行尾分号、空格 /tab 缩进、对象字面量尾逗号、未使用的变量......规范全靠 review 的人肉看? CI/CD 不就是跑构建、lint 和自动化测试?
    yuanfnadi
        73
    yuanfnadi  
       2019-06-21 20:24:12 +08:00
    公司的项目都配上了 eslint。所有项目都在慢慢改成 ts。
    开源项目全部加上 CI 和测试覆盖率。
    lane1
        74
    lane1  
       2019-06-21 20:30:52 +08:00
    standardJS 党 路过, 觉得很优雅 233
    meszyouh
        75
    meszyouh  
       2019-06-21 20:38:59 +08:00 via Android
    觉得哪天规则 sb ,禁掉就是了。忽略和全部都禁掉,真的就是
    meszyouh
        76
    meszyouh  
       2019-06-21 20:39:08 +08:00 via Android
    version
        77
    version  
       2019-06-21 21:38:14 +08:00 via iPhone   ❤️ 1
    前面自己可能说得有点狠 90%,不是恶意的,我自己也写前端,只是想发泄下前端,有时候宁愿自己写 js 逻辑,eslint 现在很简单了,很多配置可以禁用,不像以前那么复杂了,大部分企业前端工作还是很吃紧,样式改动多,人少的企业开发,不用也可以,不是绝对,最好是 prettier 统一风格就好,起码阅读起来好看很多,pr 合并也减少很多冲突,前端最好是偏于简单化的代码,减少再次封装,因为大部分用第三方库都封装一层了,再次封装不利于库升级,能写出来清晰代码让新人能快速上手才是主流,说白了…公司不想给前端涨太多薪,页面毕业生能写就好,前端跑路了系统也能跑
    wee911
        78
    wee911  
       2019-06-21 21:44:12 +08:00
    前端要自律的话用 ts,eslint 就是垃圾
    zlhsvc
        79
    zlhsvc  
       2019-06-21 21:53:59 +08:00
    JQ 党路过(本身是后端)
    duan602728596
        80
    duan602728596  
       2019-06-21 22:17:34 +08:00 via iPhone
    不光用 eslint,代码基本上每个片段、每个思路都会写上注释
    CopyRight
        81
    CopyRight  
       2019-06-21 22:30:23 +08:00
    天天瞎逼扯。
    建议你司前后端互相 code review 现场撕逼。
    刚正面啊。
    ahjsrhj
        82
    ahjsrhj  
       2019-06-21 23:17:02 +08:00   ❤️ 2
    prettier+eslint 这才是正道,禁用 eslint 写出来的东西是人看的?
    CodingNaux
        83
    CodingNaux  
       2019-06-22 01:13:48 +08:00 via iPhone
    eslint 要啊,但是要不要上 airbnb 的 config 和 jsx11 什么的看团队了。前端测试………这个没写过
    MrUser
        84
    MrUser  
       2019-06-22 08:53:47 +08:00
    @kzfile
    多个项目编码风格不一样确实挺烦人,不过“两个项目一个要求句尾有分号一个要求没分号”貌似可以通过在项目根目录放置 .eslintrc 来解决?
    prettier 貌似也可以在项目根目录放置 .prettierrc。
    MrUser
        85
    MrUser  
       2019-06-22 08:56:08 +08:00
    @wangcansun 我都是在项目中加上 git hooks 强制提交要满足 eslint
    -----------
    能分享一下方法吗?感激不尽!!
    magicdawn
        86
    magicdawn  
       2019-06-22 09:18:30 +08:00 via iPhone
    我都是 ignore all 加 !except 打开我写的文件
    推不起来也没办法
    wisetc
        87
    wisetc  
       2019-06-22 09:25:40 +08:00
    难受是正常的,不想看的代码却要看,不想做的事情却要干,是降低自己的标准去适应不规范不标准,还是建立一套标准,去打破这种混乱无序,it's a question. 纠结,不想付出那么多,因为付出不一定有收获,却想着让大家舒服,现实很困难,怎能不难受。
    Ixizi
        88
    Ixizi  
       2019-06-22 09:59:11 +08:00
    没 eslint 完全不会写代码
    twocucao
        89
    twocucao  
       2019-06-22 10:05:33 +08:00
    用 prettier 直接把代码都给 format 掉就好了
    xiaolanger
        90
    xiaolanger  
       2019-06-22 10:22:48 +08:00
    你们前端圈真的是能以任何理由撕起来啊。。。
    bdnet
        91
    bdnet  
       2019-06-22 11:33:29 +08:00
    平时加班多吗?效率怎么样?
    linZ
        92
    linZ  
       2019-06-22 11:39:45 +08:00
    @sugars 有。。因为代码不是只给自己看的,除非你可以一辈子都负责这个项目
    gunjianpan
        93
    gunjianpan  
       2019-06-22 14:13:29 +08:00
    @skyrem reutrn 可还行
    skyrem
        94
    skyrem  
       2019-06-22 14:31:36 +08:00
    @gunjianpan #93 打快了 还好我有自动纠正
    imswing
        95
    imswing  
       2019-06-22 17:45:55 +08:00 via iPhone
    凭本事写的代码为啥要注释
    FrankHB
        96
    FrankHB  
       2019-06-22 20:27:28 +08:00
    keepeye
        97
    keepeye  
       2019-06-22 20:49:45 +08:00
    我是后端,平时也用 vue 写管理后台,赞一下 eslint,很好的工具。
    ahjsrhj
        98
    ahjsrhj  
       2019-06-22 21:02:15 +08:00
    @MrUser #85
    npm install pre-commit --save-dev

    之后在 package.json 里添加

    {
    "scripts": {
    "lint": "eslint ./ --cache --ignore-pattern .gitignore"
    },
    "pre-commit": [ "lint" ],
    "devDependencies": {
    "eslint": "^2.12.0",
    "pre-commit": "^1.1.3"
    }
    }
    大致这样
    mostkia
        99
    mostkia  
       2019-06-22 21:55:49 +08:00
    @BestSera 哈哈,这有什么意义。证明 3=3 ?
    applehater
        100
    applehater  
       2019-06-23 00:24:09 +08:00
    eslint 太严格,改一下限制程度好了。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:11 · PVG 05:11 · LAX 13:11 · JFK 16:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.