一、问题
- 由于单词量的匮乏,发现写代码的时候,似乎只会使用get,set,send,find,start,make等简单单词。这些单词很多时候能表达的意义非常有限。
- 比如,从一个栈的数据结构中,取出一个元素。取出之后,这个元素就不在这个数据结构中了。此时如果使用get_element,能表达这个意思吗?可能使用pop_element更合适。
- 比如,我想获取栈中的第N个元素的值,我要继续使用get吗?写成get_element_value?获取值是可以使用get的。
- 同样都是获取,怎么写能够让代码更可读?我觉得需要积累一些常用的在编程中的单词的用法。
二、整理一些常用的词
- send 表示发送。有些时候使用其它的词会更好。
send 近义词 | 释义和使用场景 |
---|---|
deliver | 递送。交付。从A位置运到B位置。从A手上,交到B手上。有些关注这种所有关系的变化,刚开始是属于A的,现在交给B了。 比如:web上的数据从前端交付到后端。 就是送过去了。 |
dispatch | 派遣任务,当要把某个event交给线程或者进程任务来处理,使用dispatch. 。比如 select_dispatch 函数,将select函数返回的事件派遣给一个任务来处理。 |
announce | 一般是广播通知。也就是,一次性通知很多对象的时候。比如:多个对象都关注target目标对象,目标对象变化的时候,可以通过announce广播通告。 |
distribute | 分发。感觉是将一个大的东西,分成多个小的。比如,要对10的20次方个数据进行排序。使用单线程太慢,就可以分给20个线程来处理。这种情况,使用distribute分发比较合适。 |
route | 按照某个路线发送。在需要指定路径的情况下,使用route。比如:要给某个服务器发送消息,需要先给它的代理发送,则可以使用route来发送。send就不能表达这层意思。 |
- find 表示 发现,找到。find一般是已经找到了,isFound,类似这样的使用。如果要表达过程,可以使用find_out_xxx();
find 近义词 | 释义和使用场景 |
---|---|
search | 搜寻,搜索。表示不知道结果,要找找才能知道。 比如二分查找,binary_search(); |
extract | 取出,提取。比如:接收到一段HTTP报文,你要获取其中cookie。可以使用extract_cookie();别用find_cookie();了。如果你希望返回cookie的指针指向,使用locate更好。 |
locate | 找出xxx的精确位置。比如:定位数组中=2的元素,返回下标 。这个过程中,我关注的是这个元素的下标。使用locate_element(); |
- start 表示开始。但是表达的非常广泛。可以说,启动一个任务,启动一台电脑。
start 近义词 | 释义和使用场景 |
---|---|
launch | 用来表示启动一个流程。比如:发起一个请求。(源自libevent源码)launch_request。 和start不同,start表示开始做什么,比较广泛,比如,start_reading,开始读数据。 |
begin | 开始。一般强调起始位置,或者起始时间点。所以用于获取范围的时候。 |
- make,制造,做,组装。make往往用于组装什么。所以,make函数的参数,一般是一些配件,然后经过xxx工序组装。
make 近义词 | 释义和使用场景 |
---|---|
create | 是创造,让一个不存在的对象存在。比如:创建一个线程。pthread_create. |
build | 一般指的是建造房屋。 |
generate | 产生。生成。比如:生成一个key.生成一个随机数。 感觉不是由谁谁谁创造的什么,而是给一个输入,通过什么工序,自动生成的。比如,发电,发热。不关注主语。 |
compose | 组合,组成。这个表示的就是由一些成员组合起来。和make有不同。 |
new | 也是创造,指的应该是全新的,默认的。和create 相比,new 是一个全新默认的对象。 |
construct | 构造,组建,创建。 可用来构造一个对象。这里的参数和make的参数有区别,make 参数一般是一些配件,比如,通过from/to/via头域组装一个Sip请求。但是construct主要是构造,它的参数不全是配件。 比如:构造一个To对象。SipConstructTo(); 。 |
- end 。结束,终止。
end近义词 | 释义和使用场景 |
---|---|
end | 表示过程结束或者终止。表示破灭,末端,一切都结束了。所以我觉得,end可能包含了stop,并且将用到的资源都回收了。 |
terminate | 合同,协议等终止。感觉是A和B保持着某种联系,现在这种联系被终止了。 比如在网络协议的编程中可以被用到。 |
finish | 普通的完成某事。finish_read();读取结束。 |
complete | 完成,做成某事。一般是被动语态。is_completed();是否已经完成了。 |
stop | 停止,中断。事情停止或者中断。比如:正在读取,因为某种原因停止了读取。stop_reading(); |
- get ,获得。一般表示不费力的获取。也就是,如果get的时候需要经过大量的计算,就不要用get.
get使用时候可能使用这些替换 | 释义和使用场景 |
---|---|
pop | 弹出,就像子弹从弹夹出来一样。一般数据从堆,栈中弹出来一个元素。比如:stack_pop(); |
download | 下载,比如你可能GetPage();获取某个网页。这样就不好,使用DownloadPage可能更能表示。 |
extract | 提取,有时候,需要从某个text body 中获取 某一个关键词,get。可能不如使用extract。有提取的意思。 |
- 一些 bool 判断的函数命名
名字 | 使用 |
---|---|
allow/disallow | 允许/不允许。允许打电话 allow_call(); |
enable/disable | 使能/禁用。is_call_a_enable(); 允许 打电话给A. |
need | 需要。need_call_110();需要拨打110; |
- 一些字符串处理了常用的词。
名字 | 使用 |
---|---|
insert | 插入,指定某个位置插入。 |
replace | 替换某部分 |
add | 添加 |
remove/delete | 删除 |
split | 拆分,使用某个分隔符拆分。 |
join/connect | 连接结合,和split对应。 |
match | 匹配。 |
- 一些反义词
pause,暂停 | resume,继续。 |
---|---|
pop,弹出。 | push,压入,用于堆栈数据结构 |
reserve,保存 | erase,擦除 |
up | down |
get | set |
first | last |
begin | end |
construct/create | destroy |
- 描述数量的词
number | 数字,号码。也有数量的意思。但是number表示的意思比较广泛,如果只是单纯的要表示数量,还是觉得使用quantity会好些。 |
---|---|
count | 计数。感觉使用于计数,数数的时候 。 比如,你要计算一个链表的长度,并且返回。countSize(); 有突出过程。 |
size | 大小。一般表示轻量级的获取一个大小。比如:list_size();获取链表的长度。 但这里一般不会去计算了,一般就是直接return 的。是轻量级的。 |
quantity | 数量。比如一个链表中的元素数量。是名词。可以作为一个结构体成员。 |
三、参考
- 《编写可读性代码的艺术》
- 一些其它的源码。
四、最后
- 要保持更新和扩展
- 需要记录一些实践中使用的场景。