读《代码整洁之道》-函数名称应该表达其行为(代码片段)

明明如月学长 明明如月学长     2023-03-01     158

关键词:

一、背景

前一段时间听到周围有人认为:“函数名起的困惑无所谓,反正别人使用接口的时候也会看下源码的”,让我非常吃惊。

我一直也是认为,好的代码应该是看到函数名就应该知道含义,看到参数和返回值就应该可以放心使用,而不是非要去读源码才不会误用。

今天重读《代码整洁之道》,看到书中提到:函数名称应该表达其行为。

如果你必须查看函数的实现(或文档)才知道它是做什么的,就应该换个更好的函数名或者重新设计功能代码或者起个更贴切的名称。(原文翻译有些生硬,这里自己改了一下)

二、示例

比如只想查询用户的姓名、年龄、手机号,但是函数定义如下:

UserDO getUserSimpleById(Long id)

对应的SQL 语句如下:

<select id="getUserSimpleById" parameterType="java.lang.Long" resultMapping="baseResultMapping">
  SELECT name,age,phone FROM user WHERE id = #id
</select>

由于返回值 UserDO 包含很多字段,调用该函数拿到 UserDO 之后不看对应的 SQL 语句很难确定哪些属性被赋值。

但是将函数名改为 getUserNameAgePhoneById 又显得很啰嗦,如果再查几个属性怎么办?

UserDO getUserNameAgePhoneById(Long id)

可以定义返回值只包含查询的字段,这样不容易用错:

UserSimpleDO getSimpleById(Long id)

三、总结

函数名和做的事情不一致,很容易对使用者造成误解。
我们定义函数签名时,包括函数名,参数以及返回值都要仔细斟酌,不可马虎大意。


创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。

代码整洁之道-函数

函数参考书籍:《代码整洁之道》,语言:Python1.函数要短小1)每个函数只做一件事,并且每个函数都依次把你带到下一个函数,这就是函数应该达到的短小程度。2)if,else,while等语句的代码块应该只有一行,该行大概是一个函... 查看详情

php开发-代码整洁之道(代码片段)

CleanCodePHP目录介绍变量使用见字知意的变量名同一个实体要用相同的变量名使用便于搜索的名称(part1)使用便于搜索的名称(part2)使用自解释型变量避免深层嵌套,尽早返回(part1)避免深层嵌套,尽早返回(part2)少用无意义的变量名... 查看详情

php开发-代码整洁之道(代码片段)

CleanCodePHP目录介绍变量使用见字知意的变量名同一个实体要用相同的变量名使用便于搜索的名称(part1)使用便于搜索的名称(part2)使用自解释型变量避免深层嵌套,尽早返回(part1)避免深层嵌套,尽早返回(part2)少用无意义的变量名... 查看详情

读c#代码整洁之道笔记02_类对象和数据结构及编写整洁函数

...职责就是类所具备的功能3. 从注释生成文档3.1. 源代码文件的顶部都应当包含版权声明3.2. 命名空间、接口、类、枚举、结构体、方法和属性都应当包含注释4. 内聚4.1. 高内聚4.1.1. 代码应恰当分组4.2. 低... 查看详情

代码整洁之道(代码片段)

...可见命名。我们给变量、函数、参数、类和封包命名、源代码文件命名、目录命名,良好的命名规范使得代码以及工程的维护难度大大降低,下面列出良好命名的几条简单规则。1.名副其实变量、函数或类的名称应该已经... 查看详情

代码整洁

整洁的代码能够提高项目的可读性、可维护性、可扩展性,这二天大致看了一本书代码整洁之道,粗略的看了一遍,总结了一下,写下来作为以后做项目的时候的参考。代码的整洁简单的总结二种分类:1.命名?有意义命名说明:... 查看详情

代码整洁之道(代码片段)

有意义的命名1名副其实2避免误导3做有意义的分区废话都是冗余。Variable永远不应出现在变量名中,Table一词永远不应出现在表名中。当缺少明确约定:变量moneyAmout与money没区别,customerInfo与customer没区别,accountData与account没区别... 查看详情

代码整洁之道(代码片段)

有意义的命名1名副其实2避免误导3做有意义的分区废话都是冗余。Variable永远不应出现在变量名中,Table一词永远不应出现在表名中。当缺少明确约定:变量moneyAmout与money没区别,customerInfo与customer没区别,accountData与account没区别... 查看详情

前端阅读——《代码整洁之道》摘记之整洁代码命名函数注释

 这本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。(作者认为书可以有另一个名字:《如何在意代码》)读这本书,促使我思考代码中何谓正确,... 查看详情

代码整洁之道(代码片段)

...可见命名。我们给变量、函数、参数、类和封包命名、源代码文件命名、目录命名,良好的命名规范使得代码以及工程的维护难度大大降低,下面列出良好命名的几条简单规则。1.名副其实变量、函数或类的名称应该已经... 查看详情

读《代码整洁之道》有感

本周我开始阅读RobertC.Martin所著的《代码整洁之道》一书,希望能从中收获高效编写代码的诀窍,因为我自认为我的代码有时候比较糟糕,不太容易维护。一方面,是我没有养成良好的编程习惯;另一方面,我不太清楚什么才是... 查看详情

代码整洁之道

...释不如无注释,不能保证注释新鲜,删除注释。四、格式代码排版上下有间隙代码 查看详情

[阅读笔记]代码整洁之道

第一章: 1.混乱的代码难以维护,导致生产力越来越低。糟糕的代码引发混乱,越改越烂。2.整洁的代码:优雅,高效,少依赖,性能优,命名规范,清晰尽量少的api3.破窗理论:窗户破损的建筑让人觉得无人照管,于是别人... 查看详情

代码整洁之道读书笔记

代码整洁之道TableofContents1.原则1.1.单一权责1.1.1.一个类应该完成一个类型的任务1.1.2.內聚性要高,即每个函数使用类变量的多少1.2.开放封闭原则1.2.1.对内封闭对外开放2.军规2.1.只做好一件事2.2.短小精悍2.3.代码不要重复2.4.开... 查看详情

代码整洁之道读书笔记

代码整洁之道TableofContents1.原则1.1.单一权责1.1.1.一个类应该完成一个类型的任务1.1.2.內聚性要高,即每个函数使用类变量的多少1.2.开放封闭原则1.2.1.对内封闭对外开放2.军规2.1.只做好一件事2.2.短小精悍2.3.代码不要重复2.4.开... 查看详情

代码整洁之道——2函数

一、函数参数(两个或者更少)限制函数的参数至关重要,因为这样测试函数会更简单。有超过三个以上的参数,测试的时候就要使用不同参数测无数的场景。一个或者两个参数是理想情况。如果可能的话避免三个参数。三个以... 查看详情

cleancode

代码整洁之道代码整洁之道1.有意义的命名1.有意义的命名名副其实变量、函数或类的名称应该告诉你,它为什么会存在,它做什么事,应该怎么用,如果需要注释来补充,那就不算是名副其实。避免误导某些系统的专有名词不... 查看详情

读《cleancode代码整洁之道》之感悟(代码片段)

盲目自信,自认为已经敲了几年代码,还看什么整洁之道啊。我那可爱的书架读懂了我的心思,很明事理的保护起来这本小可爱,未曾让它与我牵手最近项目中的bug有点多,改动代码十分吃力,每看一行代码都带一句“这是什么... 查看详情