十分钟教你如何构思代码

原创 2011年01月23日 10:57:00

 

  序:当你拿到一个需求,准备写一个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.  代码数量最少化

 

构思编辑器教你如何不用代码排版出好看的微信公众号文章

作为微信公众号运营人员之一,如何简单的进行微信文章内容编辑很重要。其中最主要的在于如何编辑出优美的文章并且文章的整体布局和排版都很美观。然而不是很多人都懂得如何使用代码去完成这些要求,那么不懂代码的运...

微信编辑器——构思编辑器教你如何学好图文排版

对于很多运营微信公众号的人来说,如何运营好一个微信号并且随着运营时间的推移,公众号内的粉丝增加量以及文章的阅读量成为了很多运营者最为关心的问题。每每看到很多运营账号的文章可以展现出很多图文并茂、排版整...

十分钟教你如何辨别微信公众号的质量

如今新媒体的发展速度越来越快,甚至还有不少人称新媒体将逐渐取代传统媒体,相对运用广泛的微信公众号也越拉越多的出现在网友面前,公众广告投放也是层出不穷,眼看着别人一则广告收获千万收益,而你付出巨额却打了...
  • bstvu6
  • bstvu6
  • 2016年08月10日 14:48
  • 4339

three.js入门基本知识,教你十分钟做出一个旋转的图形

three.js入门基本知识,教你十分钟做出一个旋转的图形。three.js是一款webGL框架,由于其易用性被广泛应用。如果你要学习webGL,抛弃那些复杂的原生接口从这款框架入手是一个不错的选择。...

十分钟教你学会zookeeper安装和集群搭建(伪集群 )

1. zookeeper介绍 ZooKeeper是一个为分布式应用所设计的分布的、开源的协调服务,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,简化分布式应用协调及其管理的难度,提供高...

十分钟教你玩转Android动画【Android】

动画效果编程基础--Animation 动画类型 Android的animation由四种类型组成 XML中  alpha 渐变透明度动画效果 sc...
  • lingwu7
  • lingwu7
  • 2014年09月30日 19:32
  • 654

C语言实现修改文本文件中特定行的实现代码(百度一天没找到,bing搜索十分钟就找到了)

好的,首先我先叙述下功能要求: 其实很简单,就是Shell中sed命令的C语言实现,实现定位到所需要的字段的那一行,之后修改成需要的内容。但是由于C语言是面向过程的语言,需要顺序执行的特点,所以,实...

不敢说不之—— 十分钟学会搭建微信和微博两种主流框架(纯代码)

介绍 一微信主流框架的搭建 1微信主流框架的实现思路 2微信主流框架的代码实现 二微博主流框架的搭建 1微博主流框架的实现思路 2微博主流框架的代码实现...

GDB十分钟教程(猿哥不识GDB,撸尽代码也枉然)

转载于:http://blog.csdn.net/liigo/article/details/582231 本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友,以及程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:十分钟教你如何构思代码
举报原因:
原因补充:

(最多只允许输入30个字)