主要编码规范

news/2025/10/3 23:48:59/文章来源:https://www.cnblogs.com/sf2304/p/19125150
在格式规范上,统一用 4 个空格进行缩进,坚决禁用 Tab 键,运算符、逗号两侧也必须加上空格,比如错误的写法 “for (int i=0;i<10;i++){sum+=i;}”,要改成 “for (int i = 0; i < 10; i++) { sum += i; }” 才符合要求。同时,单行代码长度不能超过 80 字符,遇到长表达式,要在低优先级运算符处换行,且运算符放在新行之首,像 “int result = (a + b * c) - (d /e + f);” 就可以拆成 “int result = (a + b * c) - (d /e + f);” 这样的形式,另外函数之间、逻辑块之间还要用 1 个空行分隔开。大括号的位置也有明确规定,左大括号要与语句同行,右大括号单独占行并对齐,比如 “if (score > 60) { System.out.println ("及格"); }” 才是正确的,而像 “if (score > 60) { System.out.println ("及格"); }” 这样左大括号单独占行的写法则是错误的。
命名规范同样关键,好的命名能让代码实现 “自注释”。像类和接口采用大驼峰命名法,且名称要用名词,比如 “StudentScore”;方法用小驼峰命名法,以动宾短语为主,准确表达功能,像 “calculateAverage ()”;变量也使用小驼峰命名法,用名词命名,例如 “mathScore”;常量则要求全大写,单词之间用下划线连接,比如 “MAX_SCORE”。这里还要特别提醒,命名时千万不要用拼音或无意义缩写,“xsFenShu”(学生分数)不如 “studentScore” 清晰,“tmp” 也不如 “tempResult” 易懂,这些都是需要避免的坑。注释规范方面,核心是既要 “说清” 又不 “废话”。每个.c 或.h 文件都必须加头部注释,包含文件名、作者、功能、创建时间以及历史修改记录等信息,比如 “/* * 文件名:score_calculator.c * 作者:张明(2023 级计科 2 班) * 功能:计算学生平均分与排名 * 创建时间:2025-09-10 * 历史修改:2025-09-15 修复负数分数处理 bug /” 这样的格式。每个函数前也要加上注释,说明函数的功能、参数含义以及返回值情况,例如 “/* * 计算班级平均分 * @param scores 学生分数数组 * @param count 学生人数 * @return 平均分(保留 1 位小数) */double getAverage (int [] scores, int count) { ... }”。代码内的注释则只需要给复杂逻辑添加,避免 “废话注释”,像 “i++;//i 自增 1” 这样的注释就完全多余,但 “// 跳过缺考学生(分数为 - 1) if (scores [i] == -1) continue;” 这样的注释就很有必要,能帮助理解代码逻辑。规范不止于格式,更要兼顾代码质量,这就涉及到实战中的核心原则。首先是单一职责原则,一个函数只做一件事,比如 “getScoreAndRank ()” 就不如拆成 “getScore ()” 和 “getRank ()” 两个函数,这样后续修改时会更灵活。其次是变量安全原则,变量必须初始化,避免使用未赋值的变量,而且局部变量和全局变量不能重名,我之前就曾因为 “int sum;” 未初始化,导致程序结果随机变化,踩过这样的坑。最后是函数精简原则,函数长度要控制在 200 行以内,参数不超过 6 个,如果参数太多,就用结构体封装,比如把 “void printInfo (int id, char* name, int age)” 改成 “void printInfo (Student student)”。光靠手动检查规范很容易遗漏问题,我们还能用到不少实用的规范检查工具。对于 C 语言,用 “Clang-Format” 来格式化代码,“Cppcheck” 则能检查出未初始化变量等问题;Java 和 Python 开发时,在 IDEA 或 VS Code 里安装 “Checkstyle” 插件,就能实时标红不规范的代码;还有通用的 “Prettier” 工具,在提交作业前用它统一格式,能避免因缩进、空格等小问题丢分。刚开始接触这些规范时,我还觉得很麻烦,但后来总结了几个小技巧,慢慢就从 “抗拒” 变成了 “习惯”。第一个技巧是把规范做成 “Checklist”,每次作业提交前,对照着检查缩进是否正确、命名是否规范、注释是否齐全;第二个技巧是模仿优秀代码,平时多看教材或开源项目的代码风格,比如学习 Java 时参考《阿里巴巴 Java 开发手册》入门版;第三个技巧是组队互查,和项目队友互相挑错,这样比自己单独检查效率更高。编码规范就像写字的笔顺 —— 刚开始觉得束缚,熟练后会让你写得又快又好。现在我写代码时,不用刻意想规范也能自然遵守,调试效率比上学期高了一倍。对编程新手来说,不用追求一步到位,但至少要先把格式、命名、注释这三个基础抓好。毕竟,能被别人轻松看懂的代码,才是有价值的代码呀~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设源代码上传深圳网站制作的公司排名

