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

什么样的代码一看就知道是新手?

  •  
  •   yidinghe · 2018-09-16 00:44:18 +08:00 via Android · 18485 次点击
    这是一个创建于 2042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有的代码一看就是新手写的,写这样的代码的程序员,基本上只能留在初级程序员的岗位上。这样的代码有哪些特点呢?

    1、没有格式,混乱不堪。比如缩进对不齐、语句从不换行、空格和制表符混搭等等。

    这表明作者缺乏阅读代码,包括自己代码的经验。只有长期经常阅读代码的人才会有意识的对自己的代码做格式化。

    而缺乏阅读代码经验的人必然也缺乏维护代码的经验。这种人可能经常跳槽,连自己的代码都从来不看第二遍,留下一堆的坑让别人来填。

    而缺乏维护代码经验的人也必然缺乏解决故障的经验和重构代码的经验,而这两个对程序员的工作效率来说是至关重要的。很多时候老油条看一眼就知道问题出在哪里,而新手要调试一整天。别让薪水花冤枉了。

    你可能说我太吹毛求疵,不就是排版乱一点,哪那么多道道?但实际情况真的就是这样子。

    2、不会命名,或老写错字。简单的单词都能拼错就不说了,我另外举个例子,纸张的正面不是 front 嘛,他一查字典,结果选了 positive,“积极正面”的正面,那好吧,反面你就用 negative 吧,我不,他又查字典,结果起个名字叫 reverse,这搞得完全看不懂了。

    让这种人加到项目里面来,你就恨不得手把手的帮他把代码写了(也恨不得薪水都帮他领了),一不留神就各种奇葩名字。其实 Java 早就支持 Unicode,实在不行用中文名字算了。

    3、语法高亮。这个从代码本身看不出,但可以瞄一眼作者的 IDE 是啥样。IDE 现在都可以自定义语法高亮,但是默认的情况下都只有三个颜色:关键字一个颜色,字符串一个颜色,剩下的一个颜色。

    而实际上经验丰富的开发者都会尽可能多的用颜色,来区分类、成员、方法和参数等等,这样可以提高阅读效率。比如 color-themes.com 就有很多现成的风格。

    看得舒服是次要的,最终目的是要提高阅读效率。当然除了颜色外,好的字体也很重要,这里就不多说了。总之,只有老油条才会关注这些东西,不当回事的多半是初学者。

    说了这么多,其实一句话:当新手开发效率到了一个极限想要继续提升,就必须在代码的格式、命名、视觉效果上下功夫。这是新手必须要迈过的坎。

    123 条回复    2018-10-05 10:43:05 +08:00
    1  2  
    mostkia
        101
    mostkia  
       2018-09-17 13:20:32 +08:00
    @Phariel 我在想。。这样写有什么用?
    idtaanlcoe
        102
    idtaanlcoe  
       2018-09-17 13:24:46 +08:00 via Android
    太复杂的
    danc
        103
    danc  
       2018-09-17 13:26:39 +08:00
    什么样的代码一看就知道是新手?你写的代码
    Corbusier
        104
    Corbusier  
       2018-09-17 16:15:14 +08:00
    不知道如何定义新手代码,只是上家公司有个小子一堆 chinglish 变量名,savePinglun,saveHuifu,tishi,tijiao...我看了都脸酸。各种 if 嵌套,同步请求。
    slimbloody
        105
    slimbloody  
       2018-09-17 16:36:31 +08:00
    请教一下大佬, 如何提高命名能力, 有相关资料推荐嘛?
    karmaisbitch
        106
    karmaisbitch  
       2018-09-17 16:39:27 +08:00
    感觉这种帖子,在 V2EX 上很常见啊,简直要月经贴了
    SOLIDxRaiden
        107
    SOLIDxRaiden  
       2018-09-17 16:49:01 +08:00
    在游戏代码里写人力循环的我(
    ryd994
        108
    ryd994  
       2018-09-17 16:49:23 +08:00 via Android
    只要你还在一天到晚只写代码,还要纠结怎么打字更快,那你就是新手。
    高手在写文档
    老手在写 Excel
    di1012
        109
    di1012  
       2018-09-17 17:37:54 +08:00
    我这种人写的代码,一看就是新手,尽管已经工作四五年了
    Joyboo
        110
    Joyboo  
       2018-09-17 19:10:35 +08:00
    格式真的非常非常非常重要,真的,其次是命名
    Vamposine
        111
    Vamposine  
       2018-09-18 00:28:52 +08:00 via iPhone
    @itskingname 写惯了 java 的我也经常这么写 python。Orz
    javaWeber
        112
    javaWeber  
       2018-09-18 09:32:00 +08:00
    String shengfen;
    ww940521
        113
    ww940521  
       2018-09-18 09:40:54 +08:00
    我以前感觉编译器花红柳绿的看起来很煞笔,原来煞笔的是我自己啊,o(╥﹏╥)o
    linZ
        114
    linZ  
       2018-09-18 10:16:33 +08:00
    @DnC 看的我局部一紧。。。
    shapimai
        115
    shapimai  
       2018-09-18 11:04:52 +08:00
    你觉得是新手→他就是新手←你不喜欢他

    无关代码 zsbd
    cncqw
        116
    cncqw  
       2018-09-18 11:26:08 +08:00


    刚在 git 上看到别组同事写的,怎么讲,能写出这种代码的人可以说是 phper 里面的翘楚
    CheckH
        117
    CheckH  
       2018-09-18 11:26:54 +08:00 via Android
    看大家讨论的如此热闹,我差点就忘了这是篇广告。
    berforest
        118
    berforest  
       2018-09-18 13:23:37 +08:00
    经常关注别人是不是新手的一般都是新手或者不太行的老手
    YumeMichi
        119
    YumeMichi  
       2018-09-18 13:27:37 +08:00
    @cncqw hhhhh
    Joyboo
        120
    Joyboo  
       2018-09-18 16:24:37 +08:00
    @cncqw 这种还算好点的了,我见过更糟的
    thinker3
        121
    thinker3  
       2018-09-19 09:44:11 +08:00
    认同 1,2 两点。在招聘和试用期把关
    xuanwu
        122
    xuanwu  
       2018-09-20 19:14:56 +08:00
    第二点. 中文命名是无论新老手都适用的, 越是与非 IT 业务相关越可显出优势: https://www.v2ex.com/t/477109#reply0
    zaqmjuop
        123
    zaqmjuop  
       2018-10-05 10:43:05 +08:00 via Android
    github 不是有 code style 么
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2752 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:20 · PVG 20:20 · LAX 05:20 · JFK 08:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.