一直听说这本书是如何如何好的,怀着膜拜的心情快速阅读了一遍,感触较深的几点记录一下。
一、注重实效的哲学
学会问问题
记得有一次,我在一个群里问题,等我把问题所有的描述点都到位后,我自己都发现问题所在啦,问问题之前一定要认真分析自己的问题,找出关键点。不要容忍破窗户
一个丢在一旁的车子,一旦有一天有一个窗子坏了,过不了多久,整个车也即将被翻个底朝天。编写整洁、设计良好、优雅的代码谁也不想成为第一个破坏的人。定期为我们的知识资产投资
学习新语言、阅读各种书籍、参加不同讲座、分享自己所学的,都是很有必要的,另外用于尝试不同的环境。
二、注重实效的途径
Don't Repeat Yourself
DIY 原则一直是所公认的,但是我目前还是习惯对于某些需求,先重复一段代码(当然不会超过三次),然后先实现效果后,再来进行抽离,可能还没达到那种程度吧,哈哈。正交性原则
其实可以理解就是高内聚低耦合吧,两条垂直的线。
a: 让代码保持解耦,也就是不会没有必要地向其他模块暴露任何事情、也不依赖其他模块的实现的模块。
b: 避免使用全局数据。
c: 避免使用相似的函数。可撤销性原则
没有什么最终方案,灵活多变对于自己的项目。
三、注重实效的偏执
You Can't Write Perfect Software,确实我们不可能写出完美的软件。
错误的处理
有时我们不可避免的遇到错误,发现 bug 和 解决 bug 未尝不是我们能力的体现呢?记住程序是不会说谎的
不要想当然的认为那样,(int) count > 1 就是等于 count == 0 吗?配平资源
只要是在编程,我们都要管理资源:内存、事务、线程、文件、定时器,所有数量有限的事物,我们通常都是 分配它——> 使用它 ——> 移除它,一定要有始有终。
注意编写 “ 羞怯” 的代码:
不要向别人暴露你自己;
不要和太多人打交道。
四、编码时
算法速率
学习算法是必要的,优秀的程序员每天都在考虑算法使用的资源: 时间、处理器、内存、等等。工具化
充分利用各种工具,让自己更有效率,git 、Dash、自动化打包之类的,等等能让我们效率提高的工具都可以去尝试使用。最好有一套自动化流程。注释
不要写没有用的、不要写混淆人的、不要为了偷懒而省略
尽量在做出某些重大决定,替换,重构,权衡时的想法,还是可以自己注释备忘下的,代码除了运行也是给人看的。测试
积极面对测试,可以以测试为导向开发,目前像我们 iOS 中,只有一些大公司写单元测试的,但是实际上好多第三方的优秀开源库都是 有单元测试的,所以目前离我们比较近一点的是,可以尝试在自己的项目中开始写单元测试。
五、傲慢与偏见
注重实效的程序员,不会逃避责任。相反会乐于接收挑战,乐于让我们的专业只是让他人知道。不断的告诉自己,我们正在做的事情,正是我们可以引以为豪的事情!
当然也不能只相信自己的代码,而对其他小伙伴代码的怀有偏见,就像不应该阻止他人改我们自己的代码一样,应该是互相尊重,互相学习,求同存异,大方的接受自己的错误。
记住: 这是我编写的,我对自己的工作负责!
总的来说,感觉以后的再次拜读是肯定必要的,经典必有其经典!工作时间不是很长的我,有很多方面体会还不深,想着有些东西确实和时间相关的,还是要慢慢来体会。