From to: sid: window:

随笔 (essay)

大教堂与市集 (catb)

258    我决定在我的新项目中(当然没有Linux那么复杂和雄心勃勃)有意地尝试这些理论。
259    但是我首先要对popclient做大幅的重写和简化。
260    卡尔·哈里斯的代码很扎实,但是却如同大多C程序设计师一样,有种不必要的繁琐。
261    他把代码置于核心,而数据结构作为其支撑。
262    结果代码很漂亮,而数据结构就很特别了,甚至可以说很缭乱了。
263    (至少就LISP老手的标准而言是这样的)
264    除了改进代码和数据结构,我的重写还有另一层目的,就是要把它演进成一个我完全理解的东西。
265    因为要是你不能对程序了如指掌,维护起来可就不好玩了。
266    在最初的一个月里,我只是遵循卡尔的设计理念。
267    我所作的第一个重要改变是加入了对IMAP的支持。
268    做法是:把原来的协议支持部分改写成一个通用驱动和三个可调用的方发表(分别针对POP2、POP3和IMAP)。
269    这些变动都阐明了一个程序员需要铭记在心的通用原则(特别是对于像C这样本身不支持动态类型的语言):
270    9.精巧的数据结构即使搭配笨拙的程序代码,也比精巧代码加笨拙结构的组合要强得多。
271    布鲁克斯在《人月神话》的第九章中写道:“只给我看你的工作流程却隐藏表单,我将仍然一头雾水。
272    但是如果你给我展示表单,或许不需要流程图,就能柳暗花明了。”

Go to Dashboard (guest)