ESR的这本书终于拜读完毕,好象断断续续地持续了好长的时间,所以在做总结的时候难免会有些不连续和遗忘的地方,仅做备忘了。1-9章的读后感看
前文。
第10章,配置。作者分析了什么是可配置的,如何在运行配置文件(包括全局配置文件和用户配置文件)、环境变量(包括系统环境变量和用户环境变量)和命令行三种配置方式中选择适合的作为配置方法。作者提倡:尽量采用自动探测取代手动配置,取消不必要的控制选项;配置文件要具备很好的可读性,遵循常理,切忌标新立异,让用户的经验可用,能顾名思义;命令行选项也要按照UNIX的选项惯例进行设计。其实作者整本书都在宣扬“最小立异”原则。
第11章,用户接口的设计模式。本章中作者再度重申“最小立异”的设计原则。作者总结了接口设计的度量标准:简洁,表现力,易用,透明和脚本化能力。ESR对UNIX的接口设计模式进行了简单的分类,窃以为其分类较为细腻,但也略显凌乱,所以我在其基础上进行简单的再归纳:
- 以数据流为中心的源、过滤器(注意数据的宽进严出,所谓的编译器模式也可归为此类)和接收器模式。
- Cantrip模式:通过返回值判断命令的执行情况。
- ed模式:其实是以ed为代表的命令行的交互模式,类似程序还有ftp,telnet等。
- GUI模式:没啥需要解释的。
- Roguelike模式:似乎是以上两种模式的混合体,包含控制台和窗口两部分。
- “引擎和接口分离”模式:MVC设计模式再次被提及,经典的C/S模式,驱动/引擎组合常见于命令行的图形界面包装,其他的有如配置和执行者,以及mail程序常见的假脱机/守护进程组合(spooler/daemon)不过是“雕虫小技”。
- 基于语言的接口模式:以语言(脚本)的方式做扩展接口,还是有些用处的。
- 网页浏览器作通用前端:这个还是比较常见的,各大网络设备提供商多采用这种方式。
最后作者再次重申用自动探测取代用户选项是大有裨益的。
第12章,优化。开篇作者就引用C.A.R.Hoare的"Premature optimization is the root of all evil”,提醒开发人员:过早优化是不可取的。他提醒我们一定要具体问题具体分析,不要隔离事物之间的联系,只着眼于部分而不是整体。比较有趣的是,作者认为最强大的优化技术就是:“不做任何优化”。不过我们也不能隔离这句话的语境,其实作者想表达的意思是:线性性能增益往往很快就会被摩尔定律覆盖。当遇到性能问题时,先估量后优化,避免盲目优化,就是哲学上所指的:从实际出发。作者所提的“非定域性之害”更加有趣,充分证明了事物发展变化的观点。作者指出现在的瓶颈大多存在于IO而非处理器的性能,对此他提倡用三种方法优化之:批处理、重叠操作和缓存操作结果。
今天时间已经不早了,姑且写到这里,明天续补其后的章节。
简单地总结一下今天的生活,阳光倒是明媚,只是风也不小,有些凉!除了逛街,还有吃东西和看电影,去书店转了,可惜没买到书。
阅读(1309) | 评论(2) | 转发(0) |