关于代码规范性和对技术的态度 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制贴 AI 生成的内容
willwen
V2EX    程序员

关于代码规范性和对技术的态度

  •  
  • &nsp; willwen
    iwillwen 2012-07-30 23:32:20 +08:00 6009 次点击
    这是一个创建于 4848 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我有一个刚高中毕业的朋友,他是专注于网页设计的,所以CSS会比较出色,PHP也不差(SAE)。
    他有很多作品我都十分欣赏,不过就是有一个问题,让我一直都十分苦口婆心地去跟他讲。就是代码的规范性,我是写Javascript的,大家都知道Javascript的语法风格十分灵活,但是出于团队协作,我都是十分严格要求自己的代码风格一定不能随便,代码清晰,各种东西都严格遵守。而我的那个朋友一直都是以一个宗旨为出发点减少网络传输量。
    就拿Javascript来说,在他的作品上,基本能看到一坨坨的代码。可阅读性差,而且明显的功底不足(我也成功地让他重新阅读学习)。
    也或许是目前他大部分都是自己的实验性开发,团队协作性开发接触的并不多(连Github都不会用)。

    最后是我的一些观点:
    1. 要养成代码规范的好习惯,并不是为了标准而标准,而是为了能得到更有价值的自我提升。这对自己还是团队都是有好处的。
    2. 在自成一派的同时,要想想自己的风格是否能让别人接受,即使是一小撮人也好。
    3. 要培养良好的学习能力,也要懂得虚心接受,想必这个小学老师已经说了千万遍了。
    4. 懂得分享和接受意见,也要学会对比和接受现实。比如他说过“我觉得Node.js能做的事,PHP一样能做。”那么我必须要讲,PHP的性能和无法接触底层绝对是硬伤。
    35 条回复    1970-01-01 08:00:00 +08:00
    G2bN4dbX9J3ncp0r
        1
    G2bN4dbX9J3ncp0r  
       2012-07-30 23:52:18 +08:00
    PHP的性能和无法接触底层绝对是硬伤,php,
    不能接触底层昨成了硬伤?
    Hyperion
        2
    Hyperion  
       2012-07-30 23:55:35 +08:00   1
    弱弱的问下, 究竟怎么样才能被定义为接触到底层?...
    Mutoo
        3
    Mutoo  
       2012-07-30 23:57:08 +08:00
    他做的实验项目想必也不需要在乎那么一点网络带宽吧…他到底纠结什么…
    如果是做大项目,那么也肯定会遇到你说的硬伤,这时候他去考虑性能问题还差不多。
    Hyperion
        4
    Hyperion  
       2012-07-31 00:13:31 +08:00
    @Mutoo 注重点不一样而已吧? 追求高效能, 难道有什么不对吗?
    Mutoo
        5
    Mutoo  
       2012-07-31 00:17:14 +08:00
    @Hyperion 把握不好的话容易变成强迫症
    waredugu
        6
    waredugu  
       2012-07-31 00:18:44 +08:00
    你男朋友?
    Hyperion
        7
    Hyperion  
       2012-07-31 00:39:52 +08:00
    @Mutoo 总比完全不在意强多了吧?... 其实我觉得重点不在这里.
    noevil
        8
    noevil  
       2012-07-31 01:11:25 +08:00   2
    “我觉得Node.js能做的事,PHP一样能做。”
    不抬杠的讲,这话没什么错。

    “那么我必须要讲,PHP的性能和无法接触底层绝对是硬伤。”
    我的感觉是这句话说在这里毫不必须。
    reus
        9
    reus  
       2012-07-31 01:16:13 +08:00   3
    跑题一下:php也可以用C/C++写扩展的,所以接触底层不是问题。甚至可以调用v8引擎来执行代码。性能方面牺牲某些特性可以使用hiphop。其实php这个语言仍然是有活力的 http://nikic.github.com/2012/07/10/What-PHP-5-5-might-look-like.html
    fangzhzh
        10
    fangzhzh  
       2012-07-31 02:02:05 +08:00
    同跑题一下: 依稀记得leader对我说过最多到话: 要对业务抱着一颗敬畏到心。
    ewangke
        11
    ewangke  
       2012-07-31 02:02:43 +08:00   1
    刚刚高中毕业,代码规范不重要吧?
    多多培养兴趣,开阔视野。

    等他以后读自己代码难受的时候,不得不与人协作的时候,需要维护别人代码的时候,自然就会重视起来了。
    virushuo
        12
    virushuo  
       2012-07-31 02:14:04 +08:00   1
    这…我都不知道说什么了,写Javascript的和写PHP的谈底层和性能…
    Livid
        13
    Livid  
    MOD
    PRO
       2012-07-31 03:10:11 +08:00
    在写代码的时候,需要考虑将来如果别人在读自己的代码的时候会怎么想,产生哪些困惑,是否可以很方便地搭建环境及调试。因此在各种地方留下提示,别人在将来会感谢你的。
    kakaryan
        14
    kakaryan  
       2012-07-31 07:28:10 +08:00
    你这朋友是没吃过亏的。若是自己玩,怎么写都没人关心;若是开源的话,不讲规范估计没人鸟你;若是工作,真的没人待见不讲规范的家伙。
    一个coder的功力是体现在代码上的,一个经验丰富的和一个刚入门的用同样的技术实现同样的功能,写出来代码差别很大,经验丰富的会考虑一些可维护和可扩展方面的东西,经验少的很多代码都写“死”了,难于重用和维护,很快这些代码就需要重写了。
    willwen
        15
    willwen  
    OP
       2012-07-31 08:33:29 +08:00
    感谢各位的回答,以下是几个回答。
    @noevil PHP的确可以做很多事,但这基本都会扯到PHP Extensions上去了,没意思。而且我那句话只是为了表达让他不要想着一种语言走天下。(他现在很抗拒在后端使用非PHP的东西)
    @reus 同上
    @ewangke 不能这么说,我还比他小三岁。其实我觉得我只能是给一些提示,是否能吸收就只能看他自己了,有时候让他尝试一下吃亏的滋味,会更有效果。
    @virushuo 重点不是这个吧。。
    @Livid 恩,我能做的,就只有给予一些帮助和提示,要做到思想上的转变,还需要自己的努力和探索。
    @kakaryan 我自己在开发一些项目的时候,刚开始会选择更为敏捷的开发模式高度耦合,但是代码的编写风格绝对是严格的。但是在一些自己觉得满意,并且希望给别人看的项目中,就应该有这样的意识,不要只做表面功夫,更应注重细节。(更何况这在商业项目的开发和团队协作中,这样已经不是“零星”的细节了)正如 @fangzhzh 同学所说,要对业务和项目保佑一颗敬畏的心。

    感谢各位的回答,我也希望我那位朋友能够有所收获和成长。
    88250
        16
    88250  
       2012-07-31 09:14:44 +08:00
    楼主的表达好像有点逻辑混乱,前半段有点针对人了哦。

    总结不错,不过我觉得 NodeJS 能做的事 Java 一样能做 #_#|
    towoo2001
        17
    towoo2001  
       2012-07-31 09:27:44 +08:00
    <i>钱能解决的问题就不是问题,合理控制开发预算好了。</i>
    towoo2001
        18
    towoo2001  
       2012-07-31 09:29:03 +08:00
    @88250 同意
    towoo2001
        19
    towoo2001  
       2012-07-31 09:29:46 +08:00
    @我自己
    ipconfiger
        20
    ipconfiger  
       2012-07-31 09:33:11 +08:00
    额,js的话一般都是发布的时候用工具压缩下的吧,那个处理完了就不是拿给人看的了
    willwen
        21
    willwen  
    OP
       2012-07-31 09:50:51 +08:00
    @88250 @towoo2001 NodeJS 能做的事 Java 一样能做, 这我同意
    willwen
        22
    willwen  
    OP
       2012-07-31 09:51:42 +08:00
    @ipconfiger 你会错意,我指的是代码的风格和规范性,这在团队协作中是十分重要的,和发布前的压缩没关系
    88250
        23
    88250  
       2012-07-31 11:10:05 +08:00
    1. 用工具检查编码风格
    2. Code Review ~_~
    dreamer
        24
    dreamer  
       2012-07-31 11:36:52 +08:00   3
    目标不一样。

    他可能根本没把代码规范和技术态度之类的放在心上,只是专注于自己想做什么东西,只要能实现自己想做的东西就行。说实话我比较欣赏这样的人,脑子里没有条条框框,往往容易突破。而且他如果以后有机会团队合作,真的从内心认识到写出规范的代码能更好地帮他实现想法,他肯定会努力去改变的。

    很多程序员之所以没办法自己做一个产品,就是因为脑子里条条框框太多,首先考虑的不是实现自己想法,而是不合时宜地追求代码规范,本末倒置。
    asoncheng
        25
    asoncheng  
       2012-07-31 12:42:27 +08:00
    代码先是给人看的,其次才是高效运行的。
    willwen
        26
    willwen  
    OP
       2012-07-31 13:23:30 +08:00
    @asoncheng 这倒不一定,而且他这种代码风格,并不会对性能有太大的帮助,反而降低了代码的可阅读性。
    ewangke
        27
    ewangke  
       2012-07-31 16:52:44 +08:00
    @willwen 我所经历的一些人,我认为都是不可改变的。除非他遇到了对他影响很大的事情,才会自发去做调整。你的初衷对他是非常好的,但效果不会很好。
    NemoAlex
        28
    NemoAlex  
       2012-07-31 16:54:40 +08:00
    前端 JS 压缩是机器去做的事情
    代码风格过于反人类不是好事
    asoncheng
        29
    asoncheng  
       2012-07-31 23:58:44 +08:00
    @ewangke 人太执着的时候,都开始变得固步自封,所以就很难再有进步。
    ewangke
        30
    ewangke  
       2012-08-01 00:10:04 +08:00
    @asoncheng 一部分人是执着,一分部人是懒惰。一部分是目标太高,不切实际;一部分是安于现状,不思进取。
    gee
        31
    gee  
       2012-08-01 23:55:49 +08:00
    楼主比那个刚高中毕业的朋友小三岁,亮点在这里吧
    楼主的年龄相当于初中毕业
    现在的孩子太强大了,我初中毕业的时候只会用frontpage
    bitsmix
        32
    bitsmix  
       2012-08-02 00:06:12 +08:00
    协作开发的人多了。就知道自己一鼻子灰了。
    pjinlin
        33
    pjinlin  
       2012-08-02 10:23:36 +08:00
    请问下,什么是规范?
    那么多的风格,尊哪一种?就命名规则来说,比较常用的就有匈牙利命名法和骆驼命名法。
    是不是小组内讨论形成统一的一种?
    9hills
        34
    9hills  
       2012-08-02 17:33:13 +08:00
    代码风格是个老问题了,个人项目想怎么写怎么写。

    要是团队项目和寿命比较长的项目,请为同事和后继者的健康着想。。。我觉得对待这种不把代码风格当回事的人,就要让他体会到维护别人糟糕代码的痛苦!
    mechille
        35
    mechille  
       2012-08-02 17:52:07 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2640 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:20 PVG 22:20 LAX 06:20 JFK 09:20
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86