写代码犹如写文章

转载 2012年03月29日 19:19:18

抛开代码,读完下面的话,你就会对编程有一个新的认识

本书中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
  • 175

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

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

github如何写博客

github如何写博客 第一步:注册github账号,这个很简单,不详细说明。 第二步:点击右上角新建一个仓库,然后进入仓库。 第三步:进入仓库界面之后,有一个setting按钮,点击进入。 ...
  • u011915230
  • u011915230
  • 2016年01月29日 23:56
  • 861

写代码与写文章一样

如题,感觉写程序与写文章有很大的相似之处:学习过程都要一边看例文一边动手写才能有效果;没有足够知识的积累会导致写作过程中绞尽脑汁仍一筹莫展;写文章时会有字斟句酌的讲法,写代码时则经常会碰到为了一个操作...
  • kinzlaw
  • kinzlaw
  • 2009年08月17日 08:45
  • 338

latex徒手写论文之小白篇

latex基本设置、section格式更改、目录格式更改、程序代码的插入、图片的插入、表格内强制换行、表格内上下左右居中、设定enumerate编号样式、参考文献。...
  • Sugar_girl
  • Sugar_girl
  • 2017年06月02日 16:50
  • 353

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

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

Tensorflow lstm实现的小说撰写预测

最近,在研究深度学习方面的知识,结合Tensorflow,完成了基于lstm的小说预测程序demo。 lstm是改进的RNN,具有长期记忆功能,相对于RNN,增加了多个门来控制输入与输出。原理方面的...
  • u013453936
  • u013453936
  • 2017年03月10日 14:48
  • 1713

Hexo在Github中搭建博客系统(4)建菜单写文章

在Hexo博客系统中, 可以创建菜单、文章、分类、标签。在我们的主题中,菜单和文章需要手动创建,而分类和标签不用手动创建,一、创建菜单在blog目录创建一个新的菜单$ hexo new page "g...
  • chwshuang
  • chwshuang
  • 2016年08月29日 09:59
  • 3720

如何写introduction

Introduction 是外刊文章最难写的部分之一 ( 另外就是 Discussion) 。中文文章的缺陷就在于 Introduction 没有内涵,过于简单,没有真正体现论文的研究起初和创新要素。...
  • gexiaobaoHelloWorld
  • gexiaobaoHelloWorld
  • 2013年03月02日 19:25
  • 1078

简单实用的wordpress文章插入代码语法高亮插件

如何在文章中插入代码这本来是件简单的事,但由于wordpress是用PHP代码写的,所以在wordpress的文章中插入PHP代码就会有些部份会被屏蔽掉,针对这种问题本站特意来推荐一个简洁干净的代码显...
  • iastro
  • iastro
  • 2015年05月19日 17:49
  • 3234
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写代码犹如写文章
举报原因:
原因补充:

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