天天看点

《unix编程艺术》读后感

前三章:主要讲解了,unix的历史,以及与其他操作系统的不同之处

第四章:模块性-->保持清晰,保持简洁。

1:模块化的首要特质就是封装,不要过多的披露自身的细节,不胡乱共享全局数据,不直接调用其他模块的实现码。

2:尽量保持正交性,各个功能独立,互不影响。比如:调节显示器对比度,不会影响亮度,调节色彩,不会影响对比度。(改变属性有且只有一个方法,其他都是调用这个方法)

3:重构代码,尽量在功能完成之后进行重构

4:自顶向下:从抽象到具体。

   自底向上:从具体到抽象。

软件设计都会用到这2中方式,或者同时一起用。一起用的时候,中间需要一个衔接层。也就是胶合层,胶合层应该尽量的薄,不然容易产生bug

第五章:文本-->好协议产生好实践

1:主要讲解了,unix文本的一些标准。

2:介绍了各种协议的格式。

第六章:透明性

。。。

第七章:多道程序设计-->分离进程为独立的功能

1.生成多个进程,分工完成特定的功能,提高效率。

2.管道依赖于没个程序都有的:标准输出和输入。并且具有单向性。

3.信号,套接字也可以用与进程间通信

4.共享内存用于进程间通信。

5.线程提高了编程复杂度,由于共享了全局内存,使得地址空间管理和临界区竞争变得相当困难。尽管创建开销小,上下文切换开支同样也小。但是共享数据加锁,同样开销也很大,而且还容易造成死锁。

ps:看到很多大大推荐这么书,所以厚颜无耻的也去看了看。都是讲理论偏多,当然也有很多小例子,大多都是文字描述的,代码屈指可数。感觉里面讲的东西都很深,我也只是硬着头皮把书翻完了,很多东西可能是没接触过,所以不太懂。里面介绍了很多设计原则,设计方法。后面的章节也只是草草翻完了。过个几年一定要找机会再重新看看这本书。不大适合我这种菜鸟看,当前应该还是多看些基础书。

继续阅读