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

现在还有多少人坚持写代码一行尽量不超过 80 个字符的规范呢?是什么语言

  •  
  •   blakejia · 158 天前 · 6454 次点击
    这是一个创建于 158 天前的主题,其中的信息可能已经有所发展或是发生改变。
    94 回复  |  直到 2017-04-21 18:17:58 +08:00
        1
    ferrum   158 天前
    这不叫规范,叫风格吧。

    我写什么都这样,主要是 24 寸的屏幕还要左右各开一个编辑器,写太长了水平方向就会有滚动条。
        2
    lucifer9   158 天前   ♥ 1
    asm 的话,估计得很费劲才能一行超过 80
        3
    luban   158 天前 via iPhone
    1080p 屏幕我改成了 120
        4
    PythonAnswer   158 天前
    尽量保持,但是以自然为宜。不强求。
        5
    awolfly9   158 天前
    python 我没超过 80 个字符,但是,加上缩进就超过了
        6
    littleshy   158 天前   ♥ 5
    我一般在 80 和 120 各打一条线,尽量不超 80 ,绝不超 120 。
        7
    kokutou   158 天前   ♥ 1
    java :啥?
        8
    byfar   158 天前
    sublime: >80 自动换行
        9
    loveuqian   158 天前 via iPhone   ♥ 1
    肯定不是 oc , 80 都不够我一个方法名
        10
    springmarker   158 天前
    还有这种说法?我说 idea 上那条线是干啥的呢
        11
    bleaker   158 天前   ♥ 42
    为什么现代 IDE 或编辑器会提示 80 字符?因为 Google Java 和 Linux Kernel 的代码规范是这样。

    为什么这两个规范会是这样?因为中古时期的 terminal (不是 Terminal Emulator )一行只有 80 个字符。

    为什么 terminal 会这样?因为上古时期 IBM 打孔机的纸带一行只有 80 个孔。
        12
    k9982874   158 天前
    装完编辑器第一件事字体改成 Hack ,第二件事开 line number ,第三件事把一行 80 个字符改成 200
        13
    AlisaDestiny   158 天前
    那是对当时的编辑器的指定的字符数吧。现在的编辑器这个数值可以适当放宽了。但是 java 源码中代码依然还是遵守这个规则的(毕竟是给全世界人看的代码)
        14
    zhenjiachen   158 天前   ♥ 1
    使用 idea 开发 java ,然后 idea 后面会有一根线,我看到代码超过线了,我会手动换行。
        15
    ghostheaven   158 天前 via Android
    @byfar 这个只是视觉上换行吧,并没有插入换行符,别人打开看还是一行。
        16
    xxzs   158 天前
    要考虑到其它人阅读代码的感受
    如果太长的话要考虑重构
        17
    glasslion   158 天前
    一般公司 /商业项目不会太讲究这个长度限制(当然也不能太离谱),而社区 /开源项目倾向于遵守。

    对于单显示器,把屏幕分割成两半,同时看两个文件的话, 80 个字符比较合适
        18
    mornlight   158 天前
    Python PEP 8 里:
    Limit all lines to a maximum of 79 characters.
        19
    zhy   158 天前
    老实说,我更喜欢 120 。。
        20
    Sharuru   158 天前   ♥ 2
    HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor.java
        21
    msg7086   158 天前
    常年 120 ,偶尔 150 。用的 Ruby ,跑函数式的时候,经常一行写一堆话。
        22
    otakustay   158 天前
    你思考下,我厂的 thinkpad 笔记本分辨率是 1366x768 ,其中横向 1366 ,假设字体是 14px ,那么可以显示 97 个字符,但是你要考虑编辑器并不一定是全屏的,你还要开侧边栏和 minimap ,综合下来为了能顺利阅读设置为 80 个字符有什么不对吗
        23
    linkbg   158 天前 via iPhone
    python
        24
    blacklee   158 天前
    我的屏幕一行能写 248 个字符。
    如果逻辑不复杂,我写到 200 个的时候肯定不会想换行。
        25
    yjxjn   158 天前
    现在在写 JCL , Cobol , PLI ,都不超过 80 字符。。。。不是说不想超,而是没法超。。。
        26
    kera0a   158 天前
    有些语言比较简练,会遵守这个规则,长了简直难看,自己都受不了。
    另外一些语言,我去他妈的~, 80 个字符方法名都没写完
        27
    ty89   158 天前
    ![屏幕快照 2017-04-20 下午 2.25.57.png]( https://ooo.0o0.ooo/2017/04/20/58f854a35911f.png)

    自带分割线
        29
    wohenyingyu02   158 天前
    oc 调用一个方法能写上一页
        30
    kdwycz   158 天前
    遵照 PEP8 规范 ……不过很多地方换行的规则比较疑惑,感觉怎么换行都不好看
        31
    owt5008137   158 天前 via Android
    我已经改 140 了, 1080p 屏幕字号 14
        32
    sonyxperia   158 天前
    IDEA 有一条 120 的线,不过一般都是写完 reformat code 一下
        33
    ioth   158 天前
    fortran
    在学校玩过
    cobol 更好玩
        34
    easing   158 天前
    超过 80 行,我们这边就 review 不过,不能 merge 的
        35
    jswh   158 天前
    自己想怎么写就怎么写,自己喜欢的风格就好了。写完了格式化一下再提交。
        36
    repus911   158 天前
    尽量吧 vim 开了插件查 碰到同事代码会忍不住扳回来
        37
    humorce   158 天前 via Android
    问题不大,看着乱就用插件 /扩展格式化一下就好
        38
    Mogugugugu   158 天前
    基本 120 吧.80 太少了,几个缩进都不行了....
        39
    wwqgtxx   158 天前 via iPhone
    用 jetbrains 全家桶写代码,习惯性按一下 Ctrl+Alt+L 格式化一下代码
        40
    whenwind   158 天前
    看屏幕,只要没有横向滚动条就行
        41
    bianhua   158 天前
    不用 80 行的你们要么是有个大显示器,要么根本不是真全栈(笑哭
        42
    mosliu   158 天前
    这么多年习惯了
    该换行换行 更清晰
        43
    sleeprottenbanan   158 天前
    倒没有刻意去坚持,感觉长度过长,看着费力,自然就会想办法换行。。。。
        44
    21grams   158 天前
    都是 120 了。
        45
    21grams   158 天前
    @bleaker #11 Google java 的规范是 100
        46
    lianxiaoyi   158 天前
    100 到 120 之间吧 一行 80 确实太少了 。。。。
        47
    scriptB0y   158 天前
    必须啊,除此之外还有:
    文件最后不能留空行
    行尾不能是空格
    二目操作符左右空格
    逗号冒号后面空格
    函数参数换行要对齐
    不能 import but not used

    https://www.python.org/dev/peps/pep-0008/

    强制检查的
        48
    smallHao   158 天前
    80 个是之前屏幕尺寸的限制 别教条式地遵守
        49
    viator42   158 天前 via Android
    方法名参数名写的越来越长想完全不超出 80 个字符很难做到
        50
    superPershing   158 天前
    Python lint 会检查出来的,代码大部分时间是被阅读,只是偶尔被运行。
        51
    realpg   158 天前
    这叫个乱规范
    早该淘汰了
        52
    mko0okmko0   158 天前
    code format 设定好,A 组自动宽度.B 组 80 字换行.
    每次开档或是变更视窗尺寸.跑 A 组.
    每次提交前,跑 B 组.
        53
    jarlyyn   158 天前
    做不到

    函数命名就 96 个字符了

        54
    lee015   158 天前 via Android
    Android Studio 的默认是在 100 位置有条竖线。
        55
    hanxiV2EX   158 天前 via iPhone
    看屏幕大小来,超出屏幕就换行。
        56
    bulletmarquis   158 天前
    awk 笑而不语
    曾经一行命令写了 1 屏半~
        57
    timothyye   158 天前
    跟老式显示器有关
        58
    XDDD   158 天前 via iPhone
    @scriptB0y 文件最后不留空行的话,每次追加内容都会有最后一行的 diff
        59
    beginor   158 天前 via Android
    如果你经常并排显示两个 tab 的话,就知道 80 换行的好处了,我是 79 换行
        60
    TuringGunner   158 天前
    开两个窗口的话,超过 80 看得不爽
        61
    yujinyj   158 天前
    @bleaker 真相了,还在用 PCOM 的人表示 FB 80 是程序标配
        62
    0915240   158 天前
    现在屏幕都大了 80 不够了。
    看了下 idea 现在在 120 有竖线。
        63
    Osk   158 天前
    感觉 PEP8 会逼死强迫症
        64
    kotokz   158 天前
    只要依靠 xxxfmt,都不是事
        65
    zclzhangcl   158 天前
    java ,用 idea , 120 行的时候有提示。一般不会超过这个线。
    以前用 eclipse 开发的时候,没有线提醒,也会自己加上提醒。不超过这条线。
    看 jdk 源码,发现一般都不会超过这条线。
    方便别人,方便自己。
        66
    mutoulbj   158 天前
    现在一般改成了 120 , 80 的话有点少。

    毕竟谁没几个大显示器啊
        67
    scriptB0y   158 天前
    @XDDD 为什么? diff 应该只是追加的内容吧?
        68
    dtysky   158 天前 via Android
    你们都不用 lint 么……
        69
    liuqhang   158 天前
    我还在坚持 80 ,因为我用 vim 写代码。超过了之后开 2 个窗口时就非常难受。
        70
    libook   158 天前
    历史原因好多人都已经讲了。

    我从一个比较独特的角度说一下吧:
    显示器对于人来说通常是两种需求,一种是看图形,另一种是看文字。
    看图形的话,最重要的视野,之前有研究说人双眼最佳视觉范围是一个 16:9 的长方形,如果显示器是这个比例,又与人眼有特定的距离的话,画面正好与最佳视野重合,体验最佳,而看视频打游戏的这些需求有着可观的市场,于是乎显示器也朝着这种比例发展。
    看文字的话,人们普遍更加习惯纸质书本的比例:左右短,上下长。因为每一段在绝大多情况下都不是满行结束的,会留下空白,上述比例可以很好地减少这种空白,使得文本更加饱满,节省纸张。而写代码恰好就是读写文字的过程,和读写文字的习惯相同,纸质书本的比例可能会让人在写代码的时候觉得更习惯一些。

    个人认为长度适中就好;一方面让绝大多数语句能够在一行内写完,另一方面也要提升屏幕空间的利用率;这样在代码相对饱满的情况下可以把字放大到足够舒适的程度;也可以很方便地一屏双开。

    综上所述,鄙人认为看视频就应该用横屏 16:9 的显示器看,写代码就应该是竖屏 16:10 ,代码每行字符数根据所用语言和业务特点综合评估。
        71
    shihira   158 天前
    用的 vim ,开三列,第一列 22 个字符(刚好开个 NerdTree 和 Tagbar ),第二列和第三列 80 个字符,刚好占满整个屏幕。当然了你字体大小 DPI 分辨率不同情况也不同,仅供参考。
        72
    WildCat   158 天前
    ObjetiveC : 呵呵。
        73
    WildCat   158 天前
    哦我错了, oc 方法可以换行
        74
    DioV   158 天前
    反正我用的 GoogleStyle , 100 字符换行
        75
    tywtyw2002   158 天前
    c, python 都是按照 79 去写。 VIM 一句 set co=79

    LUA 80 也没啥问题。

    java 忘了 80 吧。
    js ,当我没说。
        76
    zhuangtongfa   158 天前
    @bianhua 居然不装. vue 代码高亮插件
        77
    Ixizi   158 天前
    python 有 80 限制, PEP8 会报 E501 !!!

    然后我很烦,就把 E501 屏蔽了。

    qtmd 80.
        78
    Lucups   158 天前
    @bleaker 这让我想到火车轨道宽度与两千年前的两匹马屁股宽度的关系。。。

    http://finance.qq.com/a/20120918/005637.htm
        79
    billion   158 天前
    规范是 120 个字符,
    80 个字符是风格。
    我是坚持不超过 120 个字符。
        80
    zachgenius   158 天前
    反正 iMac 全屏打开编译器, 俩显示器, 大概 200+到 300+个字符??
        81
    spark   158 天前
    minimap 开他有啥用? 还不如开 tagbar 来的实际.
        82
    Bluecoda   158 天前
    80 是以前的 4:3 屏幕,现在 16:9 ,我开到 120 个字符。看屏幕来的,也不一定就定死 80
        83
    lifeiccl   158 天前
    个人习惯问题, OC ,基本都在 80 以内的
        84
    yuuko   158 天前 via Android
    js 100
        85
    qian19876025   158 天前
    超过了 120 你们看着不累么?
        86
    weegc   158 天前
    php 一般 80 ,不超过 120
        87
    tausi0661   158 天前
    @jarlyyn 手贱想点开看看 96 字符的函数名是啥...啥叫函数命名啊啥叫函数命名啊啥叫函数命名啊???
    ps 可以参数换行...
        88
    jeneser   158 天前 via Android
    JavaScript , node ,一般 80 ,所有代码尽收眼底,不累......
        89
    jarlyyn   158 天前
    @tausi0661

    恩,我表达的有点歧义
        90
    eqing   158 天前
    php 一般 80 不超过 120
        91
    bianhua   157 天前
    @zhuangtongfa 原生态编程 LOL
    @jarlyyn 你不但表达歧义,上面的帖分明在抬我的杠嘛 LOL
        92
    jarlyyn   157 天前
    @bianhua

    就是看了你的图才去看了下我的 csrf 组件……
        93
    Totato5749   157 天前
    idea 里面 Code Style 设置下有个 wrap on typing ,当快到那条线的时候自动给你换行
        94
    bianhua   157 天前
    @jarlyyn 然而分明我用的就是 80/行的限制啊,代码看起来也不是很乱。

    事实上如果就 Golang 来说,如果不偷懒的话,感觉 80/行大部分情况应该够用了。

    其实行数这种东西不止影响自己,有的时候代码会被别人阅读(比如在 Review 系统里或者下载到本地或者在 GitHub 上看),很多 Review 系统的设计对太长的行并不友好(因为会新旧两个版本并排然后 Diff )。

    所以我觉得写代码在不影响整洁性和可视性的情况下,每行的字符数应该越少越好。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2450 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 165ms · UTC 03:50 · PVG 11:50 · LAX 20:50 · JFK 23:50
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1