作者: Robert C. Martin
出版社: Prentice Hall PTR
出版年: 2008
页数: 464
定价: $35.44
装帧: Paperback
ISBN: 9780132350884
内容简介 · · · · · ·
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin h... (展开全部) Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code “on the fly” into a book that will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.
What kind of work will you be doing? You’ll be reading code—lots of code. And you will be challenged to think about what’s right about that code, and what’s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
Readers will come away from this book understanding
How to tell the difference between good and bad code
How to write good code and how to transform bad code into good code
How to create good names, good functions, good objects, and good classes
How to format code for maximum readability
How to implement complete error handling without obscuring code logic
How to unit test and practice test-driven development
This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
作者简介 · · · · · ·
豆瓣成员常用的标签(共75个) · · · · · ·
喜欢读"Clean Code"的人也喜欢 · · · · · ·
按有用程度 按页码先后 最新笔记
-
第101页
jermaine (开始豆瓣)
尽量不要返回null值,和传递null值,返回null值使得调用者总是需要去做null值检查,影响了代码的美观以及特殊情况处理和正常流程区分开的原则。而传递异常则更恐怖,接收者不得不去做异常检查。 一些null值的返回传递其实都是一些特殊情况而已,这时候可以考虑尽量将这些特殊情况普通化,在统计应用中,null返回成一个计算值为0的对象等等。如果实在是一个异常而不是特殊情况那么就直接用异常好了。 (更多)尽量不要返回null值,和传递null值,返回null值使得调用者总是需要去做null值检查,影响了代码的美观以及特殊情况处理和正常流程区分开的原则。而传递异常则更恐怖,接收者不得不去做异常检查。一些null值的返回传递其实都是一些特殊情况而已,这时候可以考虑尽量将这些特殊情况普通化,在统计应用中,null返回成一个计算值为0的对象等等。如果实在是一个异常而不是特殊情况那么就直接用异常好了。 (收起)2011-11-24 13:36:02 回应
-
第100页
jermaine (开始豆瓣)
应该依调用者的需要来定义异常类,也就是尽量考虑异常应该如何被捕获而不是仅仅说明这个异常是网络异常还是文件访问异常。一些第三方的代码往往会抛出很多第三方定义的异常,由于Java的Checked Exception允许代码在签名处指定可能会抛出异常,因此抛出异常是引入了一些不必要的依赖的,其实为了实现这样一个异常处理,JVM本身也需要做很多诸如栈行走之类的工作。将第三方实现打包总是一个很好的选择,因为这意味着可以将这些第三方... (更多)应该依调用者的需要来定义异常类,也就是尽量考虑异常应该如何被捕获而不是仅仅说明这个异常是网络异常还是文件访问异常。一些第三方的代码往往会抛出很多第三方定义的异常,由于Java的Checked Exception允许代码在签名处指定可能会抛出异常,因此抛出异常是引入了一些不必要的依赖的,其实为了实现这样一个异常处理,JVM本身也需要做很多诸如栈行走之类的工作。将第三方实现打包总是一个很好的选择,因为这意味着可以将这些第三方异常变成自己定义的异常,当需要使用另外一个第三方实现时,只要把这些异常换一遍就可以了,不让之上的代码依赖第三方异常,而只依赖自己定义的一个异常。当异常处理的时候再由一个Wrapper去解析就可以了。 (收起)2011-11-24 13:31:12 回应
-
第49页
jermaine (开始豆瓣)
什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本是搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。 注释并不像辛德勒的名单。他们并不”纯然的好“。实际上,注释最多也就是一种必须的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释--也许根本就不需要。 (更多)
(收起)什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本是搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。 注释并不像辛德勒的名单。他们并不”纯然的好“。实际上,注释最多也就是一种必须的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释--也许根本就不需要。
2011-11-17 13:32:46 回应
-
第1页
another way to know that a function is doing more than “one thing” is if you can extract another function from it with a name that is not merely a restatement of its implementation (更多)
(收起)another way to know that a function is doing more than “one thing” is if you can extract another function from it with a name that is not merely a restatement of its implementation
2011-02-06 12:36:56 回应
-
第1页
The Boy Scout of America have a simple rule: "Try and leave this world a little better than you found it". Mr Robert C. Martin, authors of Clean Code, adapted it as The Boy Scout Rule: check-in our code a little cleaner than when we check it out. What we need to do is to write our code firstly, and then to refactor it, it is a continuous improvemnt. From down to top, it is better to ... (更多)The Boy Scout of America have a simple rule: "Try and leave this world a little better than you found it".Mr Robert C. Martin, authors of Clean Code, adapted it as The Boy Scout Rule: check-in our code a little cleaner than when we check it out. What we need to do is to write our code firstly, and then to refactor it, it is a continuous improvemnt. From down to top, it is better to pay attention below items:1, Meaningful Names.2, Small Functions and less argument.3, Good Comments and Bad Comments4, Formatting the code.5, Object-oriented, expose behavior and hide data, make it easy to add new class without change existing functions; data structure, expose data, make it easy to add new functions wihout changing the existing data structure. 6, Error Handling code is viewable independently of main code.7, Manage third-party boundaries by having few places in the code that refer to them(wrap them, use Adapter).8, Keep Unit test clean.9, class should be small(single responsibility principle), open-close principle, dependency inversion principle.10,separate consturcting a system from using it.(dependency injection)11,Emergent Design: Runs all the tests, Refactoring.12,Concurrency.In fact, there are too many rules, and some rules are also need to be reconsidered and balanced. However, As the author said that: the value system has been the goal and the topic of this book. Professionalism and craftsmanship come from values that drive disciplines. (收起)2011-02-13 17:56:44 回应
-
第101页
jermaine (开始豆瓣)
尽量不要返回null值,和传递null值,返回null值使得调用者总是需要去做null值检查,影响了代码的美观以及特殊情况处理和正常流程区分开的原则。而传递异常则更恐怖,接收者不得不去做异常检查。 一些null值的返回传递其实都是一些特殊情况而已,这时候可以考虑尽量将这些特殊情况普通化,在统计应用中,null返回成一个计算值为0的对象等等。如果实在是一个异常而不是特殊情况那么就直接用异常好了。 (更多)尽量不要返回null值,和传递null值,返回null值使得调用者总是需要去做null值检查,影响了代码的美观以及特殊情况处理和正常流程区分开的原则。而传递异常则更恐怖,接收者不得不去做异常检查。一些null值的返回传递其实都是一些特殊情况而已,这时候可以考虑尽量将这些特殊情况普通化,在统计应用中,null返回成一个计算值为0的对象等等。如果实在是一个异常而不是特殊情况那么就直接用异常好了。 (收起)2011-11-24 13:36:02 回应
-
第100页
jermaine (开始豆瓣)
应该依调用者的需要来定义异常类,也就是尽量考虑异常应该如何被捕获而不是仅仅说明这个异常是网络异常还是文件访问异常。一些第三方的代码往往会抛出很多第三方定义的异常,由于Java的Checked Exception允许代码在签名处指定可能会抛出异常,因此抛出异常是引入了一些不必要的依赖的,其实为了实现这样一个异常处理,JVM本身也需要做很多诸如栈行走之类的工作。将第三方实现打包总是一个很好的选择,因为这意味着可以将这些第三方... (更多)应该依调用者的需要来定义异常类,也就是尽量考虑异常应该如何被捕获而不是仅仅说明这个异常是网络异常还是文件访问异常。一些第三方的代码往往会抛出很多第三方定义的异常,由于Java的Checked Exception允许代码在签名处指定可能会抛出异常,因此抛出异常是引入了一些不必要的依赖的,其实为了实现这样一个异常处理,JVM本身也需要做很多诸如栈行走之类的工作。将第三方实现打包总是一个很好的选择,因为这意味着可以将这些第三方异常变成自己定义的异常,当需要使用另外一个第三方实现时,只要把这些异常换一遍就可以了,不让之上的代码依赖第三方异常,而只依赖自己定义的一个异常。当异常处理的时候再由一个Wrapper去解析就可以了。 (收起)2011-11-24 13:31:12 回应
-
第49页
jermaine (开始豆瓣)
什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本是搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。 注释并不像辛德勒的名单。他们并不”纯然的好“。实际上,注释最多也就是一种必须的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释--也许根本就不需要。 (更多)
(收起)什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本是搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。 注释并不像辛德勒的名单。他们并不”纯然的好“。实际上,注释最多也就是一种必须的恶。若编程语言足够有表达力,或者我们长于用这些语言来表达意图,就不那么需要注释--也许根本就不需要。
2011-11-17 13:32:46 回应
书评 · · · · · · (共20条) 我来评论这本书
热门评论 最新评论
写代码犹如写文章
-
- Wuqifu(喜欢买书的软件工程师~) 本书中Bob大叔提倡”写代码犹如写文章“,又说道“大师级程序员把系统当故事来讲,而不是当做程序来写”,对此观点我印象深刻!在此之前我从未听说过可以把代码当成故事、文章来写,Bob大叔太有才了! 如何才能写出整洁代码呢?总的原则无非是KISS(Keep It Simple Stupid):让代码简单直接,让阅读者可......2011-12-04 6/6有用来自 人民邮电出版社2010版
这是一本真正的好书
-
- bucciafan 这是一本真正的好书,不过如果读者没有一定的经验,以及缺乏对编程境界的追求的话,可能认为这本书很一般,甚至认为只是说了一些大白话。当然,对于有心人来说,这本书里面的很多东西可能都已经习以为常了。我的排序:本书>《代码大全》>《重构》。...... (1回应)2010-10-11 5/5有用来自 人民邮电出版社2010版
稍显浅显
-
- oldwatch(码农一思考,人生就充实) 看过他的前一本《敏捷软件开发》,当时给我的第一感觉,大概就是封面上那辉煌的新星爆发图片。于是这次在看到作者名字便毫不犹豫拿下。借无聊评审会议之暇看了半本,从第一页一直看到argsMatcher示例为止 第一感觉是,唔,稍显浅显。当然,不能说书中介绍的东西无用,实际上书中每一页都很有用,唯一的问题是:现在是2010...... (1回应)2010-03-29 4/7有用来自 人民邮电出版社2010版
程序员的“童子军规则”
-
- hanyionet 第一感觉:很有趣又非常实用的一本书,“Uncle Bob”的文笔相当幽默生动。代码质量与其整洁度成正比,大家都知道,但是如何打磨这些代码让它们变得整洁,这就是Bob大叔这本书所要传授的,在看本书的同时回忆一下自己是平时是如何编程的,会使阅读过程变得更有趣。 本书谈到了大量的小技巧和规则,例如使用可搜索的名称,分解...... (3回应)2009-12-27 1/2有用
早几年看到这本书,也许现在的水平能再上一个台阶!
-
- 朱国栋 看了前几章,大惊! 对自己这几年的积累,还是颇为自信的。想不到短短的几章书,就抵得上我几年的领悟了。 早几年看到这本书,也许现在的水平能再上一个台阶! 强力推荐。 书不见了,还得再买一本了......2011-12-22 来自 人民邮电出版社2010版
细节决定成败
-
- Bana Zhang(倒计时!) 在非常时期读这本书,就有了非常的意义。 细节决定成败,我们往往忽略的就是细节、不起眼的地方。 看到自己写出的丑陋的代码,心中如刀绞。 错误犯了一次就够了,不能在同一个问题上一错再错。 下个专案一定要按照书中所讲的,严格遵守童子军军规:让营地比你来时更干净!......2011-10-24 来自 未知出版社2011版
如果有一段时间觉得编程就是Ctrl+C和Ctrl+V,读一读...
-
- 乔巴(explorer) 如题。阅读本书的意义不在于能够记住书本中的多少内容、多少条编程准则,更重要的是,在读书过程中能够发现自己之前的愚蠢、对正确编程方法的惊叹与由此而产生的共鸣,并驱使着自己在编码过程中保持结构的清晰和代码整洁。它对人的影响是潜移默化的,它会使人在思想认识上有一个提升,至少对于我来说是这样。......2011-05-04 来自 人民邮电出版社2010版
细节决定成败
-
- Macyou(back to myopera) 不少书评都说这本书讲的太浅显了,诚然如果与《算法导论》之类的书相对比,能看懂这本书的人要多的太多了。然后看明白和能不能做到却又是完完全全的两码事。 作者其实就是从他自己的经验向各位读者讲述了他认为做什么code才能成为clean code。只有看够了各种混乱不堪的代码之后你才能体会到clean code到底是怎样的一......2010-12-12 来自 人民邮电出版社2010版
"Clean Code"的论坛 · · · · · ·
| How to buy english version? | 来自Wu Jia-Yi | 3 回应 | 2011-09-21 |
| 来自TheServerSide的书评 | 来自dreamhead | 2 回应 | 2008-12-21 |
| 好的武术家,开馆受图建立自己的门派,传播自己的知识 | 来自穴居棕熊 | 2010-01-11 | |
| 要像写文章一样写代码 | 来自song | 1 回应 | 2009-11-12 |
| 不推荐。 | 来自yaoqiang | 5 回应 | 2012-01-10 |
在哪儿买这本书? · · · · · ·
- 亚马逊 (RMB 493.10)
- 查看1家网店价格 (493.10元起)
- 加入购书单 多本比价 批量购买 已在购书单
- > 点这儿转让 有412人想读,手里有一本闲着?
这本书的其他版本 · · · · · · ( 全部4 )
以下豆列推荐 · · · · · · (全部)
- 程序员最应该读的图书(原版) (hongqn)
- 程序员必读经典书籍 (Felven)
- 数学计算机专业书籍 (我叫点点点)
- 软件 IT 经典 (uncutstone)
- Uncle Bob Martin 推荐的经典书籍 (2sin18)
谁读这本书?
喜欢这本书的人常去的小组 · · · · · ·

- 博文视点交流组 (420)

- Vim (6198)

- 开源 (4098)

- TurboGears (192)

- Gentoo (721)

- InfoQ中文站 (992)

- Python编程 (19004)

- 自然语言处理 (1051)
喜欢这本书的人关注的活动 · · · · · ·
订阅关于Clean Code的评论:
feed: rss 2.0











