今天给同事封装了一个接口,说起接口封装的事情,其实其实很有的聊。很多时候,说一个服务好,一个服务烂,实际上都是在吐槽服务队外暴露的接口好坏。不管什么语言,封装接口,抽象起来,就是由一个函数名,若干个参数,若干个返回值组成的。封装的好坏,就在这几个上面。

函数名

首先是函数名。函数名的好坏很明显,我的观点,是否简单,不重复。比如在一个User类中你封装一个方法,叫做findUser。我就觉得很啰嗦了。你使用的时候会这样使用

User::findUser($id);

那又是何必呢?为什不直接叫做find呢?

User::find($id);

我记得前段时间在网上还看到一篇文章,你见过哪些奇葩的代码。其中就有一些有趣的函数名。在我的视角看来,下面的函数名都很奇葩:

function weizhi() // 中文拼音function getuserinfo() // 单词和单词没用大小写分割function getUserIsEnable() // 明明是bool判断却用get开头

基本上,我们选择使用 动词 或者 动词+名词 或者 动词+名词 + 副词

比如

function find()function getUser()function getUserByName()

我觉得这些都是很符合人性的函数名。

参数

一句话, 参数尽量不要封装。。。尽量不要太多。。。

尽量不要封装就是,能队外暴露的细节越多,用户使用成本越低,比如,根据地理位置获取地址的函数

// 里面的$coord是一个数组['lat','lng']function getCityByCoord($coord)

就不如

function getCityByCoord($lat, $lng)

还有不要太多就是如果你参数个数超过5个,就该考虑封装了。封装的时候,我习惯会把一些“不重要的”,“不常用的”封装成一个参数,并且设置这个参数默认值。

// 这里的conditions 可以设置表列名,只能用等号 ['class' => 1]function getUsers($offset, $limit, $sort, $conditions = [])

返回值

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式