一&#xff1a;OpenCV透视变换的概念 仿射变换(affine transform)与透视变换(perspective transform)在图像还原、图像局部变化处理方面有重要意义。通常&#xff0c;在2D平面中&#xff0c;仿射变换的应用较多&#xff0c;而在3D平面中&#xff0c;透视变换又有了自己的一席之…

南通外贸网站推广wordpress oss不显示

一、背景说明 1、创建一个新用户&#xff1a;test_user。 2、该用户登录后&#xff0c;默认目录为&#xff1a;/opt/project&#xff0c;且仅可操作该目录。 3、该用户需要jdk的执行权限。 4、该用户需要nginx的使用权限。 5、设&#xff1a; jdk目录为&#xff1a;/opt/jdk/jd…

全球网站域名微网站建设及微信推广方案ppt

一、首先讲一下TCP的由来 最开始&#xff0c;人们考虑到将网络信息的呼唤与回应进行规范&#xff0c;达成一种公认的协议&#xff0c;就好像没有交通规则的路口设定交通规则。 人们设计出完美的OSI协议&#xff0c;这个协议包含七个层次由下到上分别是&#xff1a; 物理层&…

铜川商城网站建设查看网站开发

简介 ArrayList类示一个可以动态修改的数组&#xff0c;与普通数组的区别是它没有固定大小的限制&#xff0c;可以添加和删除元素。 适用情况&#xff1a; 频繁的访问列表中的某一元素只需要在列表末尾进行添加和删除某些元素 实例 ArrayList 是一个数组队列&#xff0c;提…

苏州网络公司建网站教育培训网站建设方案

1、问题 spring-boot整合mybtais执行insert语句时&#xff0c;主键id为长文本数据。 2、分析问题 1)数据库主键是否自增 2&#xff09;数据库主键的种子值设置的多少 3、解决问题 1&#xff09;数据库主键设置的时自增 3&#xff09;种子值是1 所以排查是数据库的问题 4、继…

建成局网站建设网站单子

1. 问题描述 如题&#xff0c;将PyTorch Tensor类型的变量转换成numpy时报错&#xff1a; RuntimeError: Cant call numpy() on Variable that requires grad. Use var.detach().numpy() instead. 2. 解决办法 出现这个现象的原因是&#xff1a;待转换类型的PyTorch Tensor变…

ue5.1最新安装的时候关于重装vs2022版本的问题

ue5.1最新安装的时候关于重装vs2022版本的问题ue5.1最新安装的时候,ue已经出了5.6了,vs也更新了好几个版本了,关于重装vs2022版本的问题 这里每次使用visual studio 的setup工具选择删除最新的vs版本然后D:\softdir\…

US$88 BW9 Key Clamp SN-CP-JJ-15 for BMW Motor Keys for SEC-E9 Key Cutting Machine

BW9 Key Clamp SN-CP-JJ-15 for BMW Motor Keys for SEC-E9 Key Cutting Machine Package list:1 x BW9 Key Clamp SN-CP-JJ-15 for BMW Motor Keys for SEC-E9 Key Cutting Machine Pictures of BW9 Key Clamp SN-CP-…

Docker 安装配置 OnlyOffice - Higurashi

