太猿经

相声演员郭德纲说过:买票的相声、商演成功的相声才是好相声。

我觉得对于码农来说也是如此,能够高产出线上项目、带来实际商业价值的程序员才是优秀的程序员。

对重构代码说不

尽管我们再决定对项目进行重构时,总会事出有因,但是就多方面来讲,还是推荐大家在对项目进行重构和修改时进行更为全面的考虑,我更推荐大家基于现有项目,将其完善为更好的项目。一个常见的问题就是第二系统综合症,你希望第二个版本变得更好,结果却永远无法完成。

而“持续重写综合症”也是文学界的术语,主要表现为对程序进行一些无用的修改,程序员可能会一次又一次的从头开始重新设计项目,从某些方面来讲,适可而止,可能是最佳策略能工作足矣。

然后“代码疲劳”现象就出现了。程序员会厌烦代码,使用了很长时间之后,就会觉得代码丑陋不堪入目,尽管这可能是你自己写的代码。很遗憾,由于需要迁就很多特殊情况,代码会变得笨重,其中还有大量不同格式的错误处理代码,而重构这些就会耗费大量的时间。

随着程序员自身的知识建设和经验成长,往往会否定自己觉的丑陋、或者不够优美的代码,进而产生重构的冲动(特别是对于自己负责或开发的项目)。然而这大部分情况下是不符合商业逻辑的:花费你大量的时间,而不能带来任何效益。而花费的时间足以让你获得更多的技术成长或金钱收入。

换句话说,项目是否需要重构的唯一衡量标准是:现有程序是否能够继续运行、对于业务是否可以继续支撑,而不是实现方式是否合理、代码语法和逻辑是否优美,使用技术是否先进。

从头写代码,可能是任何软件公司或者程序员个人都会犯下的最糟糕的决定,但是希望每个读到本文的都能够少走弯路。

是否重复造车轮

现在市面上有很多的开源程序或者商业程序可供选择,如果有足够成熟和稳定支持的解决方案可以完成目前的项目,那使用现有的开源程序或商业程序是更好的选择。当然,如果主要为了抱着学习的目的,或者本身开发为了这一场景的商业程序,应当别论。

而在开发过程中是否使用第三方组件来加快开发进程,取决于您对该第三方组建的了解程度和掌握程度。如果您对使用该组件所产生的风险和麻烦,完全不能评估,那使用第三方组件,可能是一个错误的选择。

不要沉溺开源程序

现在有很多的开源程序,很多自学的初学者很容易陷入其中,不可自拔,甚至迷信国外的一定比国内的好。我觉得对于开源程序的学习和选择应遵守以下规则:

  • 分清楚自己的需求,是使用,还是开发。如果实际需求只是使用,那不应浪费更多时间去学习它的二次开发。
  • 如果只是学习借鉴,那应只通晓其原理和实现即可,浅尝而止。

可能有人对此建议有些不解,因为我见过太多三四年经验,精通WordPress、drupal等等程序二次开发(甚至产生“信仰”),但是对于一些基础知识和更深层次知识一无所知的码农,如果您确信喜爱想要长期从事程序开发这一工作,那么应该花更多时间培养扎实的基础、宽阔的眼界、丰富的项目解决阅历。

而开源程序(这里特指各类cms),小玩怡情,大玩伤身。