作者张家为是个程序员、设计师,还是芝加哥 We Are Mammoth 公司的创始合作人。
这本书集合了他总结的第一手的教训、体会和走过的弯路,希望对我们这些刚开始征程的菜鸟助上一臂之力。
下面摘录一些比较好的想法。
第二章 比喻
有时候,比喻和现实之间的界限可能会模糊。比喻可能让我们过于重视那些不重要的东西,而对真正重要的掉以轻心。我们常常用传统的建筑行业来比喻建造软件的过程,我们给自己取了软件架构师、信息架构师、高级程序员、初级程序员以及项目经理之类的名字,很多人把线框图、说明书、流程图、甘特图、瀑布开发模型之类奉为圭臬。
虽然这些概念在其他行业中很重要,对我们的行业也有那么一些好处,但它们也很容易束缚我们的手脚。
“规划、规划、规划”的比喻过分强调要花大量时间计划让所有东西臻于完善,而忽视了可以用好实际写代码的功夫。
应用软件的首次发行版本应当是在别人拿到之前就非常非常好了。大的方面都得是对的,需要有完善的安全系统。但是小的方面,那些可以后面再慢慢修复的东西,不应成为发布软件的障碍。而且,发行无非是软件生命中的一个点而已,不是尘埃落定,也不是功德圆满。
第三章 动力
不管你有多牛,如果没有写代码的动力,那就拉倒吧。
动力还必须是持续的,在开发过程中必须不断挖掘、不断培养。在制作软件的过程中,在不同的时间点,可能有不同的东西促使你前进。
有时候,最难找到动力的地方就是最开始。光是想想编码是很容易的,一旦真正动起手写起来,就完全是另外一码事了,激情很快会消退。如果你可以选择从什么地方开始写软件,一定要利用好这份自由,挑一个你觉得最有意思的功能,从那里开始做。这在着手做一个大型软件项目时尤其有用。用不着花上三天时间来框定一个进度表和发布日期,不如用这功夫写你最感兴趣的那部分程序。过一个礼拜,你就知道自己到底有多少动力,对于其他部分何时能够搞定也会心中有数。
每个有激情的程序员最关心的就是自己的代码。我们关心代码在严苛的条件下的性能,并试图减少对服务器、对服务、对数据库的冗余调用。但是你最好不要做一个完美主义者,要求完美会让人精疲力竭。想要写出完美的代码会让你骑虎难下。我们越早接受不完美,就越能保持干劲、坚持到底,最后完成的工作也会很多。
良好的编程习惯是在精力充沛时高效地工作,而不是一味的呆在屏幕前。两个小时的高质量编程胜过八小时的煎熬。我们编程编累了的时候,更容易走个捷径,或是违反标准规范。那些低效的时间都写了些坏代码——我们第二天就可能后悔的代码。所以,请缩短编程时间,出去走走,享受一下生活吧。
早起做测试。
别在卧室工作。
第四章 生产力
动力是起步时所需要的,但是生产力才是衡量成功的具体标准。
我们每个人都有一堆消闲项目,可能是写了一半但从来没完成的软件,也可能是开始写时干劲十足,但因出现更紧迫的事情而戛然而止的代码。
对于消闲项目,当你决定认真对待它的时候,就需要定下一个期限。①我每周花几天时间、每天花多少时间在整个项目上?②我什么时候能把一个基本成型的产品展示给别人?③哪一天向公众发布?④哪一天发布第一个主要的更新版本? 这些时间限制就像建起了围墙,我们要用工作填满它。
设定一个最后期限,即使是随便设的。最后期限创造了一种紧迫感,敦促尼冲过终点线。即使没有人在逼迫你,它也能给你所需的鞭策。
作者说,搞软件开发十二年了,从来没有见过一个项目是完全按计划走的。 功能会变,未预料到的障碍会出现。有时候,我们预计花一星期的事情最后花了三个星期。不过最常见的事情是我们把项目的时间制定得过于详细。我们成了时间表的奴隶。 其实在最开始的时候,根本没办法制定出一个完美的计划。所以,开始做计划的时候,要少计划些细节。