易读代码的艺术
易读代码的艺术封面图

易读代码的艺术

(美) 博斯韦尔 (Boswell,D.) , (美) 富彻 (Foucher,T.) , 著

出版社:东南大学出版社

年代:2012

定价:39.0

书籍简介:

作为程序员,我们经常看到一些充满Bug,让我们头痛不已的丑陋代码。在过去五年中,本书的作者Dustin Boswell和Trevor Foucher分析了许多这样的“糟糕代码”(这些代码有很多是出自于他们自己之手),他们试图厘清为什么这些代码如此糟糕以及如何改进这些代码。他们得出的结论是:你必须写出让他人(这里也包括你自己)花费最少时间能够理解的代码。

作者介绍:

Dustin Boswell,毕业于加州理工学院,在谷歌公司从事过五年的Web信息采集基础设施和广告营销计划的研究工作。他先后构建过多个Web站点,目前的主要研究兴趣在于大数据的处理和机器学习领域的相关技术。 Trevor Foucher,过去十年中先后在微软公司担任Windows及安全相关产品的工程师、经理和技术领导者的职务,现任职于谷歌公司,主要从事谷歌广告营销计划和搜索基础设施的研究工作。

书籍目录:

PREFACE

PREFACE

CODE SHOULD BE EASY TO UNDERSTAND

What Makes Code "Better"?

The Fundamental Theorem of Readability

Is Smaller Always Better?

Does Time-TilI-UnderstandinR Conflict with Other Goals?

The Hard Part

Part One SURFACE-LEVEL IMPROVEMENTS

PACKING INFORMATION INTO NAMES

Choose Specific Words

Auoid Generic Names Like Imp and retual

Prefer Concrete Names ouer Abstract Names

Attachin9 Extra Information to a Name

How Lon.g Should a Name Be?

Use Name Formatting to Conuey Meaning

Summary

NAMES THAT CAN'T BE MISCONSTRUED

Example: FilterO

Example: Clip(text, length)

Prefer rain and max for (Inclusiue) Limits

Prefer first and last for Inelusiue RanRes

Prefer herin and end for.lnclusiue/Exclusiue RanRes

NaminR Booleans

MatchinR Expectations of Users

Example: EualuatinR Multiple Name Candidates

Summary

ESTHETICS

Why Do Aesthetics Matter?

BearranRe Line Breaks to Be Consistent and Compact

Use Methods to Clean Up IrreRularity

Use Column AliRnment When Helpful

Pick a MeaninRful Order, and Use It Consistently

OrRanize Declarations into Blocks

Break Code into "Parafgraphs"

Personal Style uersus Consistency

Summary

KNOWING WHAT TO COMMENT

What NOT to Comment

Becordin9 Your Thouyhts

Put Yourself in the Reader's Shoes

Final Thoughts--Getting Over Writer's Block

Summary

6 MAKING COMMENTS PRECISE AND COMPACT

Keep Comments Compact

Avoid Ambiguous Pronouns

Polish Sloppy Sentences

Describe Function Behavior Precisely

Use Input/Output Examples That Illustrate Corner Cases

State the Intent of Your Code

"Named Function Parameter" Comments

Use Information-Dense Words

Summary

Part Two SIMPLIFYING LOOPS AND LOGIC

MAKING CONTROL FLOW EASY TO READ

The Order of Arguments in Conditionals

The Order of if/else Blocks

The ?: Conditional Expression (a.k.a. "Ternary Operator")

Avoid dogwhile Loops

Returning Early from a Function

The Infamous goto

Minimize Nesting

Can You Follow the Flow of Execution?

Summary

BREAKING DOWN GIANT EXPRESSIONS

Explainin9 Variables

Summary Variables

Using De Morgan's Laws

Abusing Short-Circuit Logic

Example: Wrestling with Complicated Logic

Breaking Down Giant Statements

Another Creative Way to Simplify Expressions

Summary

VARIABLES AND READABILITY

Eliminatinfg Variables

Shrink the Scope of Your Variables

Prefer Write-Once Variables

A Final Example

Summary

Part Three REORGANIZING YOUR CODE

EXTRACTING UNRELATED SUBPROBLEMS

Introductory Example: findClosestLoeationO

Pure Utility Code

Other General-Purpose Code

Create a Lot of General-Purpose Code

Project-Specific Functionality

Simplilying an Existing Interface

Reshaping an Interface to Your Needs

Taking Things Too Far

Summary

ONETASK ATA TIME

Tasks Can Be Small

Extracting Values from an Object

A Larger Example

Summary

TURNING THOUGHTS INTO CODE

Describing Logic Clearly

Knowing Your Libraries Helps

Applying This Method to Larger Problems

Summary

WRITING LESS CODE

Don't Bother Implementing That Feature--You Won't Need It

Question and Break Douan Your Requirements

Keeping Your Codebase Small

Be Familiar with the Libraries Around You

Example: Using Unix Tools Instead of Coding

Summary

Part Four SELECTED TOPICS

TESTING AND READABILITY

Make Tests Easy to Read and Maintain

What's Wrong with This Test?

Making This Test More Readable

Making Error Messages Readable

Choosing Good Test Inputs

Naming Test Functions

What Was Wrong with That Test?

Test-Friendly Deuelopment

Going Too Far

Summary

DESIGNING AND IMPLEMENTING A "MINUTE/HOUR COUNTER"

The Problem

Defining the Class Interface

Attempt 1: A Naiue Solution

Attempt 2: Conueyor Belt Design

Attempt 3: A Time-Bucketed Design

Comparing the Three Solutions

Summary

FURTHER READING

INDEX

内容摘要:

《易读代码的艺术(影印版)》特点:简化每一行代码审命名,注释及格式化的技巧;精炼程序中的循环结构、代码逻辑和变量以减少代码的复杂性和迷惑性;在函数级别上解决代码存在的问题,比如利用函数重新组织代码块使得代码一次只完成一个任务;编写全面简洁并且可读的有效测试代码。

编辑推荐:

作为程序员,我们经常看到一些充满Bug、让我们头痛不已的丑陋代码。在过去五年中,《易读代码的艺术(影印版)》的作者博斯韦尔(Dustin Boswell)和富彻(Trevor Foucher)分析了许多这样的“糟糕代码”(这些代码有很多是出自于他们自己之手),他们试图厘清为什么这些代码如此糟糕以及如何改进这些代码。他们得出的结论是:你必须写出让他人(这里也包括你自己)花费最少时间能够理解的代码。

书籍规格:

书籍详细信息
书名易读代码的艺术站内查询相似图书
9787564134471
如需购买下载《易读代码的艺术》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地南京出版单位东南大学出版社
版次影印本印次1
定价(元)39.0语种英文
尺寸24 × 17装帧平装
页数印数

书籍信息归属:

易读代码的艺术是东南大学出版社于2012.6出版的中图分类号为 TP311.1 的主题关于 程序设计-英文 的书籍。