晴空ClearSky——β冲刺代码规范

晴空ClearSky 2025-11-22 15:50:24
这个作业属于哪个课程2501_CS_SE_FZU
团队名称晴空ClearSky
这个作业要求在哪里团队作业—Beta冲刺-CSDN社区
这个作业的目标β冲刺代码规范
其他参考文献《构建之法 现代软件工程》第三版 邹欣著

目录

  • 前端代码规范
  • 一、编程规约
  • 1. 命名规范
  • 项目命名
  • 目录命名
  • 文件命名
  • 函数命名
  • 变量命名
  • 命名严谨性
  • 2. 注释规范
  • 二、HTML 规范
  • 三、CSS 规范
  • 类名命名
  • 属性书写顺序
  • 其他规范
  • 四、JavaScript 规范
  • 五、TypeScript 规范
  • 六、框架与工程化
  • Vue 项目
  • 后端代码规范
  • 1. 命名规范
  • 1.1 包命名
  • 1.2 类命名
  • 1.3 方法命名
  • 1.4 变量命名
  • 2. 注解使用规范
  • 2.1 Lombok注解
  • 2.2 Spring注解
  • 3. DTO设计规范
  • 3.1 Request DTO
  • 3.2 Response DTO
  • 4. 异常处理规范
  • 4.1 自定义异常
  • 4.2 全局异常处理
  • 5. 文档注释规范
  • 5.1 类注释
  • 5.2 方法注释
  • 5.3 字段注释
  • 6. 日志规范
  • 6.1 日志级别
  • 6.2 日志内容
  • 7. 事务管理规范
  • 7.1 事务边界
  • 8. 安全规范
  • 8.1 认证鉴权
  • 8.2 参数校验
  • 9. API设计规范
  • 9.1 RESTful风格
  • 9.2 统一响应格式
  • 10. 数据库交互规范
  • 10.1 Mapper层
  • 10.2 实体类

前端代码规范

一、编程规约

1. 命名规范

项目命名

  • 全部采用小写方式,以中线分隔
  • 示例:my-project-name

目录命名

  • 全部采用小写方式,以中划线分隔
  • 有复数结构时采用复数命名法

文件命名

  • JS、CSS、SCSS、HTML、PNG 文件命名全部采用小写方式,以中划线分隔

函数命名

  • 使用小驼峰命名法camelCase
  • 前缀应为动词
动词含义与返回值
can判断是否可执行某个动作,返回布尔值
has判断是否含有某个值,返回布尔值
is判断是否为某个值,返回布尔值
get获取某个值,返回一个非布尔值
set设置某个值,无返回值或返回是否设置成功
load加载某些数据,无返回值或返回加载完成的结果

变量命名

  • 使用小驼峰命名法
  • 布尔类型使用 is/has 等开头

命名严谨性

  • 代码中的命名严禁使用拼音与英文混合的方式
  • 更不允许直接使用中文

2. 注释规范

  • 大区块分割必须有注释
  • 待完善或未实现的功能,必须添加 // TODO 进行注释
  • 超过 100 行的复杂功能实现,必须有注释

二、HTML 规范

  • 文档类型:推荐使用 HTML5 的文档类型申明:<!DOCTYPE html>
  • 标签语义化:优先使用 HTML5 中新增的语义化标签(如 headerfooter),避免一个页面都是 div 或者 p 标签
  • 引号:标签属性值必须使用双引号(" ") 包围
  • 缩进:使用 2个空格作为一个缩进层级

三、CSS 规范

类名命名

  • 使用中横线(-)连接,例如 .main-title
  • 命名可按"模块-功能-附加(如:状态)"的方式

属性书写顺序

推荐遵循以下顺序,以提高代码可读性和编译效率:

  1. 位置属性position, top, right, z-index, display, float 等)
  2. 盒模型属性width, height, padding, margin
  3. 文字系列font, line-height, letter-spacing, color, text-align 等)
  4. 背景background, border 等)
  5. 其他animation, transition 等)

其他规范

  • 缩写属性:尽量使用缩写属性(如 padding),并且能省略的尽量省略
  • 选择器:避免使用 ID 选择器及全局标签选择器防止污染全局样式
  • 单位省略:当长度为 0 时,省略其单位

四、JavaScript 规范

  • 基本风格:遵循 eslintstandard 规范
  • 语言特性:使用 ES6+ 语法进行开发
  • 变量声明:使用 constlet 声明变量,避免使用 var
  • 代码格式:使用 2 个空格进行缩进,语句末尾推荐使用分号