参考: Docker 安装配置 OnlyOffice Installing ONLYOFFICE Docs for Docker on a local server步骤 1:拉取 OnlyOffice Docker 镜像 首先,使用以下命令从 Docker Hub 拉取 OnlyOffice Document Server 镜像: sudo …

什么是计算数学?

什么是计算数学?计算数学是一门研究如何利用计算机有效地解决数学问题的学科。它不仅仅是“用计算机做计算”,更核心的内容是:为数学问题设计算法:将一个复杂的数学问题(如求解一个微分方程)转化为一系列计算机可…

数论中的欧拉函数

欧拉函数(Eulers totient function),记作 \(\phi(n)\),是数论中一个非常重要的函数。它的定义很简单: 对于正整数 \(n\),\(\phi(n)\) 表示小于等于 \(n\) 且与 \(n\) 互质的正整数的个数。\(\phi(1) = 1\)(只有…

哪个网站做职客比较好 比较正规网页模板psd素材

前言最近 Python 之父 Guido van Rossum(龟爷)终于在 Python 官方邮件组落实了 Python 2.7 的终焉之日(EOL)。说的是 Python 2.7 的 EOL 日期最终确定为 2020 年 1 月 1 日&#xff0c;之后不会有任何更新&#xff0c;包括源码的安全补丁。所以兼容Python3已经可以说非常必要了…

wordpress类似网站qq空间网站是多少

第 28 篇原创文章机器学习发展到现在&#xff0c;已经积累了非常多的文章&#xff0c;特别是深度学习火起来后&#xff0c;每年新增加的论文非常多&#xff0c;如果需要研究某个领域&#xff0c;不仅需要阅读这个领域经典的论文&#xff0c;也必须时刻关注最新的学术进展&#…

计算机毕业设计作品网站游戏网站设计风格有哪些

机器学习的理论部分学习知识点比较乱且杂。我这里通过几篇文章&#xff0c;简单总结一下自己对机器学习理论的理解&#xff0c;以防遗忘。第一篇文章主要概述了机器学习的基本任务以及一个常用的降维方法&#xff0c;主成分分析。 机器学习的基本任务 机器学习能实现许多不同…

悬荡悟空:一个异想天开的计算神话及其硬件证言

悬荡悟空:一个异想天开的计算神话及其硬件证言 ——Ai元人文 他们都说这是异想天开。 他们说,计算只有确定性的输入与输出, 而“悬荡”,是逻辑的叛逆,是资源的浪费。 他们说,“悟空”是玄学的幽灵,永远无法被电…

整站优化和关键词优化的区别云南省新农村建设网站

每天学习一个Linux命令之netstat netstat命令在Linux系统中是一个非常强大且常用的网络工具&#xff0c;它用于显示活动的网络连接、路由表信息、以及网络接口统计数据。通过netstat命令&#xff0c;我们可以了解到与我们的Linux系统相关的网络活动信息&#xff0c;进而帮助我…

php用什么做网站服务器出名的网络公司有哪些

Mediapipe官方文档 Mediapipe框架学习之一——Win10安装Mediapipe环境 Mediapipe框架学习之二——Android SDK and NDK 配置 Mediapipe框架学习之三——构建 MediaPipe 的 Android aar 包 Mediapipe框架学习之四——利用 Mediapipe aar 包&#xff0c;在AS中构建基于 Media…

江苏中南建设投标网站在线制作二维码生成器

Git 一、Git 本地仓库1. 本地仓库的创建2. 配置 Git3. 工作区、暂存区、版本库4. 添加文件5. 查看 .git 文件6. 修改文件7. 版本回退8. 撤销修改9. 删除文件 二、分支管理1. 理解分支2. 创建分支3. 切换分支4. 合并分支5. 删除分支6. 合并冲突7. 分支管理策略8. bug 分支9. 强制…

何为“类”?(Java基础语法) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025对外AI服务合规指南:6步构建可审计的法律法规遵循体系

生成式AI在客服、营销、咨询等场景的快速渗透,正推动企业对外AI服务进入爆发期。但伴随2023年至2025年《生成式人工智能服务管理暂行办法》《深度合成管理规定》《网络安全法》等法规的密集出台,企业面临的已非单一条…