编程思想-小即是美

  这里开始谈谈Linux的设计
      首先介绍一个具有里程碑的协议:  GNU公共授权协议(GPL).
      GPL是一个适用于软件的法律协议,根本保证了软件的源代码可以自由提供给任何想要得到它的人。
这样一种协议也保证了不断有一股新生的力量加入到Linux这个大家庭来,给社区注入活力的同时,也因为这成千上百万人的贡献,促进Linux系统不断的发展。所以我们把Linux认为是一种集思广益的智慧,也是有一定道理。
 
接下来提出了一个NIH(Not Invented Here)问题。提出这个问题是为了为软件工作者指明一条光明大道。
尊重前人的成果,并试图基于前人的成果,不断改进,取其精华,去其糟粕,改善解决方案。而不是重新自己造轮子。这也是Linux给我们灌输的一种思想:在原有软件的基础上进行加强和扩展,不断改善原有软件。
 
下面我们来谈谈今天要讲的第一条开发准则:      软件开发应该力求简单。
如果你准备编写一个程序,请从小规模开始并尽量保持。确保每一个函数执行单一的工程,我们也可以称为一个小函数。
 
性能方面讲,小函数消耗的系统资源较少。因为他们的可执行镜像只占用了少量内存,操作系统就更能轻而易举地为它们分配空间。这大大降低了内存交换和分页的需求,这样往往能显著提高系统性能。谈到这里,也许有人会认为我有足够大的内存,不用担心这个。但是我想说的是,如果内存越大,使用小函数的系统就更能从中受益。大容量的内存使得更多小函数可以在内核高速缓存中驻留更长的时间,这样加速了CPU的利用率,从而提升了系统性能。
 
可维护性方面来讲,小函数使我们不需要靠注释就能很轻松的理解其功能。这也是一个优秀的软件工作者需要的基本素质,经常需要给代码加上完整而不冗余的注释,解释函数的功能。不过,我们发现短小精悍的代码比起那大篇幅注释的代码更易于理解和维护。
 
说了那么多小函数的好处,那么怎样才能编写出短小精悍的小函数呢?编写小函数没有固定的武功秘籍可以传授,但是我们可以遵循一定的规则,这些规则可以帮助我们编写出短小精悍的代码。我觉得有必要跟大家介绍一下:
    中心思想:让每个小函数只做一件事,实现单一功能。
经常在写一个程序时,我们往往考虑这个程序要实现多种功能,其实很简单,将每一种功能写成一个函数。但是在具体实现的时候,有一些评判准则可以帮助我们判断自己编写的函数是否为小函数。我把这些评判准则列在下面:
    1  先看看函数参数是否过多,原则上不超出屏幕的宽度。
    2  函数的代码不能超过整个屏幕。
    3  要靠阅读代码注释,才能记住函数到底做了什么。
    4 函数名太长了。
 
当然上面这些只是一个形式上的评判标准,最主要的还是中心思想,这个函数只能做一件事。
                                                    参考 Linux philosophy。
 
 
posted @ 2013-09-23 09:30  青春不再出发  阅读(287)  评论(0编辑  收藏  举报