the5fire

关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


读《Linux/Unix设计思想》--写好你的过滤器

作者:the5fire | 标签:     | 发布:2012-10-08 10:43 p.m. | 阅读量: 9948, 9598


读完这本书之后我突然有了一切皆过滤器的醒悟。



一本书,不同的阶段读会有不同的领悟,不同的场景读也同样如此。如果说仅仅是听别人说这本书好,读这本书和为了提高自己的代码质量而读这本书感觉是截然不同的,打个比喻来说就是,你已经吃过饭了,然后又去吃甜点和你饿了三天,突然吃到甜点。就是这两者的区别。



读这本书的场景是这样:

平时工作中在做做任务的时候,都会新创建一个git branch出来,等任务完成之后,需要由组长审查、测试之后才能合并到主分支。

如果你为了抓紧时间完成工作,而忽视了代码质量,那么迎接你的将是面对面的重构。

我想没有什么会比组长把你的代码一行不差的全部改掉那般痛苦吧。尤其是在python中,丑陋的代码和优美的代码之间的差异是如此明显。

另外也为了不在每周的例会上代码走读时,代码被别人挑出太多的丑陋的地方,提高自己的代码质量势在必行,且是发自肺腑。



在上面的场景下,我就想到了这本书,于是从好友处借读。话说借来的书读起来果然很快。有条件的同学不妨一试。



为了保证上下文的完整(context)有必要把里面的我认为的重点原则,罗列一下:

1、小即是美。

2、让每一个程序只做好一件事情。

3、尽快建立原型。

4、充分利用软件的杠杆效应。

5、让每一个程序都成为过滤器。



上面的序号并不是书中原则的排序,而是我自己挑出来的排序。

前两条是一个很基本的原则,在你写程序之前就要不断在心里念叨着,要让自己意识到,你将要写出的代码要尽量保持短小精干,让每个函数都显的足够专业。

而第三条是你在写代码时着重注意的,尽快的完成一个可用的函数(版本),而不是说,写到一半突然发现代码太丑了,推倒重来。那样的话估计你就成为那个不断推着石头上山的人了。好的代码从来不是一次性写成的。因此,在1、2的意识指导下尽快建立原型,

如果1、2条是代码细节上的一个指导的话,后面的4、5条就是全局思想的指导。

你需要吃充分利用软件的杠杆原理及重复利用已有的代码(这里着重是指充分利用那些你所写好的短小精干的代码),一个好的程序应该是数个短小函数或者类的优良的组织结合。

最后一条尤其具有至高的指导意义。

让每一个程序都成为过滤器,每个函数也是一个过滤器。所谓过滤器,就是对数据进行过滤,这是句大白话,却不能忽视。对过滤器的作用是过滤,因此你的过滤器中不应该含有数据。就像是你用来过滤沙子的筛子上不应该包含沙子一样,因为你可能会用这个筛子来过滤大米。(估计没人想吃到含有沙子的大米)因此如果过滤器中含有数据,那将会很硌牙。

因此要尽量避免那些硌牙的函数、类。


一本书读完,留下的余味就是一切皆过滤器。不仅仅是一段代码,一个函数,一个类,一个程序,一个软件;就连电脑(在硬件以及OS层面)也是;你周身所能见的一切,汽车、路灯;你周围的人、植物;太阳、宇宙。

​从一个极小的生态系统,到一个极大的生态系统,一切都在进行成新陈代谢,而新陈代谢的基础便是物质或能量的流动。而那些流动中的载体不就是过滤器吗。 - from the5fire.com
----EOF-----

微信公众号:Python程序员杂谈


其他分类: