checklist

基础能力架构规范能力函数注释

1.注释有效性:应该说明函数的用途和使用场景,函数内部的注释应该强调业务逻辑和设计思路,让后期的维护人员可以快速的明白

功能注释规范
日志规范性

1.日志要考虑运维人员和技术支持能不能看懂

2.日志的有效性,比如先说明哪个action失败,失败的原因是什么,让别人可以快速定位问题是什么,日志要尽可能详细,严禁交代问题不清楚

3.日志中使用中文,需要考虑下会不会有编码错误

REST API 规范

1.路径(url)即资源,让人一看就知道请求什么资源的

2.url中不能有动词。在Restful架构中,每个网址代表的是一种资源,所以网址中不能有动词,只能有名词,动词由HTTP的 get、post、put、delete 四种方法来表示

3.url结尾不应该有斜杆"/"

4.url应该使用连字符"-"来提高url的可读性,而不是使用下划线"_"

5.url路径中资源名词均为复数

错误规范

1.通常一个错误会在很多地方出现,这样排查问题时只能看堆栈,才能确认问题在哪 ,所以我们在抛异常的时候应该考虑操作资源对象,动作,这样可以方便定位

数据库规范

1.编写语句时,需要考虑数据库的性能,转换成sql语句后是什么样的,会不会导致数据库消耗明显增加,会不会导致内存性能明显增加。当数据指数级增长时,会对数据库,cpu,内存产生什么影响,有没有考虑相应的优化方式

周期任务

1.使用周期任务前,考虑下是否一定需要周期性任务,有时一个状态锁就能解决的,没有必要上周期任务

2.编写周期性任务时,考虑周期任务的横向扩展。例如acmp现在单节点部署,那么如果多节点部署,会不会有数据库操作冲突,会不会有横向扩展问题

命名规范

1.函数名:动作+资源

2.变量:下划线 + 小写字母

3.常量:全部大写

易用性用户易用

1.因为返回值、状态码、日志、异常不合理,导致易用性问题大量产生,解决bug消耗大量时间,故写代码时,建议做到一步三回头,站在客户与运维的角度考虑提示是否合理,能否理解,能否理解提示中的专业术语。

运维易用
基础设计能力数据模型设计

1.设计数据库时,需要考虑业务模型,尽量遵循数据库设计三范式

2.设计大表时,考虑业务是否需要,是否可以拆分成几张小表。

3.考虑如何加快数据sql执行效率

REST API 设计
rest API 设计指导:

1.http://www.ruanyifeng.com/blog/2011/09/restful.html

2.http://www.ruanyifeng.com/blog/2014/05/restful_api.html

架构约束架构层次

1.编写代码是,考虑架构约束,从数据接入层,数据处理层,到数据执行层,考虑清楚每层的边界划分

模块层次

1.模块层次要清晰,模块间的关系要清楚

函数层次

1.对于函数,每个函数的注释区,变量的初始化区,变量的赋值区,逻辑处理区,分支处理区,异常处理区,结果处理区。编码时,适当语句放入相应区域,对于各个区域,适当间隔,代码层次清晰明了,方便别人阅读其代码。

高低层次

1.模块间是有优先级的(比如keystone),对于高优先级的模块,需要考虑调用关系,可靠性,性能等问题

调用层次

1.调用不同模块时,需要清晰模块间的关系,编码时不能随意越界

进阶能力基础设计能力模块 类 函数 公共库设计

1.对于这些设计,我们编码时需要考虑,能不能把它进行抽象化,提炼出来。减少代码冗余。

性能优化设计循环 执行效率

1.对于Python的不同数据类型,在不同场合下,可能选择不同的数据类型会带来更高的性能体验,减少内存占用,提高执行效率。

2.对于for循环设计,层次一定要考虑清晰,不要一味的n层for循环来处理问题。是否有for循环之外更好的方法。

模式设计模式设计

1.对于函数 基类 设计时,时刻考虑适合把相应设计模式引入代码中,通过设计模式解决代码/结构冗余问题

CPU内存消耗CPU内存消耗

1.Python的语言精简,代码灵活。但Python语言内存,CPU的开销相对很高,因此,我们在编码时,需要时刻考虑内存消耗,查询性能优化,数据选型是否合理,内存是否回收,已提升我们的提高我们的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值