工程能力(2)代码的艺术编码惯例
代码艺术
优秀代码标准:
- 代码的正确和性能
- 代码的可读和可维护性
- 代码的可运维和可运营
- 代码的可共享和可重用
系统设计要点:
- 清楚什么是系统架构
- 注意系统设计的约束
- 清楚需求是系统设计决策的来源
- 系统设计的风格与哲学(每个组件的功能都应该足够的专一和单一)
- 清楚接口的重要性
Mini-spider框架
多线程编程
- 数据互斥访问
添加与判断是否存在不应该分开处理 写入一个函数中
- 临界区的注意事项
不要把耗费时间的操作放在临界区内执行,否则无法发挥多线程对硬件资源最大化利用的优势
- I/O操作的处理
文件读取IO操作属于异常操作,文件读取错误会抛异常中断程序继续执行,如果放入临界区会导致异常操作消耗大量资源
代码检查
代码检查的意义:
- 提高代码可读性
- 发现代码缺陷
- 提前发现问题
- 规范制定与准入检查
- 提升编码规范可运营性
Python编码检查规则与惯例
检查规则:
- 代码风格规范
- 每行字符<=120
- 函数长度<=120行
- 禁止以“;”结束语句
- 一行只能写一条语句
- 尽量避免冗余括号
- 禁止tab缩进 统一使用四个空格缩进
- 单行内容拆成多行,首行留空,从第二行起统一缩进4个空格
- 类或全局函数定义相隔3个空行,类方法之间相隔1个空行
- 括号内均不添加空格,
- 参数列表左边括号前不加空格
- ,;:前不加空格 后加1个空格
- 二元运算符前后各加一个空格
- 关键字参数或参数默认值的等号前后不加空格
- 注释:文件声明包括版权声明,功能和用途介绍,修改人及联系方式
- 文档字符串docstring注释 三个双引号括起来
- 外部接口必须docstring注释 内部视情况而定
- 接口dicstring内容:功能简介 参数 返回值 如果存在异常抛出需要特殊注明
- 引用规范
- 禁止使用from... import...句式直接导入类或函数,导入库后再调用
- 每行只导入一个库
- 按照标准库 第三方库 应用程序自有库依次导入 间隔一行
- 定义规范
- 局部变量小写字母 单词间下划线分割
- 全局变量必须写在文件头部
- 常量使用全大写字母
- 函数返回值必须<=3个 否则具名形式包装
- 函数默认参数类型要求:整数 bool 浮点数 字符串 None
- 类定义命名采用首字母大写的驼峰式
- protect成员命名采用前加单下划线 private成员命名采用前加双下划线前缀
- 如果一个类没有基类 必须继承object类
- 类构造函数尽量简单 不能包含可能失败或过于复杂的操作
- 异常处理规范
- 禁止使用双参数形式或字符串形式的语法抛出异常
- 自定义异常:需定义名为Error异常基类,且继承Exception,其他异常均由该基类派生而来
- 禁止使用except:捕获所有异常,一般情况下使用except.....:捕获具体异常
- 捕获异常使用as语法 禁止逗号语法
编码惯例
- 让模块既可以被导入又可被执行
python无入口函数 通过自定义main函数实现: if 内置变量_name_==‘_main_’
- in运算符的使用
可代替大量重复判断过程 降低时间复杂度 提高代码执行效率
- 不适应临时变量交换两个值
- 用序列构建字符串
工程能力(2)代码的艺术编码惯例相关推荐
- 代码工程能力比较差,入职后会被同事嫌弃吗?
1. 烦心事儿 大家好,我是方圆.最近收到一些牛油儿的私信,"哎呀,方圆,我觉得自己代码工程能力比较差,光背八股文了,入职可能写不出像样的代码","方圆,我最近要入职XX ...
- 工程能力(4)代码检查code Review
代码检查规则: 源文件规范 文件名 :java源文件名必须与包含的顶层类名一致 文件编码:utf-8格式 特殊字符:换行 缩进 空格 源文件组织规范 许可证或版权声明: package语句:单独占一 ...
- 图像滤镜艺术--编码基础(Photoshop基础变换的代码实现)
原文:图像滤镜艺术--编码基础(Photoshop基础变换的代码实现) 自从上一篇博客写完之后,到现在已经有段时间了,这段时间不是不想接着写,只是想做的更好了在写出来给大家看呵呵. 今天,我将给大家介 ...
- 前端实习记录 — 代码规范 编码惯例 性能优化
写这篇文章的原因 这篇文章是想记录进入公司接触到项目后,在项目中遇到的一些代码规范问题,leader教我们的规范以及自己私下去学习的一些代码规范,代码规范真的很重要!! 进入公司三天后开始接触项目,该 ...
- 金融风控--申请评分卡模型--特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融风
金融风控-->申请评分卡模型-->特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融 ...
- 百度工程能力提升之道--方法,DevOps工具,人员能力,研发数据
我是百度工程效能部资深敏捷教练–金锐,也是百度 DevOps 解决方案的运营负责人.从今天开始,我将在 GitChat 通过一系列的文章,为大家分享百度在软件工程领域的思考和实践.今天我先从百度工程效 ...
- 工程能力提升管理之道
在架构设计上不同层次的架构师在架构抽象上总会有不同的见解,和高p架构师讨论架构往往能上升到哲学层次,什么分久必合 合久必分,什么无法 有法,什么道,法,术,器. 在工程能力提升上不同团队也有不同章法, ...
- 《修改代码的艺术》迷你书
2019独角兽企业重金招聘Python工程师标准>>> <修改代码的艺术>迷你书 世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Rober ...
- JavaScript基础JavaScript的常用编码惯例(007)
采用一定的编码惯例,可以使得项目中的代码提到较高的一致性,可读性和可预测性. 1.缩进 缩 进可以提高代码的可读性.不过错误的缩进也可能导致代码的误读.有人认为缩进应该使用tab,另外的一些人主张采用 ...
最新文章
- 有了阿里云服务器如何运行Javaweb项目【安转JDK】【安装mysql】【安装Tomcat】【永久运行】
- 【深度学习】如何更好的Fit一个深度神经网络框架下的模型
- windows10详细配置pcl-1.8.1
- 判断一个单链表中是否存在环
- Hbase PleaseHoldException错误
- mysql status关键字 数据表设计中慎重使用
- 计算机操作系统实验指导 (第3版) 第四篇 操作系统学习指导和习题解析 第16章:操作系统概述 习题和答案
- 通往诺贝尔奖之路:盘点10个著名的科学家族
- 在Composure去除掉对体积云和雾的捕获
- 快速提取PDF文件中的表格
- win7台式计算机型号怎么查,win7怎么看电脑型号 win7电脑型号怎么查
- 微信小程序开发(三)注册小程序app.js
- SpringBoot POI Word合并
- matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...
- 计算机二级乙等题目,2015年全国计算机等级考试一级WPS练习题及答案
- 为什么在抖音直播间打字别人看不见,所有抖音直播间看不见我说话
- jquery遍历json数组
- 我有八千元,买苹果手机还是安卓呢?
- 安卓手机测评_安卓优化大师破解版2020-安卓优化大师去广告版下载v4.1.5
- IDEA离线安装使用JFormDesigner(非商业用途)
热门文章
- excel自动排班有假期_Excel卓越成就的假期准备
- Python数据可视化的例子——直方图(hist)和核密度曲线(kde)
- 【已解决】Could not find a declaration file for module ‘xxx‘. vue + ts
- Revit建模中MEP吸顶构件如何统一控制标高
- Python的selenium自动化项目实例
- vue:extend和mixin的区别
- 区块链100讲:从宠物商店案例看DAPP架构和WEB3.JS交互接口
- 316页11万字AI赋能智慧水利大数据信息化平台建设和运营解决方案
- python猪脸识别_JD竞赛,猪脸识别
- 防火墙策略规则 查看防火墙开通端口以及操作命令