今天是第三章:函数
开篇的函数确实很长,虽然命名还较得体,但总不能让人瞻前顾后。另外,其中还有较多重复的代码。
进行重构以后,把细节隐藏起来,让骨骼框架先展示出来确实能让逻辑更清晰。
3.1 短小:
看了开篇的例子,让函数保持短小精干的风格,对大家来说应该是没有异议的。
就好像英语单词,短的总是比长的好记。同样,小函数要表达的意思肯定比长函数要清晰。
小函数只做一件事,能依序把你带到下一个函数,不需要前后对照就能一目了然。
3.2 只做一件事:
函数无非完成特定的功能,即“要到达什么目的,就需要做什么”。如果能一言以蔽之,那函数就在同一抽象层上只做一件事。
3.3 每个函数一个抽象层级:
自顶向下,让代码读起来是一系列的TO起头段落。
3.4 switch 语句
switch 语句大多数时候都有问题,应尽量避免使用。参考 Replace Conditional with Polymorphism, Replace Conditional with Visitor。
3.5 使用描述性的名称:
别害怕花时间取名字。长而具有描述性的名称比短而令人费解的名称好。保持一致的命名方式更能让代码整洁。
3.6 函数参数:
参数能少则一定要少,过多的参数让阅读、理解、测试都变得困难。
3.6.1 一元函数的普遍形式:
询问、指令、事件几种形式,但要谨慎的命名。
3.6.2 标识参数:
标识参数丑陋不堪,应该将该函数一分为二,因为该函数做了不止一件事。
3.6.3 二元函数:
除非必要不要编写二元函数,二元函数的参数之间需要自然的组合或者自然的排序。
3.6.4 三元函数:
编写三元参数前一定要想清楚。
3.6.5 参数对象:
当函数的参数多余一个并且其中一些参数具有相关性时,可以将它们封装成类。参考Introduce Parameter Object, Preserve Whole Object。
3.6.6 参数列表:
可变参数和类型为List的单个参数一样,并不会增加参数的个数。
3.6.7 动词与关键字:
一元函数的函数和参数应当形成非常良好的动词/名词对形式。而其它函数可以将参数名称编码成函数名以减轻记忆参数顺序的负担。
3.7 无副作用:
注意函数中被隐藏起来的事:时序性耦合、顺序依赖等。同时应避免使用输出参数。犹记以前写Windows程序时,老觉得输出参数很别扭,必须要阅读MSDN才知道API如何使用。
3.8 分割指令与询问:
函数做什么与回答什么,二者要进行分离,不要同时进行,否则会导致混乱。参考Separate Query from Modifier。
3.9 使用异常代替返回错误码:
使用异常能将错误处理代码从主代码路径中分离出来,让逻辑更加清晰。参考Replace Error Code with Exception。
3.9.1 抽取Try/Catch 代码块
3.9.2 错误处理就是一件事:
处理错误的函数不该做其它的事。
3.9.3 Erro.java 依赖磁铁:
错误码暗示存在某个类或枚举定义了所有错误码,对它们的修改导致重新编译和部署。
3.10 别重复自己:
重复在计算机各个领域都会出现,因此避免不需要的重复可以极大的消除邪恶的根源。
3.11 结构化编程:
保持函数短小,偶尔出现的return、break或continue语句没有坏处。避免使用goto语句。
3.12 如何写出这样的函数:
最开始也很纳闷,如何才能将代码写得漂亮。后来发现代码是需要打磨的,不管多么厉害的程序员,一开始也不可能面面俱到,而是通过各种方法进行持续改进,才能使代码日臻完善。
3.13 小结:
编程艺术是且一直就是语言设计的艺术。短小的函数、良好的命名以及合适的归置,都是为了更好的把系统当做故事来讲。
分享到:
相关推荐
《Clean Code》是软件开发领域一本非常经典的书籍,由Robert C. Martin(也被称为Uncle Bob)撰写。这本书深入探讨了编写整洁、可读、可维护代码的重要性,旨在提升软件开发人员的职业素养和代码质量。在阅读这本书...
《Write Clean Code》是微软出版的一本专注于C语言编程实践的书籍,旨在帮助开发者提高代码质量,编写出更清晰、更可维护的程序。书中的内容涵盖了C编程的多个核心领域,包括基本语法、错误处理、内存管理、数据结构...
《Clean Code(评注版)》提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好的基础。《Clean Code(评注版)》作者给出了一系列行之有效的整洁代码操作实践。这些...
Clean Code A Handbook of Agile Software Craftsmanship 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自...
《Clean Code》中文完整版.pdf 这本书是软件开发领域中一本经典的著作,由著名软件工程师Robert C. Martin(Bob大叔)撰写。《Clean Code》强调编写整洁、可读性强的代码,这对于任何软件项目的长期维护和扩展至关...
Clean Code Summary 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
### 清晰编程的核心概念与实践 —— 《Writing Clean Code中文版》解析 #### 标题解析 - **标题**:“Writing Clean Code中文版”表明这是一本关于如何编写清晰、高质量代码的书籍,其内容是针对中文读者群体。 ##...
Writing Clean Code 不是 Solid Code
24 Patterns for Clean Code 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
完美模式设计指南(Write Clean Code) CHM版 繁体中文
24 Patterns for Clean Code 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
书籍的英文原名是《Clean Code: A Handbook of Agile Software Craftsmanship》,中文版则译为《代码整洁之道》。全书通过大量的编程实践和案例,强调了代码质量和整洁度之间的直接关系,指出了干净的代码不仅在质量...
Clean-Code-A-Handbook-of-Agile-Software-Craftsmanship-Robert-C-Martin-Series Robert C. Martin Series The mission of this series is to improve the state of the art of software craftsmanship. The books ...
《编写整洁代码》是软件开发领域中一个至关重要的主题,旨在提高代码的可读性、可维护性和可扩展性。本文将深入探讨该主题,并基于...在《Writing Clean Code》中,你将找到更多关于如何实现这一目标的具体指导和示例。
"Clean Code"这一标签恰好反映了这本书的核心理念——编写整洁、易读、可维护的代码。以下是基于书中的关键知识点的详细解释: 1. **命名约定**:良好的命名是代码可读性的基础。书中强调,变量、函数和类的命名应...
《Writing Clean Code》这本书由Steve Maguire撰写,姜静波、佟金荣翻译,麦中凡校对,由电子工业出版社出版。本书是关于如何编写高质量、无错误的C语言程序的专业指南。作者基于自己在微软的工作经验和教训,分享了...
### CleanCode概述 《CleanCode》是一本关于提高软件开发质量的经典著作,它不仅强调了良好的架构和项目管理的重要性,还特别突出了代码本身的质量对于软件成功的关键作用。书中提出了“整洁代码”的概念,即代码的...
《Clean Code》是由著名软件工程师Robert C. Martin(Uncle Bob)所著,是一本关于敏捷软件开发中编写高质量代码的指南。这本书以其深入浅出的写作风格,从实践出发,结合理论,再回归实践,揭示了编写“干净代码”...