V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐书目
黑客与画家
REWORK 简体中文版
REWORK 精装原版
深入浅出设计模式 Head First Design Patterns
代码之美 Beautiful Code
数据之美 Beautiful Data
信息论、编码与密码学
Free as in Freedom
设计原本
精通正则表达式
V2EX  ›  程序员

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

  •  
  •   blakejia · 5 天前 · 5635 次点击
    94 回复  |  直到 2017-04-21 18:17:58 +08:00
        1
    ferrum   5 天前
    这不叫规范,叫风格吧。

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

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

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

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

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

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

    强制检查的
        48
    smallHao   5 天前
    80 个是之前屏幕尺寸的限制 别教条式地遵守
        49
    viator42   5 天前 via Android
    方法名参数名写的越来越长想完全不超出 80 个字符很难做到
        50
    superPershing   5 天前
    Python lint 会检查出来的,代码大部分时间是被阅读,只是偶尔被运行。
        51
    realpg   5 天前
    这叫个乱规范
    早该淘汰了
        52
    mko0okmko0   5 天前
    code format 设定好,A 组自动宽度.B 组 80 字换行.
    每次开档或是变更视窗尺寸.跑 A 组.
    每次提交前,跑 B 组.
        53
    jarlyyn   5 天前
        54
    lee015   5 天前 via Android
    Android Studio 的默认是在 100 位置有条竖线。
        55
    hanxiV2EX   5 天前 via iPhone
    看屏幕大小来,超出屏幕就换行。
        56
    bulletmarquis   5 天前
    awk 笑而不语
    曾经一行命令写了 1 屏半~
        57
    timothyye   5 天前
    跟老式显示器有关
        58
    XDDD   5 天前 via iPhone
    @scriptB0y 文件最后不留空行的话,每次追加内容都会有最后一行的 diff
        59
    beginor   5 天前 via Android
    如果你经常并排显示两个 tab 的话,就知道 80 换行的好处了,我是 79 换行
        60
    TuringGunner   5 天前
    开两个窗口的话,超过 80 看得不爽
        61
    yujinyj   5 天前
    @bleaker 真相了,还在用 PCOM 的人表示 FB 80 是程序标配
        62
    0915240   5 天前
    现在屏幕都大了 80 不够了。
    看了下 idea 现在在 120 有竖线。
        63
    Osk   5 天前
    感觉 PEP8 会逼死强迫症
        64
    kotokz   5 天前
    只要依靠 xxxfmt,都不是事
        65
    zclzhangcl   5 天前
    java ,用 idea , 120 行的时候有提示。一般不会超过这个线。
    以前用 eclipse 开发的时候,没有线提醒,也会自己加上提醒。不超过这条线。
    看 jdk 源码,发现一般都不会超过这条线。
    方便别人,方便自己。
        66
    mutoulbj   5 天前
    现在一般改成了 120 , 80 的话有点少。

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

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

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

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

    LUA 80 也没啥问题。

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

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

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

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

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

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

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

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

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