| hu's profile混吃等死滴高手PhotosBlogLists | Help |
|
|
January 05 Unix编程艺术.机制,而不是策略
行为的最终逻辑被尽可能推后到使用端;
最终用户永远比操作系统设计人员更清楚他们究竟需要什么。
一个程序只做一件事,并做好。程序要能协作。程序要能处理
文本流,因为这是最通用的接口。 计算机编程的本质就是控制复杂度
要编制复杂软件而又不至于一败涂地的唯一方法就是降低其整体复杂度——用清晰
的接口把若干简单的模块组合成一个复杂软件。如此一来,多数问题只会局限于某个局 部,那么就还有希望对局部进行改进而不至牵动全身。 kiss January 01 值参和型参的演变问题:现代对象语言传递的是值参还是型参? 这个问题应该以语言对象化前后为分水岭来看 对象前类型:直接传值过去也可以,传值的指针过去也可以。(型参和值参是这时的概念,有指针的概念支持)。 对象后类型:对象在内存里就是一窝内存空间,传递这窝内存肯定是效率低下的了,只好传地址或叫引用过去。这时候就没有型参值参的概念了,因为没了指针概念, 所以后对象主义概念里面只有引用和值参。 December 31 计算机科学中一些有用的概念,其他领域也应该相通约束 : 约束使事物稳固,unit test作为源码层面上的约束,断言,不变式是必要的。有人说约束是对象的核心,没太领会。 语义: 语言的意义,稀里哗啦说了一通到底说的是什么,就象用计算机语言罗罗嗦嗦写了一通东西,到底是想干什么?抽象点说出来就是语义。注释(comment)就应该是语义层面的。 还有就是现在流行的领域语言(domain)用程序语言表达出来应该也是语义层面上的。计算机语言一方面要贴近机器,一方面也要贴近问题。即能让人类更好 的表达解决问题的意思,又能让机器更好的运行。这个也算是我评价语言和framework的标准吧。so 根据这个标准来评价最近热门的web框架ruby on rails,DHH所讲的代码的美其实也就是能用rails说出人类容易理解的域语言来,不错的思路。 另外和语义相关的就是程序代码里面的命名了,象那些类名、方法名和变量名不正是要表达那些抽象的域概念吗? namespace python里面用import this, The Zen of Python就会显示在你面前,看最后一条 Namespaces are one honking great idea -- let's do more of those! 做的和说的一致,python语言把这个概念用到了骨子里面,可以说python的一切都是用namespace管理的,包括对象模型。那些类了,对象 了,方法了什么什么的通通都在各的namespace呆着。通过namespace划分的作用域理解起来那么清晰。所以这样一个清晰的概念造就了清晰简单 统一的python语言,Python 真正的行为是什么总是可以阅读的(zq),这是我喜欢它的原因。通过这个又联想到了unix,为什么我会感觉unix也是那么简单清晰统一呢,就是因为他也有一个统一的概 念,文件。理解了这些概念,就想看透了python和unix,了然一心了才不会害怕,偶稀饭! python的namespace概念可以参考王纯业先生写的python学习笔记。 unix概念可以买清华出版的<unix/linux编程实践教程>来看,概念讲的很好。 其实namespace这个概念应该属于现实世界的概念,事物存在时空当中,那么计算机中的抽象事物是怎样存在的呢?我想namespace这个概念应该算是比较好的解决了这些抽象事物的存在、归类、相互作用和生命周期问题。 python的namespace是基于dictionary实现的,其实应该就是hash表。key-value结构,无序的快速查找,hash真是现代计算机科学的利器啊!更显示出namespace的威力。 June 28 辩证法与放屁辩证法与放屁 上课时,我放了一个屁——很普通的屁。既不很臭,当然也绝对不香。 教授说:“下面我们讲一下辩证法的用途。我们要举一个更加复杂的例子:如何看待中国传统文化?” 不求甚解是思维的大害不求甚解是思维的大害 信息信息=位+上下文 |
|
|