基础能力架构 | 规范能力 | 函数注释 | 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的开销相对很高,因此,我们在编码时,需要时刻考虑内存消耗,查询性能优化,数据选型是否合理,内存是否回收,已提升我们的提高我们的性能。 |
checklist
最新推荐文章于 2024-03-23 09:34:15 发布