标签:
写代码和写文章非常相似,都利用电脑工作,都码字。判断一段代码好不好,能考评的也就是代码的格式,风格还有算法了,下面从这些方面来看看写代码和写文章是多么的相似。
在写代码里主要指缩进,空格,空行,对齐等文本排版形式,这个是最最容易到达的一个代码好的指标,好多的IDE环境都是一键自动格式化。好的代码格式就像好的文章一样排版精美,段落清晰。代码的格式美观是形式美,是外在美。
/** 差的格式举例 **/ function swap(a, b) { var c=a; a=b; b=c; } /** 好的格式举例 **/
function swap(a, b){ var c = a; a = b; b=c; }
作家写作有文风,编码也有码风,代码风格就包含更多的东西了,比如命名风格,比如实现方式。
码风其实和文风是很像的,比如鲁迅散文诗集<野草>中的第一篇,名为<秋夜>。第一段原文如下:“在我的后园,可以看见墙外有两株树,一株是枣树,还有一株也是枣树。”那换一种文风来描述也可以是:“我家后院墙外种着两颗枣树。”
排除需要表达的深层含义,这两种文字都表达了我家后院有两棵枣树,达到的目的是一样的。无法是采用的词汇语句不一样而已,即使得文风不同。在编码的时候,码风也是这样形成的,相同的功能需求,不同的人来编写,代码基本也都不是完全一样的,因为每个人都有自己的码风,这个码风就体现在了变量的命名,循环语句的偏好(for还是while)等等等等。
举个不同码风的例子:
/** 数组求和 **/
function sum_for(arr){ var sum = 0; for(var i = 0; i < arr.length; i++){ sum += arr[i]; } return sum; } function sum_while(arr){ var sum = 0, i = arr.length; while(i--){ sum += arr[i]; } return sum; }
写文章会有一个提纲一个骨架。写代码也是一样的,不过我们称之为算法,算法决定了整个代码的行文走向,是悲剧还是喜剧。如果你想写篇文章,因为你有个很好的想法需要表达给你的读者,但是由于你词句匮乏,成语还错用,写出来的文章就会总是文不达意。相同的写代码有时候也会文不达意,因为for语句的语法规则没弄清楚,处理流程便会出现了预期结果不一致的结果,这个时候我们称之为BUG了。算法是一段代码的灵魂思想,正如一篇文章,尽管文风平实,但思想深邃,构思巧妙,发人深省,影响深远。好的算法也有这种魅力,码风平实,但用途广泛,小如快速排序,泛如动态规划,好的算法甚至可以流芳百世,如好的小说被翻译成各国语言,好的算法也会被各种编程语言实现。编程语言说到底是一种表达工具,是为了表达我们心中的算法的工具。如果写代码只追求格式与风格(码风),毫不理会算法设计,那么就会像写文章只追求排版与辞藻却毫无思想,读完也会空洞无力。所以算法就像代码的灵魂,是一种内在的美。
现实的世界与理想的世界不同,不过写代码又一次神似写文章了,我们好多的程序员也是复制粘贴,引用第三方类库,自己组织的部分也仅仅是小部分,底层研发的程序员在业界也总是占小部分。从事编辑工作的大部分工作也是编辑转载,原创的编辑也是少之又少。
虽然上面几段我把算法是夸了又夸,推崇至极,但是如果你和我一样都是创造不了伟大算法的那种平凡人,也就是我们只能在代码格式和代码风格上多做努力的朋友们。咱们晦涩难懂的码风还是少写一些,做程序员要厚道!以上纯属娱乐~~欢迎大家提供更多有趣的相似点
标签:
原文地址:http://www.cnblogs.com/binking338/p/4882964.html