五、TypeScript 规范

  • 基本风格:遵循 tslintstandard 规范
  • 类型使用避免使用 any
  • 高级特性:多使用泛型接口interface)、类型别名type)等 TypeScript 特性

六、框架与工程化

Vue 项目

  • 组件名为多个单词,避免与 HTML 元素冲突
  • 组件文件名为 PascalCase 格式(大驼峰)
  • Vue 3 项目推荐使用 Composition API,并多使用自定义 Hook

后端代码规范

1. 命名规范

1.1 包命名

全部使用小写字母,采用有意义的英文单词命名
按照业务模块划分包结构,如:com.clearsky.controller, com.clearsky.service, com.clearsky.entity

1.2 类命名

采用大驼峰命名法(UpperCamelCase)
实体类名与数据库表名相对应,如:CommunityPost, PostComment
Controller类以Controller结尾,如:CommunityPostController
Service接口以Service结尾,实现类以ServiceImpl结尾
DTO类按照用途命名,如:CreatePostRequest, PostDetailResponse

1.3 方法命名

采用小驼峰命名法(lowerCamelCase)
Controller方法按照RESTful风格命名,如:createPost, getPostById
Service方法采用业务语义化命名,如:reviewPost, addSchedule

1.4 变量命名

采用小驼峰命名法(lowerCamelCase)
局部变量使用简洁但具有意义的名称
常量使用全大写字母,单词间用下划线分隔,如:MAX_PAGE_SIZE

2. 注解使用规范

2.1 Lombok注解

使用@Data自动生成getter/setter/toString等方法
使用@Accessors(chain = true)支持链式调用
使用@EqualsAndHashCode(callSuper = false)生成equals和hashCode方法

2.2 Spring注解

Controller层使用@RestController注解
Service层使用@Service注解
DAO/Mapper层使用@Mapper注解
依赖注入统一使用@Autowired

3. DTO设计规范

3.1 Request DTO

放置于dto.request包下,按业务模块进一步细分
类名以Request结尾,如:CreatePostRequest
使用@Valid进行参数校验

3.2 Response DTO

放置于dto.response包下,按业务模块进一步细分
类名以Response结尾,如:PostDetailResponse
包含完整的API响应数据结构

4. 异常处理规范

4.1 自定义异常

继承RuntimeException创建自定义业务异常
在exception包中统一管理

4.2 全局异常处理

使用@ControllerAdvice和@ExceptionHandler实现全局异常处理
统一返回格式遵循Result类结构

5. 文档注释规范

5.1 类注释

每个公共类都需要添加类注释,说明类的作用和用途
使用标准JavaDoc格式

5.2 方法注释

Controller层方法需要详细说明:
接口描述
请求参数说明
返回值说明
认证要求
示例请求和响应

5.3 字段注释

DTO类中的重要字段需要添加注释说明含义

6. 日志规范

6.1 日志级别

使用log.info()记录业务流程关键节点
使用log.warn()记录警告信息
使用log.error()记录错误信息

6.2 日志内容

日志信息应包含足够的上下文信息,便于问题定位
敏感信息不应输出到日志中

7. 事务管理规范

7.1 事务边界

在Service层方法上使用@Transactional注解管理事务
明确标注事务的传播行为和隔离级别

8. 安全规范

8.1 认证鉴权

使用JWT Token进行用户身份验证
在Controller方法中通过@RequestHeader("Authorization")获取Token

8.2 参数校验

使用@Valid注解配合Bean Validation进行参数校验
对于复杂业务逻辑,需要在代码中进行二次校验

9. API设计规范

9.1 RESTful风格

URI使用名词复数形式,如:/community/posts
使用标准HTTP动词表示操作类型:
GET:查询资源
POST:创建资源
PUT:更新资源
DELETE:删除资源

9.2 统一响应格式

所有API接口返回统一的Result对象
包含code、message、data、timestamp等字段

10. 数据库交互规范

10.1 Mapper层

使用MyBatis-Plus简化数据库操作
自定义SQL放在XML文件中维护

10.2 实体类

实体类与数据库表一一对应
使用Lombok注解减少样板代码
关联信息使用额外字段而非外键对象直接引用

