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

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

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

    最后是我的一些观点:
    1. 要养成代码规范的好习惯,并不是为了标准而标准,而是为了能得到更有价值的自我提升。这对自己还是团队都是有好处的。
    2. 在自成一派的同时,要想想自己的风格是否能让别人接受,即使是一小撮人也好。
    3. 要培养良好的学习能力,也要懂得虚心接受,想必这个小学老师已经说了千万遍了。
    4. 懂得分享和接受意见,也要学会对比和接受现实。比如他说过“我觉得Node.js能做的事,PHP一样能做。”那么我必须要讲,PHP的性能和无法接触底层绝对是硬伤。
    35 条回复    1970-01-01 08:00:00 +08:00
    lidashuang
        1
    lidashuang  
       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
       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   ·   实用小工具   ·   3578 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:11 · PVG 08:11 · LAX 16:11 · JFK 19:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.