第四章,主要内容为讲述两个程序员(从作者大篇幅讲述代码规范等内容来看…应该是把大部分阅读此章的读者看作基础的程序员了)如何合作。这章我在看完之后分了两个板块:“代码交流”与“合作交流”。“代码交流”主要就是向读者传授如何码出让别人看的懂的代码(代码规范啦,风格规范等内容),“合作交流”部分则是更进一步的向读者阐述两个合格的软件工程师该如何结对进行自己的项目。
代码交流部分主要的问题还是集中在书中所应用的语言(貌似是C#吧)与我所使用的语言的冲突上(很明显的一点就是java已经没有了goto这个关键字,以及书中数次提及的垃圾回收机制…JVM应该是有垃圾自动回收的机制的…),其他地方都很简洁易懂,描述的也很清晰。对作者这部分的建议的话,就是这部分的内容请不要拘泥于某种语言,因为语言的不同,其各种规范也是说不尽的,若着重于代码中都会有的问题其实更为实用(当然,我也觉得这个要求太困难了)。其次一些小问题就是很多行话吧,都得去百度看看。
合作交流部分,我觉得这部分讲的很棒,用很多比喻来描述两人之间的合作,描述了合作中要经历的过程,也讲了很多交流的技巧。以前很少接触和了解这类知识,这章讲了很多,涨了很多知识。但是,看完回头细想还是觉得有点不对,就是书中所讲的状态其实太理想。现实中比如说像我们这次的组队,我们很难做到说两个人都符合软件工程师的标准。即使勉强结对,最后可能面临的就是那种“道理我都懂,但依然不知道如何结对合作”的困境。当两个人都是半桶水的水平,也就很难做到代码规范,又被各自的能力所限制,就更难去复审他人的代码(实际上我遇到了这样的问题,即使他很想在命名和注释里向你阐述他的思想,但我依然很难去理解他的代码)。书中所描述的关系若是类比的话更像是将军的君子之交(二者水平皆很高,且了解各自所需,即使是初次合作也不会太差),而我们更像是一对拿起盔甲就上战场的新兵(匆忙上阵,各自有着不同的想法)。或许我们也会经历各种阶段走到最后,但我很难想象到会做到像书中描写的那种情况,毕竟驱使各自走到一块儿的并不是需求或者利益之类的(类似于披甲上阵的新兵,大多都是被赶鸭子上架,我想两位将军走到一起更多是为了实现自己的利益吧)。对于我们这样畸形的结对关系,我希望老师可以给出一些见解,以便我们在以后在合作中遇到问题时得以借鉴。
十七章,如何成为一个领头人(Leader),如何去处理团队内部的种种问题,以及软件工程师的职业道德。说实话,我对这部分的知识可以说是一片空白。只能去吸收这些知识,达不到融会贯通,更达不到提出自己的质疑。至于提出自己的问题,也很难提出有什么有营养能住脚的问题(毕竟没有这方面的经验…)。就像十六章一样,只能说是作为一种知识储备,基本没有实践的机会(这次课中的团队合作模式是在同学之间的,大家都是平等的关系,自然不会存在谁领导谁的事啊)。很有用,但于我们或者至少是于我是没有多大的实用作用的。