写代码犹如写文章

转载 2012年03月23日 18:13:09
  本书中Bob大叔提倡”写代码犹如写文章“,又说道“大师级程序员把系统当故事来讲,而不是当做程序来写”,对此观点我印象深刻!在此之前我从未听说过可以把代码当成故事、文章来写,Bob大叔太有才了! 
   
  如何才能写出整洁代码呢?总的原则无非是KISS(Keep It Simple Stupid):让代码简单直接,让阅读者可以很容易地看出设计者的意图。本书中给出了很多方法与规范,遵循这些规则可以帮你写出更加的整洁代码。 
   
  这是一本不错的书。给本书打4星,是因为本书在讲述代码重构方面不如《重构--改善既有代码的设计》、讲述代码编写方面不如《代码大全》、讲述代码设计方面不如《敏捷软件开发》(Bob大叔自己的上一本经典著作)。另外中文版价格偏高,翻译质量也很一般。 
   
  读书笔记: 
  第一章 整洁代码 
  1,整洁代码力求集中,每个函数、每个类和每个模块都全神贯注于一件事。 
  2,整洁代码简单直接,从不隐藏设计者的意图。 
  3,整洁代码应当有单元测试和验收测试。它使用有意义的命名,代码通过其字面表达含义。 
  4,消除重复代码,提高代码表达力。 
  5,时时保持代码整洁。 
   
  第二章 有意义的命名 
  1,使用体现本意的命名能让人更容易理解和修改代码。 
  2,编程本来就是一种社会活动。 
  3,尽力写出易于理解的代码 
   
  第三章 函数 
  1,一个函数应该只做一件事(高内聚),无副作用。 
  2,自顶向下阅读代码,如同是在阅读报刊文章。 
  3,长而具有描述性的函数名称,好过描述性的长注释。 
  4,少用输出参数。 
  5,拒绝boolean型标识参数。 
  例: CopyUtil.copyToDB(isWorkDB) --> CopyUtil.copyToWorkDB(), CopyUtil.copyToLiveDB()
  6,使用异常代替返回错误码,错误处理代码就能从主路径代码中分离出来得到简化。 
  7,写代码很像是写文章。先想怎么写就怎么写,然后再打磨:分解函数、修改名称、消除重复。 
  8,编程其实是一门语言设计艺术,大师级程序员把程序系统当做故事来讲。使用准确、清晰、富有表达力的代码来帮助你讲故事。 
   
  第四章 注释 
  1,别给糟糕的代码加注释----重写吧。 
  2,把力气花在写清楚明白的代码上,直接保证无需编写注释。 
  3,好的注释: 
  法律信息 
  提供信息 
  解释意图 
  警示 
  TODO注释 
   
  第五章 格式 
  1,代码格式很重要。代码格式关乎沟通,而沟通是专业开发者的头等大事。 
  2,向报纸格式学习代码编写。 
   
  第六章 对象和数据结构 
  1,对象把数据隐藏于抽象之后,只提供操作数据的函数。 
  数据结构暴露其数据,没有提供有意义的函数。 
  2,The Law of Demeter:模块不应去了解它所操作的对象内部细节。 
   
  第七章 错误处理 
  1, 使用异常而非返回错误码. 
  2, try-catch-finally, log出错信息. 
  3, 不要返回null,不要传递null。 
  NULL Object模式, 例:Collections.emptyList(); 
   
  第十章 类 
  1,自顶向下原则:让程序读起来就像是一篇报纸文章。 
  2,method可以是protected,以便于单元测试。 
  3,SRP:类或模块应有且仅有一个加以修改的原因。类名应准确描述其职责。高内聚。 
  4,开放闭合原则OCP、依赖倒置原则DIP 
  5,变量名、方法名、类名都是给代码添加注释的一种手段。 
   
  第十二章 迭代前进 
  1, 紧耦合的代码难以编写单元测试。 
  2,单元测试消除了对清理代码会破坏代码的恐惧。 
  3,写出自己能理解的代码很容易,软件项目的主要成本在于长期维护。 
  4,代码应当清晰表达其作者的意图;测试代码可以通过实例起到文档作用。 
   
  第十四章 逐步改进 
  1,编程是一种技艺。要编写整洁代码,必须先容忍脏代码,然后清理! 
  2,写出好文章就是一个逐步改进的过程。

写代码犹如写文章

本书中Bob大叔提倡”写代码犹如写文章“,又说道“大师级程序员把系统当故事来讲,而不是当做程序来写”,对此观点我印象深刻!在此之前我从未听说过可以把代码当成故事、文章来写,Bob大叔太有才了!   ...
  • uycxnjgz
  • uycxnjgz
  • 2014年08月18日 12:46
  • 168

markdown——像写代码那样写文章

Markdown是什么? Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或...
  • jearmy
  • jearmy
  • 2015年11月06日 21:00
  • 3335

markdown——像写代码那样写文章

Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或者HTML)文档”。这种语言吸收了很...
  • qq_40546111
  • qq_40546111
  • 2017年11月03日 16:07
  • 96

markdown——像写代码那样写文章

Markdown是什么? Markdown 是一种轻量级标记语言,创始人为約翰·格魯伯(John Gruber)。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的XHTML(或...
  • qilixiang012
  • qilixiang012
  • 2015年04月29日 15:02
  • 1385

写文章与写程序

同样是驾驭语言,写文章和写程序有何异同?
  • mindfloating
  • mindfloating
  • 2015年08月19日 16:10
  • 1399

推荐一个自动写paper的软件,让IEEE吐血泪奔

网址:http://pdos.csail.mit.edu/scigen/在网页上,只要输入作者名,电脑就可以自动为你生成一篇“SCI级别”的computer science论文,论文上abstract...
  • kevin_hust
  • kevin_hust
  • 2013年12月27日 09:42
  • 4465

为什么我偏爱用GitHub来写书?

为什么我偏爱用GitHub来写书?GayHub作为一个全球著名的社交网站,它的用途可不仅仅只有约基那么简单。今天,让我们来说说为什么我越来越喜欢用Git来写书——只是电子书,并且将它发布到GitHub...
  • gmszone
  • gmszone
  • 2016年04月21日 22:46
  • 12592

谈一下自己写论文的经验

谈一下自己写论文的经验        在学校读书的9年里面,直到最后1年才开始练习写文章,所以自己写文章的水平肯定是不高的。这里只是将自己这一年练习中遇到的困难,以及自己认为写论文是特别重要的点整理...
  • xiaoqiangxx
  • xiaoqiangxx
  • 2013年05月23日 16:06
  • 1399

在github上写自己的博客

我的github网址:grimxiaojun欢迎来到王小俊的个人博客这是我在github上的第一篇博客,这一篇博客我将讲述我怎么想来到github上写自己的博客的和如何在github上搭建个人博客的过...
  • qq_32266439
  • qq_32266439
  • 2017年01月14日 16:47
  • 743

想想怎么用程序来写文章

很多程序员都愿意用程序(或者代码片段)来表达某些文字或者自己的想法,这种行为,总结一下,其实就是用程序写文章。那是不是所有的文章都用程序来写呢?这个问题就比较复杂了。 程序的定义很简单,一般的程...
  • u014749672
  • u014749672
  • 2014年04月16日 16:38
  • 213
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写代码犹如写文章
举报原因:
原因补充:

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