代码艺术

优秀代码标准:

  1. 代码的正确和性能
  2. 代码的可读和可维护性
  3. 代码的可运维和可运营
  4. 代码的可共享和可重用

系统设计要点:

  1. 清楚什么是系统架构
  2. 注意系统设计的约束
  3. 清楚需求是系统设计决策的来源
  4. 系统设计的风格与哲学(每个组件的功能都应该足够的专一和单一)
  5. 清楚接口的重要性

Mini-spider框架

多线程编程

  • 数据互斥访问

添加与判断是否存在不应该分开处理  写入一个函数中

  • 临界区的注意事项

不要把耗费时间的操作放在临界区内执行,否则无法发挥多线程对硬件资源最大化利用的优势

  • I/O操作的处理

文件读取IO操作属于异常操作,文件读取错误会抛异常中断程序继续执行,如果放入临界区会导致异常操作消耗大量资源

代码检查

代码检查的意义:

  1. 提高代码可读性
  2. 发现代码缺陷
  3. 提前发现问题
  4. 规范制定与准入检查
  5. 提升编码规范可运营性

Python编码检查规则与惯例

检查规则:

  • 代码风格规范
  1. 每行字符<=120
  2. 函数长度<=120行
  3. 禁止以“;”结束语句
  4. 一行只能写一条语句
  5. 尽量避免冗余括号
  6. 禁止tab缩进 统一使用四个空格缩进
  7. 单行内容拆成多行,首行留空,从第二行起统一缩进4个空格
  8. 类或全局函数定义相隔3个空行,类方法之间相隔1个空行
  9. 括号内均不添加空格,
  10. 参数列表左边括号前不加空格
  11. ,;:前不加空格  后加1个空格
  12. 二元运算符前后各加一个空格
  13. 关键字参数或参数默认值的等号前后不加空格
  14. 注释:文件声明包括版权声明,功能和用途介绍,修改人及联系方式
  15. 文档字符串docstring注释 三个双引号括起来
  16. 外部接口必须docstring注释 内部视情况而定
  17. 接口dicstring内容:功能简介 参数  返回值 如果存在异常抛出需要特殊注明
  • 引用规范
  1. 禁止使用from... import...句式直接导入类或函数,导入库后再调用
  2. 每行只导入一个库
  3. 按照标准库 第三方库 应用程序自有库依次导入  间隔一行
  • 定义规范
  1. 局部变量小写字母 单词间下划线分割
  2. 全局变量必须写在文件头部
  3. 常量使用全大写字母
  4. 函数返回值必须<=3个  否则具名形式包装
  5. 函数默认参数类型要求:整数 bool 浮点数  字符串  None
  6. 类定义命名采用首字母大写的驼峰式
  7. protect成员命名采用前加单下划线  private成员命名采用前加双下划线前缀
  8. 如果一个类没有基类  必须继承object类
  9. 类构造函数尽量简单 不能包含可能失败或过于复杂的操作
  • 异常处理规范
  1. 禁止使用双参数形式或字符串形式的语法抛出异常
  2. 自定义异常:需定义名为Error异常基类,且继承Exception,其他异常均由该基类派生而来
  3. 禁止使用except:捕获所有异常,一般情况下使用except.....:捕获具体异常
  4. 捕获异常使用as语法 禁止逗号语法

编码惯例

  • 让模块既可以被导入又可被执行

python无入口函数  通过自定义main函数实现: if 内置变量_name_==‘_main_’

  • in运算符的使用

可代替大量重复判断过程 降低时间复杂度 提高代码执行效率

  • 不适应临时变量交换两个值
  • 用序列构建字符串

