程序员修炼之道读书笔记
第五周
这周继续读了《程序员修炼之道》,终于看完了这本书,结合最近的团队项目经历和上课讲的内容,来写一个总的读书笔记。
当时刚买回来的时候粗略翻过后面的内容,现在看,又有了新的感悟,越发感觉到了这本书的perfect!
完美的代码是一种幻觉
我们的大部分程序员文化都建立在完美代码的理想基础之上:代码不仅适用,而且干净优雅。我们为构建困难问题的聪明解决方案而感到自豪。然而,这种完美主义可能会损害团队的成功,因为完美主义经常导致个人分歧。
放开宏伟的愿景
对于任何超过几十行代码,完美都是旁观者的眼睛。如果期望每个人都以完全一样的方式解决问题,那么就错了。
给予队友适当的设计和编码空间。鼓励大家在设计系统时发挥平等的作用。
当队友编写与自己喜欢的代码不同的代码时,不要与他们争论。要记住,长期保持团队内健康的工作关系是有价值的。所以也许牺牲个人对质量的看法是可以的。
每天花一些时间对自己的发展技术进行一些个人回顾。想想每天对自己和团队的有效性。本月有效的产品可能在下个月不再有效。随着团队从新手到专家的技能不断增长,这一点尤其如此,所以请务必不断探索开始受到伤害的部分,而不是帮助他们。
学习
考虑自己的改进,分为两行:输入和输出。这两者对于改进都是必不可少的。
-
输入
有无数获得知识的途径:文章,书籍,论文,MOOC,对话,实验,项目文件,愿意回答问题的专家的途径等等。这些和其他机制的质量和效率各不相同,我们许多人都以不同的方式学习。就我个人而言,我从阅读软工类的书籍中学到了很多东西,并在实践中运用我学到的知识。
-
输出
编写代码。联系编写代码的方法有很多,但我最喜欢的就是通过编写代码来锻炼编写代码。
-
管理时间
我们有无限的时间这是不可能的,我们必须学会真正有效地管理我们的时间。每次我们坐下来学习一些东西时,我们都必须决定是扩大知识面,还是深入挖掘我们已经熟悉的东西。然后我们必须决定我们要处理的两大类中的哪一个。等等。
当回顾已经完成的事情时,追踪朝着的大目标递增的动作可能是超级动力。当然,反思所做的事情也让有机会发现障碍,理解它们,并找出如何去除它们。随着工作需求和兴趣的变化,可能会发现自己的目标会发生变化,因此不时重新审视这些目标也很健康。只是对过于频繁地转换目标保持警惕 - 进步需要时间,即使人是以激光为中心的
-
寻求别人的帮助
这里就要提到提问的智慧了。
保持清洁
很多丑陋的代码是作者不努力保持清洁的结果。通常情况下,这是小事情的结果,一个接一个堆积起来,直到达到临界质量,并为下一个开发人员带来痛苦的体验。当他们第一次出现时,他们很容易照顾,但当无人看管时很难过,并有机会干燥并粘贴到系统的其他部分,如旧食物放在盘子上。它是如此容易得多清洁该板(或系统)时,它仍然是“新鲜”。
所有这些应该听起来很熟悉 - 它被称为“重构”,我在这里讲道的是,当自己处于开发功能的中间时,我们应该积极地寻找重构代码的机会,而不仅仅是在“重新与他们完成。
事实上,让我们再来看看,因为“寻求”在这里似乎有点轻描淡写。重构应该是开发生命周期的一个自然部分,这是不断进行的第二性质的活动,因为它对系统有好处,对后代有好处。