...全文
87 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
源码链接: https://pan.quark.cn/s/0f7c75cb3aad ### MIPI Video Mode 与 Command Mode 的差异 #### 一、引言 MIPI (Mobile Industry Processor Interface) 是一种用于连接移动设备中处理器及其外围设备的标准化接口。MIPI 接口支持多种协议,其中包含 DSI (Display Serial Interface) 和 DCS (Display Control Interface) 等协议。在 MIPI 接口的应用中,主要涉及两种工作模式:Video Mode(视频模式)和 Command Mode(命令模式)。本文旨在系统性地阐述这两种模式的工作机制、特性以及实际应用环境。 #### 二、LCD RAM 概念说明 在进一步探讨 MIPI 的两种模式之前,有必要对文中提及的“LCD RAM”概念进行明确。实际上,“LCD RAM”并非一个通用术语,而是本文作者用来描述 LCD 控制器中用于存储显示数据的内存区域。LCD(Liquid Crystal Display,液晶显示屏)通常配备一个控制 IC(Integrated Circuit,集成电路),该控制 IC 可能内置 RAM 以缓存显示数据。 #### 三、MIPI Video Mode(视频模式) **定义:** - 视频模式是一种类似于传统 RGB 接口的工作模式,它要求主机持续不断地向显示器传输刷新数据。 - 在这种模式下,数据和控制信号以报文的形式通过 MIPI 总线进行传输。 - 显示器本身无需配备帧缓冲器,因为主机会周期性地刷新屏幕。 **特点:** 1. **实时性高:** 主机需要不...
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在电磁模拟技术中,CST(Computer Simulation Technology)是一种被广泛采纳的软件工具,它主要用于电磁场、微波、天线以及射频系统的设计工作。本资料将详细分析CST软件中离散端口的具体配置方法,这些方法对于提升仿真结果的精确度和专业水准具有决定性作用。离散端口在CST软件中扮演着模拟信号输入或输出的重要角色,它们构成了仿真模型不可或缺的部分。在配置离散端口时,一个核心的原则是保证端口的方向与网格线保持一致,这是因为这样做能够有效降低计算过程中产生的误差,并确保仿真数据的有效性。如果未能遵循这一指导原则,可能会引发未知的计算问题,进而导致仿真结果失去可靠性。 在CST软件中配置离散端口,通常需要借助“Pick Points”这一功能。通过选择“Pick Edge Center”选项,端口将被设定在模型边缘的中心位置上。然而,这种做法并不总是能够确保端口与网格线保持平行。在某些特定情形下,模型的几何构造可能不允许直接选取一个与网格线平行的边作为端口的安装位置。 为了克服这一挑战,可以采用多种不同的策略。如果模型本身已经包含一条与馈电口平行的边,那么可以直接利用这条边来建立端口,此时CST软件会自动调整端口使其与网格线对齐。另一种可选的方法是,当模型不具备现成的平行边时,用户可以手动构建一个几何结构,比如一个立方体,并使其边缘与馈电口平行。通过这种方式,新建立的几何结构的边缘就可以作为端口的位置,从而确保端口与网格线的平行关系。 在实施上述操作时,必须关注端口尺寸的合理性和物理意义的一致性。端口的尺寸应当依据实际天线馈电部分的尺寸进行适当调整,过大的端口或...
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 【使用TensorFlow进行图像识别】 图像识别作为计算机视觉领域的关键任务之一,其核心在于通过算法解析和理解图像所包含的信息。在此资源中,我们将集中探讨如何借助功能强大的深度学习框架TensorFlow来执行手写数字识别。手写数字识别构成了众多实际应用的基础,例如自动支票处理、光学字符识别(OCR)等场景。 TensorFlow是由Google创建的一个开源库,它主要用于数值运算和机器学习,尤其在深度学习方面表现卓越。其核心优势在于可以构建并训练复杂的神经网络架构,并且在多种硬件环境中实现高效执行,涵盖CPU和GPU平台。 在此实践项目中,我们将运用TensorFlow来构建一个卷积神经网络(CNN)模型,这种架构是处理图像数据的理想选择。CNNs通过模仿人脑视觉皮层的运作机制,能够自主地提取图像中的关键特征,进而达成识别目标。在手写数字识别的特定情境下,这些特征可能涉及笔画的几何形态、走向以及相互间的连接模式。 对于CNN的基础结构,我们需要具备相应的认知,其通常由卷积层、池化层、全连接层以及激活函数等部分组成。卷积层借助滤波器(亦称卷积核)对图像进行扫描,以捕捉局部特征;池化层则用于降低数据维度,同时保留核心信息;全连接层将特征向量映射至各类别的概率分布;而激活函数如ReLU则通过引入非线性元素,使模型能够学习更为复杂的模式。 在此案例中,建议采用MNIST数据集,这是一个广泛用于手写数字识别的标准测试集。该数据集包含60,000个训练样本和10,000个测试样本,每个样本均为28x28像素的灰度图像,代表0到9这十个数字中的某一个。为了训练模型,必须首先加载数据,并...

103

社区成员

发帖
与我相关
我的任务
社区描述
2501_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_LQF
  • 木村修
  • 心态773
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