读《程序员的呐喊》
原文链接 http://codepub.cn/2016/12/10/Read-a-programmer-s-rantings/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
作者简介:Steve Yegge是一名程序员,也是博主,写了很多关于编程语言,生产力,和软件文化的文章。他拥有华盛顿大学计算机科学本科学位,20年的业界经验,开发领域涉及嵌入式操作系统、可扩展的电子商务系统、移动设备应用、提升软件生产力的工具等。他曾供职于亚马逊和Google等公司。
徐旭铭,编了十几年程,翻译过几本书,现在在亚马逊当码农。工作和兴趣都是写代码,喜欢看上去很麻烦的问题。住在西雅图,闲暇时喜欢看美剧。
这本书真是太有意思了,里面充斥了作者对各种语言以及开发现象和编程风格的吐槽,但是读来并不让人反感,也不觉得偏激,真是太有才了,真羡慕可以把吐槽文也写得这么棒的人。在书中,作者着重推荐了《重构》注意是Refactoring,我刚开始心里想到的是Rework,其实并不是。这是两本完全不同的书,但是我推荐你把它们都读一读,必然会受益匪浅。书中作者的一句话非常有意思,他说,“在读《重构》之前,他感觉自己这么多年来都像是脱了裤子上班一样,其他人是不是早就读过这本书了?我会不会是唯一不知道的人?”。我想,对于读书都这么如饥似渴的人,并且生怕落后于别人的人,在读到一本好书时的那种焦灼感,怎么可能会一直默默无闻呢?另外说一句,这本书翻译的也很棒,实属不易。
到今天,重构已经衍生出一整个产业链了,它就是一面旗帜。Java IDE的粉丝们都在为之摇旗呐喊。重构工具就好像摆在商店里的产品一样。翻开菜单从里面挑一个出来,连地球都能撬起来。
在谈到语言的宗教情况时,这个现象确实很严重,不管是在国内还是在国外,都不缺少狂热的语言宗教分子。当然了这里面的语言指的是计算机世界里的编程语言,而不是我们日常中所说的语言。每个语言狂热分子都把自己所使用的语言视为正统宗教,容不得别人指手画脚,哪怕这些都是善意的行为,在他们眼里,也是对他们语言宗教的亵渎。
好在当你会的语言越来越多的时候,也就相当于你在不断的改变宗教信仰。每次改变信仰,下一个对你的影响力就越弱,因为你在语言宗教的世界里变得越来越成熟,并且也不那么极端与狂热了,你可以站在一个宗教之外去审视当初自己沉溺其中的宗教。在各个宗教之间切换的时候,使你变得原来越睿智了,再也不屑于为了语言去与别人发生争执了。
每当遇到一些事物你觉得很好很强大,别人却批评抱怨的时候,你总会忍不住希望他们赶紧离开,好继续坐井观天,这时千万别忘了这一点:之所以我们今天能冲破黑暗时代,生活在一个相对光明的启蒙时代,正是因为我们敢于挑战自己最宝贵的信仰。所以质疑是件好事。
最重要的是作者指出了结对编程、极限编程、敏捷开发等都是扯犊子的玩意,这些都是软件咨询师搞出来挣钱的套路。其实这也是被逼无奈,如果像以前那样以完成一个项目之后才付款,但是在这过程之中,客户不断的变更需求,大多数软件咨询师以及负责开发项目的人都是挣不到钱的,因为这种项目成功的概率太小了,所以聪明的咨询师们搞出了各种概念并按阶段付款。但是并不能一概而论,有坏的敏捷开发,同时也有好的敏捷开发,在文中作者举了Google的例子作为好的敏捷,不妨看看列出的如下几点: - 经理也至少有一半时间在写代码,所以他们更像是技术主管 - 工程师可以在任何时候换组,或者换项目,不会有人质疑你。只要你一句话,第二天就会有人来帮你把东西都搬到新的组那边去 - Google的理念是不去告诉工程师要做什么,他们也是这样严格执行的 - 鼓励工程师花工作时间中的20%的时间去做任何想做的事情,而不是日常工作 - 很少开会。我估计一个工程师平均一周大概开3次会吧,这还包括了和主管一对一沟通 - 安静的环境。工程师或单独,或三五一组,都非常安静地专注于自己的工作 - 没有甘特图,或是日期-任务-负责人的表格,或是任何看得到的项目管理工具 - 就算真的碰到项目吃紧的时候,大家还是会去吃午饭和晚饭,都是免费的哦,除非自愿,没人会长时间的工作
感觉作者已经完全被Google收服了,是诚心的。在文中他说,在Google,每周都有新花样,新福利,新变化,新的调研,来问我们怎么才能让大家在Google过得更舒服。当然并不仅仅只是这些,在Google里驱使大家去做正确的事的动因是感激,这超过了所有的因素,甚至比所有的因素加在一起还要多。你会忍不住想要做到更好,因为Google对你的照顾无微不至,让人觉得好像欠了它似的。