实验室的项目都是些外包小项目。每隔几个月就搞一些需求,这代码没有好的规范,隔了几个月再看简直就是坨翔了,所以在此记录并不断更新,自己觉得好的项目组织和代码结构。
python项目python项目首先要弄懂三个东西,包,模块,类。弄懂这些之后才不会出现各自花式import错误。
请坚持面向对象的思想进行编程,禁止函数式编程风格。
包包是一个特殊的目录,其下必须含有名为__init__.py的文件,否则Python会将其当作普通目录而不是包。也就是说只有包(包含__init__.py)才可以被import。
__init__.py作用:1.同包的__init__.py文件中引入需要的模块文件,可以多模块共用
2.使用__all__ =[“Python1”],可以限制对外提供可用的模块
请尽量不要设置source root,如果设置了请记得在main模块中增加sys.path.append()
包的取名规范,按照java的分层结构组织开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;网关控制层等。
Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
Service 层:相对具体的业务逻辑服务层,该层下根据业务流程继续进行分包,不是一个功能对应一个包,而是一个业务对应一个包。
Manager 层:通用业务处理层,它有如下特征:1) 对第三方平台封装的层,预处理返回结果及转化异常信息。
2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理。
3) 与 DAO 层交互,对多个 DAO 的组合复用
DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase、OB 等进行数据交互。
POJO层:存放实体类定义
外部接口或第三方平台层:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。
配置层:存放配置文件,和相应的配置类。注意配置文件需要区分生产环境和开发环境
模块在Python中,一个.py文件就是一个module,即“模块”。
使用独立的一行导入一个模块,使用from XXX import XXX。不要使用import,也不要使用任何*的语句。
模块的取名规范,按照java的类名驼峰命名法+名词
如果有一个pojo类A,然后你需要对A进行一系列的操作,就可以把该模块定义为AService。模块名不应该带有任何函数相关的信息,除非你是函数式接口即只有一个函数。
类仍然按照java面向对象的思想,每个模块都作为一个类,且类名与模块名相同。会使结构更容易维护
如果该类只负责提供方法,不持有任何成员变量,将该类定义为静态类,即所有方法都为静态方法
类中的成员依然需要区分公有和私有。
类的命名规范,与模块名一致
函数由于python的动态语言特点,要求必须在函数下方注释每个入参的数据类型和示例。
java项目
基本上跟上面python的一样,而且该方面的项目经验欠缺,先挖坑。ideal装阿里巴巴java规范插件,就能潜移默化中规范自己的代码了
通用要求开发任何功能,都必须有微服务的概念。最后上线不会提供依赖引用,而都是使用docker暴露接口进行rpc的调用
请统一使用远程环境,保证包和依赖的环境版本一致
所有数据库都应该抽象出一个template,业务逻辑和数据库逻辑(比如说缓存,比如说连接数据库这些功能)要分开实现
至于深入到代码编写的规范,可看重构与规范 黄杰
git规范要求
git分支管理
1.签出并创建 dev 分支,使其跟踪远程的 origin/dev 分支。
2.在dev分支基础上创建自己的分支 member* 。
3.在自己的分支上添加文件和修改文件
4.合并到dev分支
5.推送dev分支到origin/dev分支
注意远程仓库不需要存在member*的分支
git提交规范
git的工具是可以设置提交模板的,如果嫌复制麻烦可以谷歌一下
选项 [文件名] by 人名://选项包括 FIX :修复错误 Feature:添加新功能 DELETE:删除文件 ADD:添加文件
问题:
解决方案:
git请不要只提交一次,每完成一个函数或者功能就可以在本地提交一次,最后再提交到远程即可
git命令功能查询 git 知识点整理