Clean Code

代码整洁之道

代码整洁之道
1. 有意义的命名

1. 有意义的命名

  1. 名副其实

    变量、函数或类的名称应该告诉你,它为什么会存在,它做什么事,应该怎么用,如果需要注释来补充,那就不算是名副其实。

  2. 避免误导
    • 某些系统的专有名词不要使用。
    • 堤防使用不同之处较小的名称。比如XYZControllerForEfficientHandlingOfStrings和另一处XYZControllerForEfficientStorageOfStrings,就难以区分。
    • 拼写前后不一致就是误导。
    • 不要使用误导性的名称,比如使用小写字母l和大写字母O。
  3. 做有意义的区分

    光是添加数字序列(a1,a2,……aN)或是废话(比如ProductInfo和ProductData,意思无啥区别,还不如叫Product)远远不够,应该依义命名。

    错误的示例如下:程序员很难确定该调用哪个函数。

  1. getActiveAccount();
  2. getActiveAccounts();
  3. getActiveAccountInfo();
  1. 使用读的出来的名称

    如果名称读不出来,讨论的时候就会像个傻鸟。

  2. 使用可搜索的名称

    名称长短应与其作用域大小相对应。e就是个不便于搜索的名称。

  3. 避免使用编码

    带编码的名称通常也不便发音,容易打错。

    • 匈牙利命名法:在C语言API的时代,编译器不会做类型检查,程序员需要使用这种标记法来帮助自己记住类型。Java和C#都是强类型(静态类型)的语言,在编译开始前就会进行类型检测,已经不需要这种标记法了。
    • 成员前缀:不必使用“m_”来标明成员变量。应当将类和函数做的足够小,消除对成员前缀的需要。而且现在的编辑器可以通过颜色来区分变量类型。
  4. 避免思维映射

    在作用域小时,循环计数器可能被命名为i,然后在多少情况下,单字母名称不是一个好的选择。

  5. 类名

    类名和对象名应该是名词或名词短语。

  6. 方法名

    方法名应当是动词或动词短语。属性访问器(get-)、修改器(set-)和断言(is-)应该根据其值命名。

  7. 别使用俚语
  8. 每个概念对应一个词

    给每个抽象概念选一个词,并且一以贯之。例如:fetch、retrieve和get来给多个类中的同种方法命名。

    函数名称应当独一无二,而且保持一致,这样才能不借助多余的浏览就能找到正确的方法。

  9. 别用双关语

    比如add方法,如果这些add方法的参数列表和返回值在语义上等价,就没有问题。或者需要考虑是否用insert或append之类的词来命名才对。

  10. 使用解决方案领域名称

    尽管用计算机术语、算法名、模式名、数学术语。不该让协作者老是跑去问客户每个名称的含义,他们早该通过另一名称了解这个概念了。

  11. 使用源自所涉及问题领域的名称

    优秀的程序员和设计师,工作之一就是分离解决方案领域和问题领域的概念。与所涉领域更为贴近的代码,应当采用源自领域的名称。

  12. 添加有意义的语境

    很少有名称能够自我说明的——多少都不能。需要使用良好命名的类、函数或命名空间来放在名称,提供语境。如果没这么做,最后一招——添加前缀。

  13. 不要添加没用的语境

    只要短名称足够清楚,就比长名称要好。将项目缩写作为所有方法的前缀是非常糟糕的做法。

来自为知笔记(Wiz)

时间: 2024-08-25 03:15:26

Clean Code的相关文章

Writing Clean Code 读后感

最近花了一些时间看了这本书,书名是 <Writing Clean Code ── Microsoft Techniques for Developing Bug-free C Programs> 这里主要总结了一些里面的编程思想. 为空语句加上NULL 当需要使用空语句的时候,最好写上NULL, 比如: if (music_on()) NULL; else turn_it_on(); 参数类型相同的问题 如果函数中两个参数的类型相同,如果用户调用这个函数时错误替换了参数的顺序,就会出现问题.

说说怎么写clean code