工程能力(2)代码的艺术编码惯例相关推荐

  1. 代码工程能力比较差,入职后会被同事嫌弃吗?

    1. 烦心事儿 大家好,我是方圆.最近收到一些牛油儿的私信,"哎呀,方圆,我觉得自己代码工程能力比较差,光背八股文了,入职可能写不出像样的代码","方圆,我最近要入职XX ...

  2. 工程能力(4)代码检查code Review

    代码检查规则: 源文件规范 文件名 :java源文件名必须与包含的顶层类名一致 文件编码:utf-8格式 特殊字符:换行 缩进  空格 源文件组织规范 许可证或版权声明: package语句:单独占一 ...

  3. 图像滤镜艺术--编码基础(Photoshop基础变换的代码实现)

    原文:图像滤镜艺术--编码基础(Photoshop基础变换的代码实现) 自从上一篇博客写完之后,到现在已经有段时间了,这段时间不是不想接着写,只是想做的更好了在写出来给大家看呵呵. 今天,我将给大家介 ...

  4. 前端实习记录 — 代码规范 编码惯例 性能优化

    写这篇文章的原因 这篇文章是想记录进入公司接触到项目后,在项目中遇到的一些代码规范问题,leader教我们的规范以及自己私下去学习的一些代码规范,代码规范真的很重要!! 进入公司三天后开始接触项目,该 ...

  5. 金融风控--申请评分卡模型--特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融风

    金融风控-->申请评分卡模型-->特征工程(特征分箱,WOE编码) 标签: 金融特征分箱-WOE编码 2017-07-16 21:26 4086人阅读 评论(2) 收藏 举报 分类: 金融 ...

  6. 百度工程能力提升之道--方法,DevOps工具,人员能力,研发数据

    我是百度工程效能部资深敏捷教练–金锐,也是百度 DevOps 解决方案的运营负责人.从今天开始,我将在 GitChat 通过一系列的文章,为大家分享百度在软件工程领域的思考和实践.今天我先从百度工程效 ...

  7. 工程能力提升管理之道

    在架构设计上不同层次的架构师在架构抽象上总会有不同的见解,和高p架构师讨论架构往往能上升到哲学层次,什么分久必合 合久必分,什么无法 有法,什么道,法,术,器. 在工程能力提升上不同团队也有不同章法, ...

  8. 《修改代码的艺术》迷你书

    2019独角兽企业重金招聘Python工程师标准>>> <修改代码的艺术>迷你书 世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Rober ...

  9. JavaScript基础JavaScript的常用编码惯例(007)

    采用一定的编码惯例,可以使得项目中的代码提到较高的一致性,可读性和可预测性. 1.缩进 缩 进可以提高代码的可读性.不过错误的缩进也可能导致代码的误读.有人认为缩进应该使用tab,另外的一些人主张采用 ...

最新文章

  1. 有了阿里云服务器如何运行Javaweb项目【安转JDK】【安装mysql】【安装Tomcat】【永久运行】
  2. 【深度学习】如何更好的Fit一个深度神经网络框架下的模型
  3. windows10详细配置pcl-1.8.1
  4. 判断一个单链表中是否存在环
  5. Hbase PleaseHoldException错误
  6. mysql status关键字 数据表设计中慎重使用
  7. 计算机操作系统实验指导 (第3版) 第四篇 操作系统学习指导和习题解析 第16章:操作系统概述 习题和答案
  8. 通往诺贝尔奖之路:盘点10个著名的科学家族
  9. 在Composure去除掉对体积云和雾的捕获
  10. 快速提取PDF文件中的表格
  11. win7台式计算机型号怎么查,win7怎么看电脑型号 win7电脑型号怎么查
  12. 微信小程序开发(三)注册小程序app.js
  13. SpringBoot POI Word合并
  14. matlab 三维y轴平面图,#如何在excel中绘制三维坐标系?#excel怎么画图平面坐标图...
  15. 计算机二级乙等题目,2015年全国计算机等级考试一级WPS练习题及答案
  16. 为什么在抖音直播间打字别人看不见,所有抖音直播间看不见我说话
  17. jquery遍历json数组
  18. 我有八千元,买苹果手机还是安卓呢?
  19. 安卓手机测评_安卓优化大师破解版2020-安卓优化大师去广告版下载v4.1.5
  20. IDEA离线安装使用JFormDesigner(非商业用途)

热门文章

  1. excel自动排班有假期_Excel卓越成就的假期准备
  2. Python数据可视化的例子——直方图(hist)和核密度曲线(kde)
  3. 【已解决】Could not find a declaration file for module ‘xxx‘. vue + ts
  4. Revit建模中MEP吸顶构件如何统一控制标高
  5. Python的selenium自动化项目实例
  6. vue:extend和mixin的区别
  7. 区块链100讲:从宠物商店案例看DAPP架构和WEB3.JS交互接口
  8. 316页11万字AI赋能智慧水利大数据信息化平台建设和运营解决方案
  9. python猪脸识别_JD竞赛,猪脸识别
  10. 防火墙策略规则 查看防火墙开通端口以及操作命令