《程序员的职业修养》读书笔记
本书一直围绕着“专业”二字展开,以作者的观点阐述了何为"专业的程序员":专业的程序员是如何思考,如何解决问题,如何承担责任。
所有软件项目的知道原则是,软件要易于修改。如果你希望自己的软件灵活可变,那就应该市场修改它!要证明软件易于修改,唯一的办法就是做些实际的修改。如果你发现这些改动并不像你预想的那样简单,你就应该改进设计,使后续修改改变简单。有时开发期已过进入测试阶段,可能还会加一点需求,如果是影响到逻辑上的改动会比较麻烦,每次都要改一些时间。但是反过来想,如果每次改都要很长时间,是否是因为我本来的代码不易扩展和修改呢?所以,今后在写代码的时候要考虑多种可扩展的情况,让代码的可扩展性,可定制性达到很高的水平,这样一来,以后如果要增加需求或者更改需求的时候能够应付自如。
所有出bug的地方一定是自己没有完全理解的地方,没有之一,全部命中。所以渐渐的,养成先好好看代码,将逻辑都理清了再重构或者再写代码的习惯,显然出错率少了很多。没人能写出完美的软件,但这并不表示你不用对不完美负责。不能一而再,再而三犯同样的错误,职业经验多了以后,你的失误率应该快速减少,甚至渐进于零。失误率不可能等于零,但是你有责任让它无线接近于零。也许你认为自己一个人工作时会做得更好。也许确实如此,但这并不意味着你一个人工作时,整个团队会做得更好。况且,,事实上,一个人单独工作时,不太可能会工作得更好。
专业开发人员的“完成”只有一个含义:完成,就是完成。完成意味着所有的代码都写完了,所有的测试都通过了,需求方已经认可,这才是完成。将大任务分成许多小任务,分开预估再加总,结果回避单独评估大任务要准确很多。这样做之所以能提高准确度,是因为小人物的预估错误几乎可以忽略不会对总的结果产生明显影响。当你的能力明显达不到经理的期望的工期的时候,要敢于说“不可能”。要说明自己尽力所能达到的效果,要让经理知道实际情况,跟经理一起找到双方都能接受的解决方案,而不是屈服于权势而打肿脸充胖子,因为如果你没能实现你的“豪言壮语”,背锅的就是你。