关于如何写持续有用的代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Livid
178.63D
571.54D
V2EX    程序员

关于如何写持续有用的代码

  •  
  •   Livid
    PRO
    2010-12-27 04:49:03 +08:00 6186 次点击
    这是一个创建于 5446 天前的主题,其中的信息可能已经有所发展或是发生改变。
    个人体会(偏向 web developer):

    1. 用 Tornado,Nginx,Redis,Memcached 和 MySQL。

    2. 围绕需求的核心,写尽可能完善的实现。

    3. 围绕大众需求:图,文及搜索。

    4. 避免那些与核心需求无关的酷元素。有的东西,在当时觉得酷得不行,但是一年之后你只想把它从实现中去掉。

    5. 让实现尽可能短,并且不要重复。但是不要刻意为了实现这一点而浪费时间。
    14 条回复    1970-01-01 08:00:00 +08:00
    TerranC
        1
    TerranC  
       2010-12-27 09:42:02 +08:00
    第四条值得思考
    gaowhen
        2
    gaowhen  
       2010-12-27 16:57:27 +08:00
    关于第4点,最近也有体会。无论多炫的东西,总归会审美疲劳的。
    还是简约能长久啊。
    TheOnly92
        3
    TheOnly92  
       2010-12-27 21:00:43 +08:00
    我个人觉得,编程就好比写作,没有任何人会拿原稿来出版。一开始写出来的东西或许乱七八糟,但是原稿就是必须经过三番四次的修改,改进。没有任何一个程序员可能一开始就能够写出“好”的代码,尤其是项目的最初时段。如果执着于所谓的 style 或者任何其他无聊的事情,那么你可能什么也写不出。一开始最重要的是将你的想法转换成代码,然后进行不断的改进、修改,不是吗?

    或许有些离题,但是我个人对于编程的想法如上。
    sharkli
        4
    sharkli  
       2010-12-27 21:09:50 +08:00
    @TheOnly92 如果一开始就搞的比较乱,最后可能会一团糟。
    stranbird
        5
    stranbird  
       2010-12-27 21:12:04 +08:00
    @sharkli 所以《重构》这本书就发挥他的作用了。
    sharkli
        6
    sharkli  
       2010-12-27 21:24:58 +08:00
    @stranbird 话说我写的代码真的有点烂。复用性,可读性都很差,项目紧也不敢重构。唉唉,真是丢人。
    darasion
        7
    darasion  
       2010-12-27 21:27:11 +08:00
    我不知道。这个问题太复杂。
    TheOnly92
        8
    TheOnly92  
       2010-12-28 10:33:34 +08:00
    我个人还没有进入企业界,但是进行个人项目时,往往都是要重构几次的,这样才能够让自己编码时开心一些。而且每次重构后对于项目的需求更加了解,况且重构虽然是从 0 开始,但是也是拼命参考之前写的再继续写下去,因此重构也没有花多大的时间和精神。
    timshi
        9
    timshi  
       2010-12-28 10:55:22 +08:00
    Always iterate, but do things the RIGHT way in each iteration.

    In other words, don't give yourself an excuse to write shitty code because you think you will iterate.

    Just like in daily life, you KNOW in your heart that you are doing things the wrong way. It always feels easier at the time, but don't do it. Code don't lie.
    xds2000
        10
    xds2000  
       2010-12-30 20:48:57 +08:00
    加一条,要定期修炼美学。
    myrual
        11
    myrual  
       2011-01-09 12:27:53 +08:00
    @TheOnly92
    同意。
    第一稿总是不好的。只要能持续的重构,最终会好的。
    来自于我的个人实际工作经验。

    至于为什么第一稿不好?
    可能是需求没弄懂,对业务理解不透彻,业务模型不完全合适,技术能力有限。
    以上都是可能的原因。但是若放弃了重构的勇气和追求卓越的理念,那么即使使用再好的框架,最终也会烂掉。
    也来自实际工作经验。
    walleve
        12
    walleve  
       2011-01-09 14:21:45 +08:00
    @xds2000
    should
    viewsun
        13
    viewsun  
       2011-01-10 14:49:50 +08:00
    我觉得吧,不当只能专注于埋头写代码,还得发展其它方面的能力,美工,用户体验,产品设计,测试,做程序员还要有自己的创新思维,而不是别人给你想法,你就按着别的人想法盲目开发。只果只会单纯地写代码,那跟民工没什么区别。
    freefcw
        14
    freefcw  
       2011-01-10 17:26:16 +08:00
    看了这个标题表示很,和自己理解的完全不同

    说一下我自己的对持续有用代码的理解吧:

    1. 代码风格:纯粹的代码相关的,包括缩进格式,变量命名,边界检查,实现方式等等,这样有助于理解代码和调试bug
    2. 功能:尽可能的功能独立,模块化,做好自己的事情,可重复使用和代码持续有用是一个意义
    3. 注释:没有注释的代码是废品,有效的注释能够极大的提高代码可读性,降低代码的维护成本,延长寿命
    4. 文档:文档提供宏观上对代码的功能有直观的理解
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5597 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 02:47 PVG 10:47 LAX 18:47 JFK 21:47
    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