项目开发规范

企业级 C++ 项目开发规范与流程 大型 C++ 项目开发是一个复杂的系统工程,涉及多个阶段和团队协作。 阅读详情
项目开发规范      一、目的        对于代码,首要要求是它必须正确,能够按照程序员的真实思想去运行;第二个的要求是代码必须清晰易懂,使别的程序员能够容易理解代码所进行的实际工作。在软件工程领域,源程序的风格统一标志着可维护性、可读性,是软件项目的一个重要组成部分。而目前还没有成文的编码风格文档,以致于很多时候,程序员没有一个共同的标准可以遵守,编码风格各异,程序可维护性差、可读性也很差。通过建立代码编写规范,形成开发小组编码约定,提高程序的可靠性、可读性、可修改性、可维护性、可继承性和一致性,可以保证程序代码的质量,继承软件开发成果,充分利用资源,使开发人员之间的工作成果可以共享。       本文在参考业界已有的编码风格的基础上,描述了一个基于 JBuilder 的项目风格,力求一种统一的编程风格,并从整体编码风格、代码文件风格、函数编写风格、变量风格、注释风格等几个方面进行阐述。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)         二、整体编码风格      1、缩进       缩进建议以4个空格为单位。建议在 Tools/Editor Options 中设置 Editor 页面的Block ident为4,Tab Size 为8。预处理语句、全局数据、标题、附加说明、函数说明、标号等均顶格书写。语句块的"{"、"}"配对对齐,并与其前一行对齐,语句块类的语句缩进建议每个"{"、"}"单独占一行,便于匹对。JBuilder 中的默认方式是开始的"{"不是单独一行,建议更改成上述格式(在 Project/Default Project Properties 中设置 Code Style 中选择 Braces 为 Next line)。      2、空格       原则上变量、类、常量数据和函数在其类型,修饰名称之间适当空格并据情况对齐。关键字原则上空一格,如:if ( ... ) 等。运算符的空格规定如下:"::"、"->"、"["、"]"、"++"、"--"、"~"、"!"、"+"、"-"(指正负号)、"&"(引用)等几个运算符两边不加空格(其中单目运算符系指与操作数相连的一边),其它运算符(包括大多数二目运算符和三目运算符"?:"两边均加一空格,在作函数定义时还可据情况多空或不空格来对齐,但在函数实现时可以不用。","运算符只在其后空一格,需对齐时也可不空或多空格。不论是否有括号,对语句行后加的注释应用适当空格与语句隔开并尽可能对齐。个人认为此项可以依照个人习惯决定遵循与否。      3、对齐       原则上关系密切的行应对齐,对齐包括类型、修饰、名称、参数等各部分对齐。另每一行的长度不应超过屏幕太多,必要时适当换行,换行时尽可能在","处或运算符处,换行后最好以运算符打头,并且以下各行均以该语句首行缩进,但该语句仍以首行的缩进为准,即如其下一行为“{”应与首行对齐。       变量定义最好通过添加空格形成对齐,同一类型的变量最好放在一起。如下例所示:   int Value;   int Result;   int Length;   DWORD Size;   DWORD BufSize;      个人认为此项可以依照个人习惯决定遵循与否。      4、空行      不得存在无规则的空行,比如说连续十个空行。程序文件结构各部分之间空两行,若不必要也可只空一行,各函数实现之间一般空两行,由于每个函数还要有函数说明注释,故通常只需空一行或不空,但对于没有函数说明的情况至少应再空一行。对自己写的函数,建议也加上“//------”做分隔。函数内部数据与代码之间应空至少一行,代码中适当处应以空行空开,建议在代码中出现变量声明时,在其前空一行。类中四个“p”之间至少空一行,在其中的数据与函数之间也应空行。      5、注释      注释是软件可读性的具体体现。程序注释量一般占程序编码量的20%,软件工程要求不少于20%。程序注释不能用抽象的语言,类似于"处理"、"循环"这样的计算机抽象语言,要精确表达出程序的处理说明。例如:"计算净需求"、"计算第一道工序的加工工时"等。避免每行程序都使用注释,可以在一段程序的前面加一段注释,具有明确的处理逻辑。      注释必不可少,但也不应过多,不要被动的为写注释而写注释。以下是四种必要的注释:      A. 标题、附加说明。      B. 函数、类等的说明。对几乎每个函数都应有适当的说明,通常加在函数实现之前,在没有函数实现部分的情况下则加在函数原型前,其内容主要是函数的功能、目的、算法等说明,参数说明、返回值说明等,必要时还要有一些如特别的软硬件要求等说明。公用函数、公用类的声明必须由注解说明其使用方法和设计思路,当然选择恰当的命名格式能够帮助你把事情解释得更清楚。      C. 在代码不明晰或不可移植处必须有一定的说明。      D. 及少量的其它注释,如自定义变量的注释、代码书写时间等。       注释有块注释和行注释两种,分别是指:"/**/"和"//"建议对A用块注释,D用行注释,B、C则视情况而定,但应统一,至少在一个单元中B类注释形式应统一。具体对不同文件、结构的注释会在后面详细说明。      6、代码长度      对于每一个函数建议尽可能控制其代码长度为53行左右,超过53行的代码要重新考虑将其拆分为两个或两个以上的函数。函数拆分规则应该一不破坏原有算法为基础,同时拆分出来的部分应该是可以重复利用的。对于在多个模块或者窗体中都要用到的重复性代码,完全可以将起独立成为一个具备公用性质的函数,放置于一个公用模块中。      7、页宽      页宽应该设置为80字符。源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整. 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行. 一条语句折行后, 应该比原来的语句再缩进2个字符.      8、行数      一般的集成编程环境下,每屏大概只能显示不超过50行的程序,所以这个函数大概要5-6屏显示,在某些环境下要8屏左右才能显示完。这样一来,无论是读程序还是修改程序,都会有困难。因此建议把完成比较独立功能的程序块抽出,单独成为一个函数。把完成相同或相近功能的程序块抽出,独立为一个子函数。可以发现,越是上层的函数越简单,就是调用几个子函数,越是底层的函数完成的越是具体的工作。这是好程序的一个标志。这样,我们就可以在较上层函数里容易控制整个程序的逻辑,而在底层的函数里专注于某方面的功能的实现了。         三、代码文件风格      所有的 Java(*.java) 文件都必须遵守如下的样式规则:      . 文件生成      对于规范的 JAVA 派生类,尽量用 JBuilder 的 Object Gallery 工具来生成文件格式,避免用手工制作的头文件/实现文件。      . package/import      package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。      package hotlava.net.stats;      import java.io.*;   import java.util.Observable;   import hotlava.util.Application;      这里 java.io.* 使用来代替InputStream and OutputStream 的。      . 文件头部注释      文件头部注释主要是表明该文件的一些信息,是程序的总体说明,可以增强程序的可读性和可维护性。文件头部注释一般位于 package/imports 语句之后,Class 描述之前。要求至少写出文件名、创建者、创建时间和内容描述。JBuilder 的 Object Gallery 工具生成的代码中会在类、工程文件中等自动添加注释,我们也要添加一些注释,其格式应该尽量约束如下:      /**   * Title: 确定鼠标位置类   * Description: 确定鼠标当前在哪个作业栏位中并返回作业号   * @Copyright: Copyright (c) 2002   * @Company: HIT   * @author: rivershan   * @version: 1.0   * @time: 2002.10.30   */      . Class      接下来的是类的注释,一般是用来解释类的。      /**   * A class representing a set of packet and byte counters   * It is observable to allow it to be watched, but only   * reports changes when the current set is complete   */      接下来是类定义,包含了在不同的行的 extends 和 implements      public class CounterSet    extends Observable    implements Cloneable      .Class Fields      接下来是类的成员变量:      /**   * Packet counters
Vue项目开发规范 基本介绍 项目基于Vue项目进行的二次封装 工程结构 VueProject(2.6.11) ├── build ------------------ webpack相关配置文件 ├── config ----------------- vue基本配置文件 ├── node-modules ----------- 依赖包 ├── src -------------------- 项目核心文件 ├ ├── assets ------------ 静态资源(样式、js等小型静态文件) ├ 阅读详情

相关推荐

【算法】基于STM32的MPU6050卡尔曼滤波算法(入门级)

1. 简介 卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。详情见:卡尔曼滤波简介 MPU6050的解算主要有三种姿态融合算法:四元数法 、一阶互补算法和卡尔曼滤波算法。我们常用的DMP库使用的是四元数法,本文采用卡尔曼滤波算法,使用RT-Thread国产操作系统,利用env工具进行串口、模拟IIC环境配置,使用10ms的线程进行卡尔曼滤波解算。 2.

weixin_44549777的博客 3万+

Laravel 项目开发规范

一. 说明 以下内容大部分引用Laravel China社区的文章 - 分享下团队的开发规范 ——《Laravel 项目开发规范》。 相对而言,上面引用的文章的规范更加严格,但考虑到目前的情况,会适当地对一些规范进行更改和增删。 二. 目的 暂无 三. 优点 规范有一下优点: 高效编码 - 避免了过多的选择造成的『决策时间』浪费; 风格统一 - 最大程度统一了开发团队成员代码书写风...

笔记 1583

Cocos Creator实战:5步搞定棋牌游戏大厅场景开发(附完整代码)

本文详细介绍了使用Cocos Creator 3.8开发棋牌游戏大厅的5个关键步骤,包括工程配置、动态UI系统实现、核心交互功能开发、性能优化及调试发布技巧。通过模块化代码和实战案例,帮助开发者快速构建高交互性的棋牌游戏大厅,提升用户留存率。

weixin_29002209的博客 356

[其他] 前端项目开发规范

前端 JS 项目开发规范 转载:https://gitee.com/lab1024/smart-admin/edit/master/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83/front-standard-guide.md 规范的目的是为了编写高质量的代码,让你的团队成员每天得心情都是愉悦的,大家在一起是快乐的。 引自《阿里规约》的开头片段: ----现代软件架构的复杂性需要协同开发完成,如何高效地协同呢?无规矩不成方圆,无规范难以协同,比如,制订交通法规表面上是要限制行车权,

一杯糖不加咖啡 1817

常见的十大量化投资策略(附源码)

量化投资策略是利用量化的方法,进行金融市场的分析、判断和交易的策略、算法的总称。著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01、海龟交易策略 海龟交易策略是一套非常完整的趋势跟随型的自动化交易策略。这个复杂的策略在入场条件、仓位控制、资金管理、止损止盈等各个环节,都进行了详细的设计,这基本上可以作为复杂交易策略设计和开发的模板。 海龟交易策略源码:https://www.myquant.cn/docs/python_strategyies/110 0.

小壁虎的春天 2万+

BI项目开发规范详解

BI项目开发规范详解 去发现同类优质开源项目:https://gitcode.com/ 本文档详细介绍了从SQL编写、数据仓库构建到报表制作的全方位规范,旨在帮助开发人员全面理解并掌握数仓开发的各项要求。内容深入浅出,讲解详尽,非常适合作为学习材料。通过本规范的学习与实践,您将能够打造出更加高效、准确、美观的报表,为您的BI项目打下坚实基础。欢迎下载使用,开启您报表制作的精彩旅程! 去发现同类优...

gitblog_06745的博客 303

Autosar进阶专栏索引

Autosar进阶专栏索引

赞的博客 3542

Odoo项目代码开发规范

按需指定字段的。

青哥的博客 1105

docker部署neo4j,设置密码。Neo.ClientError.Security.Unauthorized: The client is unauthorized due to authenti

卷,设置NEO4J_AUTH将不会起作用,因为该数据库已经配置了身份验证。Neo4j Docker 服务将会启动,但您需要使用已与该数据库关联的用户名和密码才能登录。这里,使用了环境变量NEO4J_AUTH,设置了用户名为neo4j,密码为neo4jneo4j。这个命令还是比较全的,包括设置密码,设置端口,挂载外部的数据目录等。原因嘛,就是使用docker创建的neo4j,登录不上。把👆提到的外挂的数据,都清空了,再重新来一遍。有一种情况下,这样设置密码,并不会成功。如果不出意外,目前就算大功告成了。

xiezhipu的博客 564

嵌入式工程师成长之路(1)——元件基础(试读版)

上拉电阻阻值选错导致MCU反复重启?0欧电阻竟然能“背锅”信号干扰?高精密采样电阻的温漂毁了整个控制系统?——这些问题,都是基础不牢!优快云硬件领域头部博主十年经验汇总,涵盖电阻分类、封装、实战选型、避坑指南,附带职业进阶路径,助你从小白进阶为“电路医生”!

云轩阁 34万+

【项目总结】项目开发规范

目录背景后端规范一、接口api规范1.接口风格接口风格统一采用restful规范2.接口api命名规范3.接口参数规范4.接口响应数据/状态码规范4.1响应数据结构4.2Http状态码使用4.3自定义code的使用(==自定义状态码暂定,需完善和确定==)4.4如何使用Http状态码和自定义code5.接口访问权限二、异常处理规范1.使用异常处理的方式(暂定)2.什么是使用异常处理?三、事务规范1.什么时候使用事务?四、日志规范1.什么时候使用日志?2.如何使用日志记录?3.日志文件生成五、文件夹结构规范1

胡毛毛的博客 2076

帝企鹅优化器(EPO)详解:从基础原理到代码实战

帝企鹅优化器(EPO)是受帝企鹅群体在极寒环境中抱团取暖行为启发,于2018年提出的一种群体智能优化算法。其核心机制是模拟帝企鹅种群通过动态调整位置来维持体温的过程,主要包括确定集群边界、计算温度分布、衡量个体间距离以及更新位置四个步骤,从而在求解复杂优化问题时有效平衡全局探索与局部开发。该算法具有参数少、结构清晰、易于实现等优点,在工程优化、图像处理、机器学习特征选择以及冷链物流车辆路径规划等领域展现出良好的应用潜力。

qq_42212808的博客 141

GO项目开发规范文档解读

本篇博客的目的,更多是为快速翻阅与回忆使用。

2302_80067378的博客 1647

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Vue-cli4构建Vue项目以及项目开发规范

Vue-cli构建Vue项目 一、安装nodejs环境 Begin: Download nodejs from http://npm.taobao.org/mirrors/node/ My nodejs-version => node -v =>12.19.1 npm-version => npm -v => 6.14.8 Change your npm: The first way: 1.Check your npm registry Com

qq_43604486的博客 630

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

公司java项目开发规范

为了保密性,我将公司的简写换成了我的英文名字,其它一律没变。 1.1引言  编写目的 ² 避免开发过程中出现不规范的代码,防止错误的使用框架开发引起不必要的问题。 ² 解决今后产品的维护工作,使代码易读、易懂、易维护。 ² 规范新人员的开发习惯保证与公司开发的一致性,指导新人员开发工作 1.2 定义 Ø 实体:具有相同属性描述的对象(人、地点、事物)的集合。 Ø 引用:实

你究竟是想一辈子卖糖水,还是希望获得改变世界的机会? 3838

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

.NET项目开发规范

今天项目经理给了一个.NET项目的开发规范,深有感触。好的项目需要考虑解耦,封装,线程等问题。分享给大家。 一.层级 层级结构与定义 层级引用从下至上,下级层不允许引用上级层。同级之间不允许相互引用 通用层:主要包括各种基础类,通用方法,与业务无关。例如Http访问网络资源,Excel导入导出 数据层:数据库访问,数据库持久化映射模型 模块层:独立功能模块,例如用户模块,财务模块。各个模块之间相互独立,不允许相互引用 业务层:用于实现具体的业务逻辑,如报名,购买等,不允许调用数据层,不允许直接访问数

weixin_43803985的博客 1141

java项目开发规范

  1命名规范 1.1 package (*) 包名全部由小写的ASCII字母组成,用“.”分隔。 在此项目中,所有的包均以“com”开头。 功能模块的包命名格式 biz 业务层 biz.impl 业务层实现 dao 持久层 dao.impl 持久层实现 controller 控制层 entity 实体以及mapper配置 util 仅当前业务使用的工具类   1....

liberty12345678的专栏 646

MudBlazor项目开发规范与最佳实践指南

MudBlazor项目开发规范与最佳实践指南 【免费下载链接】MudBlazor Blazor Component Library based on Material design with an emphasis on ease of use. Mainly written in C# with Javascript ...

gitblog_00098的博客 471

Swagger API 开发规范项目介绍和使用文档

Swagger API 开发规范项目介绍和使用文档 【免费下载链接】OpenAPI-Specification 项目地址: https://gitcode.com/gh_mirrors/open/OpenAPI-Specific...

gitblog_00190的博客 852

Java项目开发规范参考

iB2Team项目开发规范 By KevinLee 2016-4-20 Email: hi@lidengju.com 小弟不才,仅供参考 1. 目的为了使软件开发过程顺畅,保证软件质量,于是有了这份开发规范文档。2. 概述 项目以功能模块来划分分工 数据库不能随意修改,本地数据库须统一 有标准的Java代码风格,有良好习惯 时刻考虑代码的可复用性 每个人需要有每周项目进度报告 3

KevinLee的博客 1万+

Plotly Dash示例应用项目开发规范指南

Plotly Dash是一个强大的Python框架,用于构建数据可视化Web应用。本指南基于`dash-sample-apps`项目的最佳实践,为开发者提供完整的项目开发规范,帮助您构建专业、可维护的Dash应用。 ## 项目结构规范 ### 标准目录结构 ```mermaid graph TD A[dash-sample-apps/] --> B[apps/] B --> ...

gitblog_00261的博客 392

BI项目开发规范详解:全方位掌握数仓开发要点

BI项目开发规范详解:全方位掌握数仓开发要点 去发现同类优质开源项目:https://gitcode.com/ 项目核心功能/场景 全方位详细讲解BI报表制作、SQL编写与数据仓库构建规范。 项目介绍 在当今信息化的时代背景下,商业智能(BI)项目已经成为企业数据分析和决策支持的重要工具。为了确保BI项目的成功实施,一套完善的开发规范至关重要。本文档——BI项目开发规范详解,旨在为开发人员提供一套...

gitblog_06713的博客 786
上一篇: 数字化矿山
下一篇: 秋天的滋味
zph790607
博客等级 码龄17年 1粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值