前两天参加了公司组织的一个培训,主题是“如何写出好的代码” ,刚看到这个主题,第一反应是又不知道是哪个培训机构来忽悠钱的!老大安排了,就去听听呗. 说实在的,课程内容没有什么新鲜的东西,就是讲讲如何发现代码的坏味道,如何重构函数,如何修改遗留系统的代码.这些东西从本科到研究生到实习到正式工作,也不知道看过多少听过多少了,话说本科的课程设计也和代码重构相关,私底下重构和设计模式方面的书也没少看,感觉应该没啥好培训的,不过两天的课程听完,打心眼里觉得来对了,意犹未尽! 课程结束了,感觉需要把这两天课

Clean Code 读书笔记三

clean code 之方法(函数) - 短小 ,再短小,更短小 20行最佳 只做一件事 准确说来每个方法应该是只做抽象概念上的的一件事 只做一件事的方法是无法把逻辑分段的 自顶向下的代码 To say this differently, we want to be able to read the program as though it were a set of TO paragraphs, each of which is describing the current level of

Building Maintainable Software-java篇之 Write Clean Code

Building Maintainable Software-java篇之 Write Clean Code Writing clean code is what you must do in order to call yourself a professional. -Robert C. Martin Guideline: ? Write clean code. ? Do this by not leaving code smells behind after development wor

clean code 读书笔记一

什么是 clean code ? 大神对优雅代码的定义: I like my code to be elegant and efficient. The logic should be straightforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy,

《Clean Code》一书回顾

<Clean Code>一书从翻开至今,已经差不多两个月的时间了,尽管刨去其中的假期,算下来实在是读得有点慢.阅读期间,断断续续的做了不少笔记.之前,每每在读完了一本技术书籍之后,其中的诸多细节会很快的淡忘,最终留下的往往是在阅读时候与自己之前的印象产生极大共鸣的部分,或者在之后实践当中碰巧运用到的一些知识点.所以,根据已往的经验来说,对于一本技术书籍的学习,个人更愿意依照如下两个基本原则来学习: 撷取个人当前认同最深的少数几个知识点,反复进行实践,并在理解之后再扩张到其他的知识点 择期再次阅

《Clean Code》读书笔记——第二周

本周我阅读了<Clean Code>. "神在细节中!",建筑家范德罗如是说.他当然专注于基于宏伟构架之上的永恒建筑形式,他也同样为自己设计的建筑挑选门把手.同样软件开发也是这样,小处见大.在宏伟的建筑作品中,我们也要关注细节的回响.重点便是整理,从而达成Clean.一个很好的例子是对于变量命名,认真对待每个变量名.书中作者说,我们就像一群代码猴子,无视混乱无序,失去代码的真谛.整洁的代码正是迈向编程之美的基础,重要性毋庸置疑. 作者断言,我们永远需要代码.我们可以创造各种

[转]Clean Code Principles: Be a Better Programmer

原文:https://www.webcodegeeks.com/web-development/clean-code-principles-better-programmer/ ----------------------------------------------------------------- "My code is working well, the website I built is looking great, and my client is happy. So why

《clean code》讲述代码中的道,而不是术

Clean code 看<clean code>一书,学习高手写出的代码,简单高效的代 1.目标 Bjarne Stroustrup:优雅且高效:直截了当:减少依赖:只做好一件事 Grady booch:简单直接 Dave thomas:可读,可维护,单元测试 Ron Jeffries:不要重复.单一职责,表达力(Expressiveness) 代码的书写,一定程度上体现了编程的思想,编码者的功力,标识出红色的部分我觉得体现了函数式编程,面向对象的思想,需要细细体会 2 命名 2.1 前期统一

-----------------Clean Code《代码整洁之道》--------------------

-----------------------Chapter1:整洁代码---------------------- 1.<C++>程序设计语言作者——C++之父Bjarne Stroustrup 对于整洁代码的定义: 我喜欢优雅和高效的代码.代码逻辑应当直截了当,叫缺陷难以隐藏:经量减少依赖关系,使之便于维护:移居某种分层战略完善错误处理代码:性能调至最优,省的引诱别人做没规矩的优化,搞出一堆混乱来.整洁的代码只做好一件事. 2.Grady Booch,Object Oriented Ana