Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图

名作家

周梦康(楚松)点选高度关注研究者

https://yq.aliyun.com/users/dy6hwsruw6kbe

阿里云现职研制技师,《深入细致 PHP Mach》译者众所周知

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图1

内容提要

从标识符技术细节聊一聊怎样正式成为一位杰出的技师

你的标识符语意清晰吗?

你的标识符足够健壮吗?

你的标识符运行安全吗?

你的标识符考虑性能吗?

现场直播时间

2019年3月12日  19:30

现场直播地址

PHP技术进阶钉群:http://uee.me/aMsFp

详情如下:

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图2

更多内容

更多内容可高度关注PHP技术进阶云栖号(https://yq.aliyun.com/teams/405), 获取手技术资料

阿里开发者技术交流钉钉群的全向图【2019年】

https://yq.aliyun.com/articles/690084

好的语义表达是团队协作中高效迭代的润滑剂,好的语义表达是线上未知标识符问题排查的指南针。

不要让其他人读不懂你的标识符,其他人可能是一周后的你。时刻以如果你写的这段标识符出现故障,一个陌生人接手你的标识符需要多久能处理完这个bug来监督自己。

日常中应该多多刻意提升自己语义表达,百利而无一害。那么我们应该从哪些技术细节去做好语义表达呢?

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图3

以下标识符全为我的艺术创作,不属于任何实际项目

命名

案例1

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图4

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图5

案例2

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图6

如果仅仅有这个函数名和参数名,谁能猜到参数的意义呢?

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图7

案例3

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图8

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图9

案例4

假如业务标识符里有这些类

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图10

而我们查询数据库发现

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图11

这样我们根据业务标识符非常不方便找到对应的表,而且其他人接手我们项目的时候,也会摸不着头脑。或者说这可能是三个人三次迭代开发造成的,那么他们彼此都没有去参考前面人的命名规则。

来自灵魂的拷问

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图12

注释

说完命名,下面说下注释。注释里还有什么学问?Are you kidding me?一个数组对象成员,你知道怎么写吗?类的魔术方法调用的注释,你知道怎么写吗?

对象数组

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图13

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图14

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图15

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图16

@method 的使用

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图17

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图18

@deprecated 使用

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图19

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图20

注释其他注意事项

注释解释张冠李戴,方法名更新,方法的功能业务注释没更新;复制别人的标识符把 @author 信息也复制过来了,错误了还要把锅甩给别人。

注释更多参考

http://manual.phpdoc.org/HTMLframesConverter/default/

函数、方法

案例1

先说明一句,不好的标识符不妨碍它正式成为一个杰出的软件。PHP MySQL 烂标识符多的去了。找到一个开源软件里面的标识符,功能非常抢到,但是这个方法内容太多,一些不足点我标注出来了。

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图21

案例2

拿上面我举例子,还记得下面这种图吗?

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图9

优化方案1

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图22

优化方案2

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图23

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图24

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图25

案例3

这还是函数吗?(不仅仅是语义,属于错误)

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图26

$startId和$lastId两个参数重复

案例4

尽量减少参数引用

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图27

案例5

参数类型明确,返回值类型明确,不要出现 mixed。这个我直接拿官方的函数来举例,对权威也要有怀疑的眼光。纯属个人看法。

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图28

案例6

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图29

上面例子中你会发现这个addUser写得不想一个函数(方法)而像一个远程api接口。而且在右边的标识符中需要每次使用的时候都要用is_array来判断。这是非常不友好的语义表达。PHP Java 这样的高级语言有异常,我们要善用异常。

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图30

好的语义表达是团队协作中高效迭代的润滑剂,好的语义表达是线上未知标识符问题排查的指南针。这篇博客到这里结束了,不知道你是否有一些收获呢?

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图3

更多精彩

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图31

阿里云开年Hi购季满返活动火热进行中

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图32

三七女生节,解密阿里女程序员们的标识符诗!

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图33

实时计算佳实践:基于表格存储和Blink的大数据实时计算

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图34

Dubbo Mesh 在闲鱼生产环境中的落地实践

Perl系列产品现场直播:从标识符技术细节聊一聊怎样成为一位杰出的技师插图35

如果觉得本文还不错,点选好看一下!

作者 nasiapp

在线客服
官方客服
我们将24小时内回复。
12:01
您好,有任何疑问请与我们联系!

选择聊天工具: