代码大全读书笔记(1)

看代码大全第五章,上来就说:软件的首要技术使命:管理复杂度。

刚开始看到这句话,没啥特殊的感觉,但好书就是好书,好书不仅告诉你该怎么做,而且告诉你为啥这么做。现在的程序越来越复杂,越来越大型,没有人可以把一个完整的程序塞进自己的大脑,人们只能在一个时刻把一个部分的程序塞进自己的大脑,如果程序非常复杂,以至于不能清晰分成一个个的子部分,那程序也就很难继续维护下去了。所以管理复杂度就是尽量减少在任一时间所要考虑的程序量。

比如面向对象,一段时间内可以只关注于一个类,其余的类都不考虑,当然这是针对设计比较好的类,如果类之间的关系错综复杂,面向对象也就失去了价值,其实也就是低耦合的要求。

正如书中所说,当项目确由技术因素导致失败时,其原因通常就是失控的复杂度。有关的软件会变得极端复杂

由此也可以到封装,封装就是屏蔽掉实现的细节,封装的内容很多,我印象很深的那么一条原则:让所有的数据都是private。Effective C++ 和 代码大全 都强调了这一点,因为数据本身很不抽象,很具体,暴露出数据就给了其余程序随意使用数据的可能性,就增加了复杂度,想改变数据时就要考虑是否同时让很多使用这个类的代码失效。而利用函数可以提供行为上的抽象。

以上是给我感受比较深的第一句话,然后感受比较深的还有一句话,就是:险恶的(wicked)问题就是那种只有通过解决或部分解决才能被明确的问题,其实是说,你必须首先把这个问题解决一遍以便能够明确定义它,然后再次解决该问题,以形成一个可行的方案

这句话让我一下子感觉醍醐灌顶,因为我有一种完美主义的心态,就是期望在第一次就写出正确的代码,希望开发过程是一个直线的过程,但软件开发其实是一个不规则曲线的过程,虽然总的趋势是向前的,但是经常需要倒回去,这也让我明确了写代码尤其是写类就是一个试错的过程,先写出一个草稿,然后再修改,learn to fail or fail to learn,就是这个样子。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值