这本书很薄,跟那些厚厚一大坨的编程教科书完全不是一个路子(没有说那种书不好的意思哈),只不过这本书关注的是程序的可维护性、复杂度管理和长生命周期思考,更多是认知维度的东西。
举几个让我印象很深的点:
**为什么很多系统到后期必然变成一坨烂泥?**因为开发者在一开始没管理好复杂度的增长。这本书把“复杂度”当成软件开发中最重要的敌人来打,让人从认知层面醍醐灌顶。
**它提出了“模块应该隐藏信息而不是功能”的理念。**不是简单的“分文件夹”,而是教你怎么真的通过设计让系统随着功能增加还能保持优雅。
作者亲自经历了大型项目的血泪(比如 RAMCloud、TACC),每一条设计原则都是踩了无数坑总结出来的,绝不是纸上谈兵。
为了方便大家学习与传播,这本书籍资源我已经整理好了。
而且里面有很多建议直接改变了我对写代码这件事的看法,比如:
写代码之前,先想清楚未来这段代码最有可能怎么被误用;
不要为了抽象而抽象,抽象是为了减少未来需要了解的细节量;
在不确定的时候,倾向于把逻辑摊开写清楚,而不是一股脑地搞“聪明”的封装。
我朋友睿评这本书说是:如果你还没遇到过大型代码烂成一锅粥的情况,它能让你提前知道灾难是怎么酝酿的;如果你已经在维护烂代码,它能帮你看见一丝重构的光;比起教你怎么码代码,这本书教你怎么写能活下去、能成长的系统。
关键是这本书不长!读起来节奏感很舒服,每一章基本都能立刻带着思考落到实际项目里,很快就可以读完。很推荐找一个周末下午,搭配一杯咖啡,美美看完。