- 博客(5)
- 资源 (18)
- 收藏
- 关注
原创 分享几个非常有启发性的设计概念
最近读完《unix编程艺术》,一本不错的书,值得好好读一下。书中提到了一些非常有启发性的设计概念,这里和大家分享一下。模块性:要编写复杂软件又不至于一败涂地的唯一方法,就是用定义清晰的接口把若干简单的模块组合起来。模块性可以说是听到的最多的一个,它已经深入程序员的心中。它的本质其实就是用分而治之的方法来分解复杂度。关于模块的大小,本书有精彩的论述,有兴趣可以详读。紧凑性:就是一个设计能否装进人脑的
2011-10-23 21:35:43 8269 21
原创 开发工具,重用,可移植性——unix编程艺术学习笔记
1 工具:开发的战术有几个工具需要关注一下:Lex和yacc:这两个工具和DSL相关,我之前考虑过写一个通用的DSL引擎,这两个工具也许是可以使用的。另外,Python有它的一个实现叫PLY,也要关注一下。它的一个实例:Glade。Makefile的自动生成工具:比如atuoconf,imake。2 重用:论不要重新发明轮子避免重新发明轮子的最有效的方面就是借用别人的实现:在U
2011-10-20 21:56:32 2127
原创 14 语言:C还是非C——UNIX编程艺术学习笔记
每种语言都有它擅长的领域,所以,我们的策略,就是使用多种语言,让每个语言完成他们擅长的部分任务。混合语言编程是一种语言密集型,而不是代码密集型的编程。我们不但要具备多种语言的知识,还要能够知道各个语言的特长。C:可以作为其他语言的基础,来实现其他语言的核心。它的效率接近机器语言。但是容易犯错,开发效率低。C++:编译效率,面向对象,泛型编程的结合。但是非常怪异复杂,往往鼓励复杂的设计。Shell:
2011-10-20 21:55:47 2144 2
原创 软件的适度规模——unix编程艺术学习笔记
小巧锐利工具的Unix教义隐藏着二重性:框架的存在。吝啬原则:只有实证了其他方式行不通时才写庞大程序。要对庞大程序保持一种严谨怀疑态度以及一种谨慎的策略和方法:首先寻找小巧程序的解决方案。如果单个小程序无法完成工作,尝试在现有框架结构内构造一个协作小程序工具包来解决问题。如果两者都失败了,才可以自由的构建一个巨型的程序或者一个新的框架,而不会觉得已经完败于设计挑战。当编制一个框架时,牢记分离原则。
2011-10-20 21:54:55 1514
原创 c程序员的python开发总结
之前发表过一篇文章《如何学习一门新的语言》。之后就开始学习python了,具体原因也不是很清楚了。我先是从python简明教程开始,写了两篇笔记《python初体验1》《python初体验2》,但是没有太多的感受。后面因为一个小的项目,我想尝试一下python,在这个过程中,体验了python的简洁和高效,有一种飞起来的感觉——也许我是一名c语言程序员。事实也再次证明,学习一门新的语言最好的方法就
2011-10-20 21:44:22 3194 1
:The C Programming Language 中文版
2009-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人