关闭

十分钟教你如何构思代码

标签: lessinterface工具工作
319人阅读 评论(0) 收藏 举报

 

  序:当你拿到一个需求,准备写一个5万行以上的程序的时候,你是否曾经觉得不知道从何下手?是不是有种困难重重的感觉?是否写完了一个函数,又觉得不是自己期望的用途?看起来都不是很复杂,可是一做起来,却又不知道为什么变得那么复杂了。如果你刚好遇到了这样的问题,请花上十分钟,认真读完本文,或许能解决掉您的一些疑问。

 

  5年前,有一位对编码规范很有研究的同事曾经告诉过我这样一个秘诀“把函数的功能单一化”,是的,这是一个多么朴实确是无比实用的一句话啊!他说:“我写过一个用来统计代码的小工具,我很快就从网上知道了文件系统的接口如何使用,我觉得这是一件非常简单容易的事儿,于是我很快就开始了编码。我写了一个又一个函数,可是越来越发现我对于注释,函数域的统计出了问题,而且很难调试,很复杂。我发现很多情况如"/*, /**,///*,/*//"等我怎么都无法处理好,让我很懊恼失望,我几乎迷失了方向,不知怎么改是好了,因为我改好了一个问题就会引发一个新的问题出现。后来我就发现了这一个秘诀,把函数的功能单一化,我很快就解决了所有的问题。因为我不再是用很多复杂的逻辑去处理所有的情况了,我设计了一个仲裁和几个单一化的功能,用仲裁去判断要用那个小的功能来处理当前的字符,然后由各个单一化的功能去处理,我发现各种复杂的逻辑因此也都消失的无影无踪了。”

 

  是的,把函数的功能单一化,常常是我们解决复杂逻辑的万灵丹。这点,曾经开发过"BitCommet"的Bram Cohen,也在他的博客中说过类似的话,“Use less code”,代码数量少,你维护的工作将会变得简单,他说到:“The less code you have, the less there is to maintain. You shouldn't slavishly count characters or lines of code in your program and reduce it at all costs, but generally speaking, less is better.   ”他告诉我们“generally speaking,less is better”是的,简单的说,越少越好。函数的复杂度将随着代码数量的上升而增加,从而使维护变得更加复杂,而难以持续。

 

  MIT/Stanford 风格的设计中第一条:“Simplicity-the design must be simple, both in implementation and interface. It is more important for the interface to be simple than the implementation. ”而Richard Gabriel在他的worse is better一文中表示了反对这样的观点,他说:“Simplicity-the design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.”无论是接口与实现的简单化,都被他们如此的看重。Richard Gabriel认为简单将会使得解决冲突变得容易的同时移植性也得到大大的提高。

 

  没错,要让复杂的程序变得简单的一个重要的秘诀,就在于让每个函数变得简单,请你想想,你是否做到了一下几点呢:

   1.  接口的简单化

   2.  实现的简单化

   3.  代码数量最少化

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8042次
    • 积分:156
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:2篇
    • 译文:0篇
    • 评论:2条
    最新评论