序号 |
检查内容 |
I |
排版规范 |
I-A-1 |
程序块要采用缩进风格编写,缩进的空格数为4个。 |
I-A-2 |
分界符(如大括号‘{’和‘}’)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类和接口的定义、以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。 |
I-A-3 |
较长的语句、表达式或参数(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。 |
I-A-4 |
不允许把多个短语句写在一行中,即一行只写一条语句 |
I-A-5 |
if, for, do, while, case, switch, default 等语句自占一行,且if, for, do, while等语句的执行语句无论多少都要加括号{}。 |
I-A-6 |
相对独立的程序块之间、变量说明之后必须加空行。 |
I-A-7 |
在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如.),后不应加空格。 |
I-A-8 |
同一行禁止声明多个变量,确保每行只声明一个变量 |
I-A-9 |
类属性不要交叉放置,不同存取范围的属性也尽量不要交叉放置。 |
I-B-1 |
类方法不要交叉放置,不同存取范围方法也尽量不要交叉放置 |
|
|
II |
注释规范 |
II-A-1 |
一般情况下,源程序有效注释量必须在30%以上。 |
II-A-2 |
对于CBB模块:需添加包的注释,包的注释写入一个名为 package.html的HTML格式的说明文件放入当前路径。 |
II-A-3 |
于CBB模块必须添加的包的注释内容:简述本包的作用、详细描述本包的内容、产品模块名称和版本、公司版权。 |
II-A-4 |
文件注释:文件注释写入文件头部,包名之前的位置。 |
II-A-5 |
文件注释内容:版权说明、描述信息、生成日期、修改历史。 |
II-A-6 |
类和接口的注释:该注释放在 package 关键字之后,class 或者 interface 关键字之前。 |
II-A-7 |
类和接口的注释内容:类的注释主要是一句话功能简述、功能详细描述, |
II-A-8 |
类属性、公有、保护和私有方法注释:写在类属性、公有、保护和私有方法上面。 |
II-A-9 |
成员变量注释内容:成员变量的意义、目的、功能,可能被用到的地方。 |
II-A-10 |
公有和保护方法注释内容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、违例等。 |
II-A-11 |
对于方法内部用throw语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。 |
II-A-12 |
注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。 |
II-A-13 |
注释与所描述内容进行同样的缩排。 |
II-A-14 |
将注释与其上面的代码用空行隔开。 |
II-A-15 |
对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。 |
II-A-16 |
对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。 |
II-A-17 |
边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除。 |
II-A-18 |
注释的内容要清楚、明了,含义准确,防止注释二义性。 |
II-A-19 |
避免在注释中使用缩写,特别是不常用缩写。 |
II-A-20 |
避免在一行代码或表达式的中间插入注释。 |
II-A-21 |
通过对函数或过程、变量、结构等正确的命名以及合理地组织代码的结构,使代码成为自注释的。 |
II-A-22 |
在代码的功能、意图层次上进行注释,提供有用、额外的信息。 |
II-A-23 |
Java编码统一采用UTF-8格式 |
II-A-24 |
注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,建议多使用中文,除非能用非常流利准确的英文表达。 |
II-A-25 |
方法内的单行注释使用 // |
II-A-26 |
注释尽量使用中文注释和中文标点。方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。接下来的部分可以详细描述。 |
II-A-27 |
顺序实现流程的说明使用1、2、3、4在每个实现步骤部分的代码前面进行注释。 |
II-A-28 |
一些复杂的代码需要说明。 |
II-B-1 |
异常的注释必须说明该异常的含义及什么条件下抛出该异常。 |
II-B-2 |
在程序块的结束行右方加注释标记,以表明某程序块的结束。 |
|
|
III |
命名规范 |
III-A-1 |
包名采用域后缀倒置的加上自定义的包名,采用小写字母。在部门内部应该规划好包名的范围,防止产生冲突。部门内部产品使用部门的名称加上模块名称。产品线的产品使用产品的名称加上模块的名称。 |
III-A-2 |
类名和接口名,是个名词,使用类意义完整的英文描述,,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法 |
III-A-3 |
方法名是一个动名词,使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。 |
III-A-4 |
方法中,存取属性的方法采用setter 和 getter方法,动作方法采用动词和动宾结构。 |
III-A-5 |
属性名使用意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法。属性名不能与方法名相同。 |
III-A-6 |
常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 final static 修饰。 |
III-A-7 |
属性名可以和公有方法参数相同,不能和局部变量相同,引用非静态成员变量时使用 this 引用,引用静态成员变量时使用类名引用。 |
III-A-8 |
除了变量名外,所有实例,包括类,类常量,均采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。变量名不应以下划线或美元符号开头,尽管这在语法上是允许的。 |
III-A-9 |
常用组件类的命名以组件名加上组件类型名结尾。 |
III-A-10 |
如果函数名超过15 个字母,可采用以去掉元音字母的方法或者以行业内约定俗成的缩写方式缩写函数名。 |
III-A-11 |
准确地确定成员函数的存取控制符号,不是必须使用 public 属性的,请使用 protected,不是必须使用 protected, 请使用 private。 |
III-A-12 |
含有集合意义的属性命名,尽量包含其复数的意义。 |
|
|
IV |
编码规范 |
IV-A-1 |
明确方法功能,精确(而不是近似)地实现方法设计。一个函数仅完成一件功能,即使简单功能也应该编写方法实现。 |
IV-A-2 |
应明确规定对接口方法参数的合法性检查应由方法的调用者负责还是由接口方法本身负责,缺省是由方法调用者负责。 |
IV-A-3 |
明确类的功能,精确(而不是近似)地实现类的设计。一个类仅实现一组相近的功能。 |
IV-A-4 |
所有的数据类必须重载toString() 方法,返回该类有意义的内容。 |
IV-A-5 |
数据库操作、IO操作等需要使用结束close()的对象必须在try -catch-finally 的finally中close()。 |
IV-A-6 |
异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace() 。 |
IV-A-7 |
自己抛出的异常必须要填写详细的描述信息。 |
IV-A-8 |
运行期异常使用RuntimeException的子类来表示,不用在可能抛出异常的方法声明上加throws子句。非运行期异常是从Exception继承而来的,必须在方法声明上加throws子句。 |
IV-A-9 |
在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。 |
IV-A-10 |
注意运算符的优先级,并用括号明确表达式的操作顺序,避免使用默认优先级。 |
IV-A-11 |
避免使用不易理解的数字,用有意义的标识来替代。 |
IV-A-12 |
数组声明的时候使用 int[] index ,而不要使用 int index[] 。 |
IV-A-13 |
调试代码的时候,不要使用 System.out 和 System.err 进行打印,应统一使用日志组件。 |
IV-A-14 |
如果多段代码重复做同一件事情,那么在方法的划分上可能存在问题。 |
IV-A-15 |
不要使用难懂的技巧性很高的语句,除非很有必要时。 |
IV-B-1 |
一个方法不应抛出太多类型的异常。 |
IV-B-2 |
异常捕获尽量不要直接 catch (Exception ex),应该把异常细分处理。
|
IV-B-3 |
对于创建的主要的类,最好置入main()函数,包含用于测试那个类的代码
|
IV-B-4 |
集合中的数据如果不使用了应该及时释放,尤其是可重复使用的集合。 |
IV-B-5 |
源程序中关系较为紧密的代码应尽可能相邻。 |
IV-B-6 |
建议不使用三目运算符 |
相关推荐
评审过程中,开发者会根据预设的规范进行代码走读,检查是否存在潜在的问题。 2. **单元测试**:单元测试是针对代码的最小可测试单元进行的测试,通常在编码完成后进行。测试结果会被记录并保存在相关文档中,以供...
2. **代码质量评审**:通过遵循编码规范,开发者进行代码走读以评估代码质量。这确保了代码的可读性、可维护性和一致性。 3. **单元测试**:开发者执行单元测试以验证代码的正确性。测试结果会被记录并保存在特定...
- **验证流程和准则**: 制定清晰的验证流程和标准。 - **工作产品清单**: 明确哪些工作产品需要被验证。 - **验证选择**: 决定哪些工作产品将被纳入验证范围。 ##### SG2 - 执行同行评审 - **数据收集需求**: 明确...
使用PC-Lint在代码走读和单元测试之前进行检查,可以提前发现程序隐藏错误,提高代码质量,节省测试时间。并提供编码规则检查,规范软件人员的编码行为。 由于PC-LINT对于一般程序员来说可能比较陌生,有好多人安装...
STM32是意法半导体(STMicroelectronics)推出的一系列32位微控制器,基于ARM Cortex - M内核。它具有高性能、低功耗、丰富的外设接口等特点,广泛应用于工业控制、消费电子、汽车电子等众多领域。与传统的8位、16位单片机相比,STM32在处理速度、存储容量和功能上都有了显著的提升。
内容概要:本文详细介绍了采用西门子S7-1200 PLC和昆仑通泰触摸屏构建的负压输送与混料配料系统的集成控制方案。主要内容涵盖物料分配逻辑、称重处理、模拟量转换、Modbus通讯、配方管理和变频器控制等方面的技术细节。文中强调了STL编程语言在实时控制中的灵活性和高效性,以及针对具体问题如称重漂移、通讯错误等的实际解决方案。通过优化硬件选型和软件编程技巧,实现了更高的配料精度和系统稳定性。 适用人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和控制系统集成的专业人士。 使用场景及目标:适用于需要精确控制物料输送和混合的工业环境,如化工、食品加工等行业。主要目标是提高生产效率,确保产品质量的一致性和稳定性。 其他说明:文中提供了大量具体的编程实例和调试经验分享,对于理解和掌握类似系统的开发具有重要参考价值。同时提醒读者关注现场实际情况,避免理论与实践脱节。
**基于协同过滤算法的体育商品推荐系统** **详细需求分析文档** --- **1. 引言** **1.1 目的** 本需求分析文档旨在详细描述基于协同过滤算法的体育商品推荐系统的功能、性能、数据及安全需求,为系统设计、开发和测试提供依据。 **1.2 适用范围** • 适用于电商平台、体育用品商城等需要个性化推荐功能的系统。 • 适用于产品经理、开发团队、测试团队及业务方。 **1.3 术语定义** | 术语 | 定义 | |------|------| | 协同过滤(CF) | 基于用户历史行为(如评分、购买、浏览)计算用户或商品相似度,进行个性化推荐。 | | 用户相似度 | 衡量不同用户偏好的相似程度,用于基于用户的协同过滤(User-based CF)。 | | 商品相似度 | 衡量不同商品被同一用户偏好的相似程度,用于基于商品的协同过滤(Item-based CF)。 | | 冷启动问题 | 新用户或新商品因缺乏历史数据而难以推荐的问题。 | | Top-N推荐 | 系统向用户推荐最可能感兴趣的N个商品。 | --- **2. 系统功能需求** **2.1 用户管理模块** | 功能 | 详细描述 | |------|---------| | 用户注册/登录 | 支持邮箱、手机号、第三方账号(微信、Google)登录。 | | 用户画像 | 记录用户基本信息(性别、年龄、运动偏好)。 | | 行为数据采集 | 记录用户浏览、收藏、购买、评分等行为,用于推荐计算。 | | 偏好设置(可选) | 允许用户手动调整推荐偏好(如“更喜欢篮球类商品”)。 | **2.2 商品管理模块** | 功能 | 详细描述 | |------|---------
程序设计语言基础JAVAWEB_Java项目经验[2025网盘版.备考复习]
内容概要:本文详细解析了一台老旧三边封制袋机的控制系统,重点介绍了松下FP-XH系列PLC与威纶通MT8102iE触摸屏的组合应用。文章首先探讨了PLC中的伺服控制程序,包括脉冲输出、速度控制、加减速参数设置以及伺服同步逻辑。接着分析了触摸屏的温度控制界面,涉及Modbus RTU协议的使用、温度设定值的传输方式及其常见错误。此外,文中还讨论了中英文切换机制、报警处理程序以及一些隐藏的功能和调试技巧。通过对这些技术点的深入剖析,揭示了老工程师们在实际应用中的经验和智慧。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是熟悉PLC编程和触摸屏开发的专业人士。 使用场景及目标:帮助读者理解和优化类似设备的控制系统,提高设备性能和稳定性。具体应用场景包括但不限于:改进现有设备的控制逻辑、排查和修复系统故障、提升生产效率和产品质量。 其他说明:文章提供了大量实际案例和调试经验,对于新手来说是非常宝贵的学习资料。建议读者在实践中结合这些经验和技巧进行尝试和验证。
系统名称:基于BS的公司员工考勤管理系统 技术栈:JSP、B/S体系结构、MySQL数据库、Eclipse开发工具 系统功能:管理员功能:个人资料管理、上班时间公告管理、请假管理、出差管理、差费报销管理、考勤管理、日常出勤管理、员工统计和请假统计;部门经理功能:个人资料管理、上班时间公告管理、请假管理、出差管理、差费报销管理、考勤管理、日常出勤管理;一般员工功能:个人资料管理、上班时间公告管理、请假管理、出差管理、差费报销管理、考勤管理、日常出勤管理 摘要:软件和系统的产生,从表面上来看是方便了某一行业和某一行业的用户,其实是从本质上来说是提高了社会的进步。就拿我们常见的出行而言,滴滴出行看似是为了打车和出行的人方便,但其实通过另外一种程度上来说,可以通过软件应用的调度和发展来为社会、城市出行的发展做出巨大的贡献。我们国家从最早的中国制造业演变到现在的“智造”,就是因为有软件信息系统的价值,能够将一些智慧的因素加入到制造的过程当中,而这一点就是软件系统来改变生产和现实的需求。在计算机时代日益发展的今天,计算机网络正快速融入这个社会的每一个领域。在互联网迅速普及的大背景下,建立自己的互联网技术的员工考勤系统已经成为各级各类企业的共同选择,互联网技术的员工考勤系统已经成为企业人力资源部门管理员工考勤的最为重要的途径之一。相比于以前的考勤模式,很多都是传统的人员签到的方式。这样的方式对于及时有效的管理员工考勤来说是非常困难的。针对以上所提出的这些问题,我们希望能够使用互联网的技术来进行问题解决。开发出一款能够基于互联网技术的企业员工考勤系统无论是对于企业人力资源管理部门来说还是对于员工来说都是一件非常重要的事情。本文还是使用JSP的方式来 进行管理的,但在系统建设过程当中也考虑了许许多多信息安全的保护。
Win10下基于RMBG‑2.0纯净官方源码包的部署及调用实践,以VSCode+Python分别演示了按CPU模式及GPU(CUDA)模式部署调用
微信小程序we重工校园论坛demo完整源码下载
中职语文《一碗清汤荞麦面》教学设计.docx
微信朋友圈导出WechatMoments-0.0.2-Green
demo 20250422
内容概要:本文详细介绍了西门子S7-1200 PLC在新能源浆料搅拌控制系统中的应用,涵盖配料系统、模拟量转换、PROFIBUS通讯、配方控制、变频器控制以及高速计数器的应用。文中不仅提供了具体的编程实例,如物料分配与搅拌控制逻辑、模拟量处理、PROFIBUS通讯监控、配方管理和变频器控制等,还分享了许多实际项目中的经验和技巧,如急停信号优先级处理、滤波算法优化、通讯字节序转换、温度补偿算法等。此外,文章还讨论了硬件选择和搭配的心得体会,强调了各组件之间的协同工作。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是熟悉PLC编程和新能源行业的从业者。 使用场景及目标:适用于新能源浆料生产设备的设计、安装、调试和维护。主要目标是帮助工程师掌握西门子S7-1200 PLC在复杂生产工艺中的应用方法,提高生产效率和产品质量。 其他说明:文章结合了大量的实际案例和编程代码片段,有助于读者更好地理解和应用于实际工作中。同时,文中提到的一些常见问题及其解决方案也为后续项目提供了宝贵的参考资料。
内容概要:本文详细介绍了施耐德电机调零的方法及其背后的原理。首先,文中列出了调零所需的工具,包括西克读写器、自研Excel计算工具以及线性电源。接着,文章分三个阶段阐述了调零的具体步骤:数据提取、Excel计算和暴力写入。每个阶段都有详细的代码示例和技术细节,如西克协议的读写指令、Excel公式的应用以及写入新零点值的操作。此外,作者还分享了一些实战经验和注意事项,比如线性电源的使用、编码器的温度补偿系数、以及避免常见错误的方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对施耐德电机调零感兴趣的读者。 使用场景及目标:适用于需要进行施耐德电机调零的专业人士,帮助他们提高调零效率和准确性,减少因零点偏差带来的电机性能问题。 其他说明:文章提供了丰富的实战经验和技巧,不仅有助于解决具体的技术难题,还能启发读者深入理解电机调零的原理。同时,文中提到的工具和代码可以在GitHub上下载,方便读者实践。
内容概要:本文详细介绍了基于SSM框架(Spring + SpringMVC + MyBatis)和MySQL数据库的图书馆预约选座系统。系统分为管理员、教师和学生三种角色,通过自定义注解实现权限控制,确保不同角色只能访问相应功能。针对座位预订这一核心功能,系统采用了乐观锁和事务管理来处理并发问题,确保座位状态的一致性和准确性。此外,系统利用MyBatis的动态SQL实现灵活的查询功能,并通过WebSocket实现实时座位状态更新。为了提高用户体验,系统还引入了验证码、定时任务清理过期预约等功能。最后,文章讨论了一些常见的开发陷阱及其解决方案,如时间冲突校验、批量导入学生信息等。 适合人群:具备一定Java开发经验的研发人员,尤其是对SSM框架有一定了解的开发者。 使用场景及目标:适用于需要开发类似预约系统的团队,帮助他们理解和掌握SSM框架的最佳实践和技术细节,从而更好地应用于实际项目中。 其他说明:文中提供了大量代码片段和实现细节,有助于读者深入理解各个功能模块的工作原理。同时,文章强调了业务逻辑与技术实现相结合的重要性,鼓励开发者在实践中不断优化系统性能和用户体验。
看图找茬找不同小程序游戏源码,模块功能介绍:一共有2510关, 达到高级后会随机出现关卡;一共7个能量, 每闯关一次扣除一个能量值, 看激励视频可以获得一个能量值; 金币获取: 段位升级 或者 观看激励视频, 闯关提示扣除10个金币;点击段位图标可以查看段位升级列表; 开始闯关: 扣除一个能量值, 提示只能使用一次. 闯关失败后可以延长60s; 好友对战: 邀请您的好友,实时对战, 多支持8人同时对战;开通流量主后 会有横幅,激励视频,插屏广告, 只需要后台填写广告id, 一切的一切都自动化出现更多游戏, 可以让您能给其他小程序导量裂变, 分享模块. 有分享获取能量, 好友助力, 邀请好友 获得能量和金币,
内容概要:本文详细介绍了基于Qt5.9和QCustomPlot开发的数据可视化工具。主要内容涵盖数据加载(Excel和XML)、数据展示(多曲线展示、多窗口同步操作、阈值线计算)、属性面板设置(曲线样式调整)和窗口布局等方面。文中不仅提供了具体的代码实现,还讨论了代码的扩展性和性能优化措施。该工具能够高效地处理和展示多种数据源,并提供丰富的用户交互功能。 适合人群:具备一定Qt开发经验的程序员,尤其是从事数据可视化工作的开发者。 使用场景及目标:适用于需要将Excel和XML等常见数据格式快速转化为动态曲线图的应用场景。主要目标是提高数据处理和可视化的效率,增强用户体验。 其他说明:文中提及的技术细节和代码片段有助于开发者更好地理解和掌握QCustomPlot的高级用法,同时也为后续的功能扩展提供了指导。