其实这本书早就读完了,也做了一些摘抄,但其实并没有把其中最颠覆认识和可以结合的实践经验总结下来,于是又快速重温了这本书,因为是跟着问题找答案,再加上之前对内容的了解,使得我发现虽然只是浏览一下,但脑海里某些残留的知识点又更加深刻或重塑了,别有一番滋味。
最颠覆认知的观点:
1.做测试很重要
之前写代码的时候并不重视对代码bug的调试,总是在实现了一两个测试用例后认为可以直接使用了。在看了作者专门为测试和改bug专开一章后还有些惊奇,于是细细读了这章,才发觉我对测试的理解只能算是冰山一角(也可能是因为我写的代码太简单了,没有测试的必要)。但如果一个软件真正的想发行并取得认可,测试在其中发挥的作用是必不可少的,很多公司还专设有测试工程师这一岗位,单从这个设置中,就可见一斑了。
2.重要的不是写代码,而是读代码(站在巨人的肩膀上)
我长久以来都是认为代码这种东西,就是要多敲,久而久之就会了。但作者却提出了近乎相反的观点,就是一定要多读代码,特别是牛人的代码和世代传颂的代码,在读代码的过程中慢慢体会代码的思路和作用,并将思路能够在自己脑海中重映出来,内化于心,成为自己的东西,而不是抄答案。
可改进的点:
1.学会谋篇布局
作者说写程序就像写文章一样,在写之前就要构思好文章的主体结构和核心思想。完蛋,以为已经摆脱学语文了,但语文残留的顽疾会追着我到了写代码中。之前写文章就是想到啥写啥,完全没有结构可言,现在写代码也是。现在必须开始锻炼这种能力了,让自己的代码的结构更加清晰明了, 这是成为优秀的软件工程师的必修课。
2.设计需要抽象思维
在代码设计中,抽象思维的重要性是不言而喻的,否则,无论是繁琐的需求,还是堆积的代码都能把你搞得喘不过气。我认为作者的抽象思维其实就是“抓重点,细分需求和实现过程”。把要求简化成一个或几个小功能,让它们联合起来实现大功能。