【项目代码规范】——项目开发过程中的书写规范(个人笔记)

ops/2024/9/23 13:16:00/

前言

编写高质量的 Python 代码不仅有助于提高代码的可读性和可维护性,还能增强团队合作效率。下面是一套适用于高级算法程序员的 Python 项目代码书写规范。这套规范涵盖了代码结构、命名约定、注释、文档、测试等方面。

1. 项目结构

	项目根目录:src: 源代码目录,核心算法tests: 测试代码目录,测试脚本文件docs: 文档目录,说明文档data: 数据目录scripts: 脚本目录requirements.txt: 依赖管理文件setup.py: 项目打包配置文件README.md: 项目说明文件LICENSE: 许可证文件Makefile: 自动化任务文件

2. 编码和缩进

	编码: 使用 UTF-8 编码。缩进: 使用 4 个空格进行缩进,避免使用制表符。

3. 文件和函数

	文件: 每个文件应该有一个简短的描述,说明文件的目的,一般放在文件开头。函数:函数名称应使用小写字母和下划线分隔单词(snake_case)。函数应该具有单一职责。函数应该尽量简短,不超过 20 行。

4. 变量和常量

	变量:使用小写字母和下划线分隔单词(snake_case)。避免使用单字母变量名,除非是循环索引等简单场景。常量:全部使用大写字母,单词间使用下划线分隔(UPPER_CASE)。常量应在文件顶部声明。

5. 类和对象

	类:类名使用驼峰式命名(CamelCase)。类应遵循单一职责原则。类应该有文档字符串,描述类的职责和用法。对象:使用小写字母和下划线分隔单词(snake_case)。遵循“鸭子类型”原则,关注行为而非类型。

注意:尽量使用面向对象的方式写,少用函数的形式,使用类和对象的形式,方便团队集成和调用

6. 注释和文档

	注释:在复杂的逻辑、算法实现前后添加注释。注释应简洁明了,避免冗余。文档:每个模块、类、函数都应该有文档字符串。文档字符串应使用 Google 或 Numpy 样式。文档字符串应描述函数的目的、参数、返回值等。

7. 异常处理

	异常:明确捕获异常,避免使用通用异常处理。使用 try-except 结构来处理预期的异常。使用 finally 子句来清理资源。

8. 测试

	单元测试:为每个函数编写单元测试。使用 unittest 或 pytest 框架。集成测试:测试模块间的交互。性能测试:对关键路径和算法进行基准测试。使用 timeit 或 pytest-benchmark。

9. 代码审查

	代码审查:实施代码审查流程。使用 GitHub/GitLab 的 Pull Request 功能。确保每次提交都经过审查。

10. 代码风格工具

	Linters:使用 flake8 或 black 来保持一致的代码风格。Formatter:使用 autopep8 或 black 来自动格式化代码。

http://www.ppmy.cn/ops/86617.html

相关文章

【CSS】响应式设计

响应式设计是指通过⼀些技术⼿段,使得⽹站或应⽤在不同终端设备(如桌⾯电脑、平板电脑、⼿机等)上能够⾃适应地呈现最佳的⽤户体验。 ⼀种实现⽅式是使⽤流体⽹格布局和百分⽐尺⼨等技术,以便根据设备屏幕的宽度和⾼度等信息⾃适…

【SpringCloud】企业认证、分布式事务,分布式锁方案落地-2

目录 高并发缓存三问 - 穿透 缓存穿透 概念 现象举例 解决方案 缓存穿透 - 预热架构 缓存穿透 - 布隆过滤器 布隆过滤器 布隆过滤器基本思想​编辑 了解 高并发缓存三问 - 击穿 缓存击穿 高并发缓存三问 - 雪崩 缓存雪崩 解决方案 总结 为什么要使用数据字典&…

mysql、postgresql 数据库数据量查询

1、mysql 数据库数据量查询 SELECT SUM(table_rows) FROM TABLES WHERE TABLE_SCHEMA 数据库名称 ORDER BY table_rows DESC; select concat(round(sum(DATA_LENGTH/1024/1024),2),MB) as data from TABLES where table_schema数据库名称;2、postgresql 数据库数据量查询 se…

Kubernetes常见的3种部署方式

Kubernetes常见的3种部署方式 1. kubeadm2. 二进制包安装3. Minikube💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(K8s)作为容器编排领域的领导者,提供了多种部署方式以适应不同场景的需求。 1. kubeadm 简介:Kubernetes官方推荐的集群部署工具。特点:简单易用…

Enlightenment linux桌面简介

Enlightenment 是一个动态窗口管理器和桌面环境,它以其轻量级、高度可配置性和美观的用户界面而闻名。Enlightenment 不仅适用于传统的桌面电脑,还适用于便携式设备、小型设备、移动设备以及嵌入式系统。以下是 Enlightenment 的一些关键特点&#xff1a…

json序列化-部分字段值为空(不是为null)

1.现象 部分字段值为空(不是为null)2.问题 通过跟踪发现,是对应字段的类,没有无参构造方法,但是有部分值的有参构造,导致其他字段反序列化出现问题3.解决思路 手动添加无参构造方法

vivado IP_REPO_PATHS

此属性允许您创建自定义IP目录,以与Vivado Design Suite一起使用。 IP_REPO_PATHS属性定义了一个或多个目录的路径,这些目录包含 第三方或用户定义的IP。指定的目录和任何子目录是 搜索要添加到Vivado Design Suite IP目录以用于设计的IP定义 进入或与IP…

图片等比例缩放方案

图片等比例缩放方案 在Web开发时无可避免的需要将图片进行缩放&#xff0c;缩放时需要保证图片不变形&#xff0c;也就是需要等比例缩放。 设定宽度或高度 引入图片时&#xff0c;仅设置图片的width或者是height就可以使另一边自适应&#xff0c;从而实现等比例缩放。 <…