大家好~我是
米洛
!
我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的教程
,希望大家多多支持。
欢迎关注我的公众号米洛的测开日记
,一起交流学习!
# 回顾
好久不见,上一节我们完成了前端
添加用例相关功能的改造,虽然还是不太满意,但也还过得去了,起码稍微顺手了一点点
。
有时候我常常感叹时间
是如此不够用。自己的教程虽然坚持了很久,但仿佛有点更不下去的迹象。
想法特别多,想做mock平台,数据工厂,又觉得做了需要补个教程。想做一个类testerhome的网站,又觉得光做不讲没意思。但对我来说,内容这么多,确实有点分身乏术。
有时候想着,干脆自己悄咪咪做吧,也不做啥分享,不做啥视频了。但一想到写文章/做视频,帮助他人,我还是挺开心的
。其实这条路还真的是挺难坚持的,如果能一下子有3个我就好了=。=
# 进入正题
随着pity的基础功能越来越完善
,我也渐渐打起了优化的主意。有时候自己为了应付一个功能,会很随意写一些代码,有点堆屎山
的意思。
所以今天我花了一点时间,给自己review了一下代码,也可以给大家一点参考。我们只有阅读过更多的代码,才能写出更好的代码。也许写的时候是随意的,但事后肯定是能找出问题
的。
# 优化/建议
以下内容大多是自己的经验,也可能有不对的地方,仅供参考,不喜轻喷
。
magic number太多
这里指的是,我们
随手添加
的可重复使用的一些数字,往好了说应该是需要抽出来作为一个常量
或变量
的。来看点例子:
随便一搜索,就能看到很多这种1,2这样的数,语义不明确,完全可以定义一个枚举类
使得代码更有可读性
。
可怕的是,搜索相关例子,还能出来好几个这样的例子,说明之前真的就是随心所欲
地写。
- 未指定返回值,参数未添加类型,部分方法没有文档
看看我截图的2个方法,下面那个方法就没有相关注释(方法描述),在方法参数也没有指定类型
,也没有指定返回值。
先来说说指定类型的好处:
编译器智能提示,当类型不匹配(比如你换了参数顺序,但调用的时候没换顺序,这时候编辑器会给出提示)
指定返回值,道理同上,更好的一点是可以智能补全
注释的意义就不用我多说了吧,建议每个方法都或多或少加点注释,作为一个开源的项目,这点说明还是要有的,不然到时候可能自己都
读不懂
了。改掉go的if err != nil的写法
由于项目初期的我,写go比较多,导致我习惯性定义方法的返回值为具体的返回+err
,这样的习惯很不好,写到Python里面就是四不像
。
多封装自定义Exception
异常不能统一都用Exception,虽然用起来没啥毛病,但如果能准确定义某一种异常,比如
认证异常
,数据找不到异常
,权限不够异常
等等,这样遇到异常就知道是啥错,多学学别人封装的异常类
。
这里建议raise DbConnectionException("xxx")
不用的变量建议用下划线代替
不同于go语言的强制使用定义的变量,Python可以只定义但不使用
变量
。还是上面那个方法,看到user_info了吗?这个方法是个鉴权的方法,虽然我们不获取
用户信息
,但是我们还是需要用户登录后才能完成此操作,所以我们可以把变量user_info改为_
这样pycharm也不再报未使用
的提示了。
多用格式化/引用优化
由于我自己写代码比较注意这一块,所以我会习惯性做这2件事,也就是CTRL+ALT+L和CTRL+ALT+O(字母o)
多熟悉pydantic
对于我而言,pydantic仅仅用来当做
参数校验工具
,但其实并不是这样,pydantic其实也可以指定具体要返回的字段,通过response_model形成闭环
,完成整个request的生命周期
。以上,就是我今天阅读自己代码找出的
一些
优化点,希望能对大家有所帮助。经常康康
自己的代码,也是有好处的~
我是米洛,一直陪伴各位学习!免费的
小黄心
,帮我点一个吧!