易读代码的艺术txt,chm,pdf,epub,mobi下载 作者:Dustin Boswell,Trevor Foucher 出版社: 东南大学出版社 原作名: The Art of Readable Code 出版年: 2012-6 页数: 190 定价: 39.00元 ISBN: 9787564134471 内容简介 · · · · · ·《易读代码的艺术(影印版)》分析了许多的“糟糕代码”(这些代码有很多是出自于他们自己之手),他们试图厘清为什么这些代码如此糟糕以及如何改进这些代码。他们得出的结论是:你必须写出让他人(这里也包括你自己)花费最少时间能够理解的代码。 作者简介 · · · · · ·博斯韦尔(Dustin Boswell),毕业于加州理工学院,在谷歌公司从事过五年的Web信息采集基础设施和广告营销计划的研究工作。他先后构建过多个Web站点,目前的主要研究兴趣在于大数据的处理和机器学习领域的相关技术。 富彻(Trevor Foucher),过去十年中先后在微软公司担任Windows及安全相关产品的工程师、经理和技术领导者的职务,现任职于谷歌公司,主要从事谷歌广告营销计划和搜索基础设施的研究工作。 目录 · · · · · ·PREFACE1 CODE SHOULD BE EASY TO UNDERSTAND What Makes Code "Better"? The Fundamental Theorem of Readability Is Smaller Always Better? Does Time—Till—Understanding Conflict with Other Goals? · · · · · ·() PREFACE 1 CODE SHOULD BE EASY TO UNDERSTAND What Makes Code "Better"? The Fundamental Theorem of Readability Is Smaller Always Better? Does Time—Till—Understanding Conflict with Other Goals? The Hard Part Part One SURFACE—LEVEL IMPROVEMENTS 2 PACKING INFORMATION INTO NAMES Choose Specific Words Auoid Generic Names Like Imp and retual Prefer Concrete Names ouer Abstract Names Attaching Extra Information to a Name How Lon.g Should a Name Be? Use Name Formatting to Conuey Meaning Summary 3 NAMES THAT CAN'T BE MISCONSTRUED Example: Filter() Example: Clip(text, length) Prefer rain and max for (Inclusiue) Limits Prefer first and last for Inelusiue Ranges Prefer herin and end for.Inclusiue/Exclusiue Ranges Naming Booleans Matching Expectations of Users Example: Eualuating Multiple Name Candidates Summary 4 AESTHETICS Why Do Aesthetics Matter? BearranRe Line Breaks to Be Consistent and Compact Use Methods to Clean Up Irregularity Use Column Alignment When Helpful Pick a Meaningful Order, and Use It Consistently Organize Declarations into Blocks Break Code into "Parafgraphs" Personal Style uersus Consistency Summary 5 KNOWING WHAT TO COMMENT What NOT to Comment Becording 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 7 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 8 BREAKING DOWN GIANT EXPRESSIONS Explaining 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 9 VARIABLES AND READABILITY Eliminatinfg Variables Shrink the Scope of Your Variables Prefer Write—Once Variables A Final Example Summary Part Three REORGANIZING YOUR CODE 10 EXTRACTING UNRELATED SUBPROBLEMS Introductory Example: find Closest Loeation() 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 11 ONETASK ATA TIME Tasks Can Be Small Extracting Values from an Object A Larger Example Summary 12 TURNING THOUGHTS INTO CODE Describing Logic Clearly Knowing Your Libraries Helps Applying This Method to Larger Problems Summary 13 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 14 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 15 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 A FURTHER READING INDEX · · · · · · () |
很有收获的
以前买过
这本书我在大学时看过一遍
很有趣的笔触