• 我的编码规范


    title: 我的编码规范
    date: 2015-07-19 16:31:54
    categories: [Python]
    tags: [Python, CodeStyle]

    开篇闲扯

    距离上一次更新已经有快三个月了,这三个月我都在干什么呢?首先是继续实习,因为一些原因,本来计划的三个月实习变成了四个月。在实习的过程中逐步接手了一些维护的工作,并提交了不少代码。7月6号正式入职以后,我加入了一个Amazing的新项目的创建,目前我们做出来的Demo真是非常的Amazing。不过可惜的是,这样一个项目在最近几年是不会对外公布的。

    在6月之前,每晚回家就是做毕设了,这段时间休息的都比较晚,头发都白了很多。

    还有就是给极客学院录课,第一个系列课程《定向爬虫入门》已经全部录制完毕了,一共8课,大家可以在about me 里面找到前7课的链接,最后一课目前正在后期制作当中,上线以后会更新链接。接下来我会讲解远程控制软件的编写,欢迎大家在极客学院关注我,我的名字叫kingname~

    闲话完毕,那我们开始正题。

    本题由来

    其实以前我是不太注意编码风格的,觉得程序可以运行了就行。甚至网上还有一种说法:

    如果你急急忙忙写一个程序,都没有注重编码规范,程序可能一次就跑通了;但是如果你仔细编码,而且还把单元测试做的非常完善,很有可能程序会出现大bug,而且还难以找到原因。

    然而在我实习的过程中,读了公司的很多代码,才发现编码规范是如此的重要,以至于可以显著影响对代码的理解。而且由于在部门里面code review做的比较严格,因此代码的风格不统一的话,是不能merge的,于是在多次提交代码以后渐渐的总结出了一些规律。

    变量命名

    在我大一学编程的时候,老师告诉我们变量命名最后使用匈牙利命名法,例如,经常出现hszStr、istuNum之类的变量名,如果对代码不熟悉的话,都不知道是什么意思。

    现在我们并不使用匈牙利命名法,而是直接将变量的含义通过单纯完整拼写处理。例如:

    deviceSerialDict: 用于保存设备串号的字典
    deviceSerialDictList: 用于保存设备串号字典的列表
    unusedSerialNumList: 未使用的序列号列表

    我们约定:

    • 变量名首字母小写
    • 多个单词的构成的变量,从第二个开始首字母大写
    • 缩写词做单词处理,例如ACM在变量名中应该写为Acm而不是ACM
    • 常量大写,每个单词使用_下划线分割
    • 不允许出现Magic Number
    • 使用名词或者动宾结构

    类与方法

    使用面向对象编程,这一点在我做毕业设计的程序时,帮了我大忙,大大减轻了我的工作压力。

    我们的风格其实有点像Java了,文件名和类名相同,如果一个文件里面有多个类,那文件名与主要的类名相同。

    我们约定:

    • 非私有的方法,首字母小写,动宾结构,例如getSerialNum
    • 对于和类本身没有什么大关系的方法,要使用@staticmethod
    • 只有类自己使用的方法需要设为私有,也就是名称前加两个下划线

    代码细节

    • 逗号后面要有一个空格
    • 每一行代码后面不能有空格
    • 文件的最后要有一个空行
    • 等号左右都需要有空格,但是作为参数的时候不需要空格
    • 方法的参数大于6个,则使用列表或者字典来传递

    总结

    挂一漏万,以上的规范使用Pylint都可以帮忙检查出来。没有说到的地方请大家补充,除了以上的规范以外,还有Python自己本身的编码规范,请戳->https://www.python.org/dev/peps/pep-0008/

    最近重构了MCC,请大家对比

    https://github.com/kingname/MCC

    与 重构之前

    https://github.com/kingname/MCC/tree/c806c3ccfd0c0585d51caa9f85e6867e0f3ee8cb

    的区别。

  • 相关阅读:
    Socket.IO API Server
    Socket.IO 中文笔记
    Express 中文API 笔记
    JWT
    Sass 记录
    CSS高级技巧(二)背景和边框
    CSS高级技巧(一)常见的注意事项
    CSS进阶(二十四)流向的改变
    linux应用之test命令详细解析
    数字证书原理(ssl,https)
  • 原文地址:https://www.cnblogs.com/xieqiankun/p/mycodestyle.html
Copyright © 2020-2023  润新知