千家信息网

怎么编写高质量的web开发代码

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本文小编为大家详细介绍"怎么编写高质量的web开发代码",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么编写高质量的web开发代码"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知
千家信息网最后更新 2026年11月04日怎么编写高质量的web开发代码

本文小编为大家详细介绍"怎么编写高质量的web开发代码",内容详细,步骤清晰,细节处理妥当,希望这篇"怎么编写高质量的web开发代码"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Spring、Apache Common等源码是一件赏心悦目的事情,究其原因,无外两点:

1)代码质量非常高;

2)命名特别规范(这可能跟老外的英语水平有关)。

要写高质量的代码,不是一件容易的事,需要长年累月的锻炼,是一个量变到质变的过程,但要写好命名,只需要有比较好的英语语法基础和一种自我意识即可轻松达到。本博文将会结合本人的开发经验,总结出若干命名规则,这些命名规则纯属个人的使用习惯,不代表是一种理想的规则,在这里列举出来,供大家交流讨论。

1.切忌使用没有任何意义的英语字母进行命名

for(int i=0; i<10; i++) {
...
}

这是在很多教Java基本语法的书上常见的代码片断,作为教学材料,这样写无可厚非,但作为真正的代码编写,程序员必须要养成良好的习惯,不要使用这种没有任何含义的命名方式,这里可以使用"index"。

2.切忌使用拼音,甚至是拼音首字母组合

cishu =5; // 循环的次数
zzje = 1000.00 // 转账金额

笔者在做代码检查的时候,无数次遇到过这样的命名,使人哭笑不得

3.要使用英文,而且要使用准确的英语,无论是拼写还是语法

  • 名词单数,必须使用单数英文,如Account、Customer。

  • 对于数组,列表等对象集合的命名,必须使用复数,而且***按照英文的语法基础知识使用准确的复数形式,如 List accounts、Set strategies。

  • 对于boolean值的属性,很多开发人员习惯使用isXXX,如isClose(是否关闭),但这里有两点建议:1)***不要带"is",因为 JavaBean的规范,为属性生成get/set方法的时候,会用"get/set/is",上面的例子,生成get/set方法就会变成 "getIsClose/isIsClose/getIsClose",非常别扭;2)由于boolean值通常反映"是否",所以准确的用法,应该是是 用"形容词",上面的例子,最终应该被改为 closed,那么get/set方法就是"getClosed/isColsed/setClosed",非常符合英语阅读习惯。

4.方法名的命名,需要使用"动宾结构短语"或"是动词+表语结构短语"

笔者曾看到过千奇百怪的方法命名,有些使用名词,有些甚至是"名词+动词",而且,如果宾语是一个对象集合,还是***使用复数:

createOrder(Order order) //good
orderCreate(Order order) //bad
removeOrders(List orders) //good
removeOrder(List order) //bad

5.对于常见的"增删改查"方法,命名***要谨慎:

  • 增加:最常见使用create和add,但***根据英语的语义进行区分,这有助于理解,create代表创建,add代表增加。比如,要创建一个 Student,用createStudent要比用addStudent好,为什么?想想如果有个类叫Clazz(班级,避开Java关键字),现在要 把一个Student加入到一个Clazz,Clazz很容易就定义了一个 addStudent(Student student)的方法,那么就比较容易混淆。

  • 修改:常见的有alter、update、modify,个人觉得modify最准确。

  • 查询:对于获取单个对象,可以用get或load,但个人建议用get,解释请见第7点的说明,对于不分条件列举,用list,对于有条件查询, 用search(***不要用find,find在英文了强调结果,是"找到"的意思,你提供一个"查询"方法,不保证输入的条件总能"找到"结果)。

  • 删除:常见的有delete和remove,但删除建议用delete,因为remove有"移除"的意思,参考Clazz的例子就可以理解,从班级移除一个学生,会用removeStudent。

6.宁愿方法名冗长,也不要使用让人费解的简写

笔者曾经遇到一个方法,判断"支付账户是否与收款账户相同",结果我看到一个这样的命名:

checkIsOrderingAccCollAccSame(...) // 很难理解,我马上把它改为:
isOrderingAccountSameAsCollectionAccount(...) // 虽然有点长,但非常容易阅读,而且这种情况总是出现得比较少。

7.如果你在设计业务系统,***不要使用技术化的术语去命名

笔者曾经工作的公司曾经制订这样的命名规则,接口必须要以"I"开头,数据传输对象必须以"DTO"作为后缀,数据访问对象必须以"DAO"作为后 缀,领域对象必须以"DO"作为后缀,我之所以不建议这种做法,是希望设计人员从一开始就引导开发人员,要从"业务"出发考虑问题,而不要从"技术"出 发。

所以,接口不需要非得以"I"开头,只要其实现类以"Impl"结尾即可(注:笔者认为接口是与细节无关的,与技术无关,但实现类是实现相关的,用 技术化术语无可口非),而数据传输对象,其实无非就是保存一个对象的信息,因此可以用"**Info",如CustomerInfo,领域对象本身就是业 务的核心,所以还是以其真实名称出现,比如Account、Customer,至于"DAO",这一个词来源于J2ee的设计模式,笔者在之前的项目使用"***Repository"命名,意味"***的仓库",如AccountRepository.

关于"Repository"这个词的命名,是来源于Eric Evans的《Domain-Driven Design》一书的仓库概念,Eric Evans对Repository的概念定义是:领域对象的概念性集合,个人认为这个命名非常的贴切,它让程序员完全从技术的思维中摆脱出来,站在业务的 角度思考问题。说到这里,可能有人会反驳:像Spring、Hibernate这些优秀的框架,不是都在用"I"作为接口开头,用"DAO"来命名数据访 问对象吗?没错!但千万别忽略了语义的上下文,Spring、Hibernate框架都是纯技术框架,我这里所说的场景是设计业务系统。

8.成员变量不要重复类的名称

例如,很多人喜欢在Account对象的成员变量中使用accountId,accountNumber等命名,其实没有必要,想想成员变量不会鼓孤立的存在,你引用accountId,必须是account.accountId,用account.id已经足够清晰了。

读到这里,这篇"怎么编写高质量的web开发代码"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

对象 方法 代码 开发 技术 笔者 英语 常见 高质量 业务 个人 建议 接口 数据 规则 语法 英文 设计 人员 代表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司起名 广州百单互联网科技有限公司 科技赋能下的互联网金融 互联网电商科技 天津摩尔互联网科技 国外互联网科技网站 居家互联网科技有限公司 成都仁贤领冠互联网科技有限公司 重庆威客帮互联网科技 华服互联网科技官网 互联网大会黑科技排名 杭州壁岐互联网科技有限公司 恒生互联网科技指数跳水 保险科技服务互联网营销体系 四川互联网展示科技馆设计 工业互联网科技成果转化 新氧科技和美国互联网有关系吗 江苏互联网智能科技产品出厂价 求路客互联网科技电话 三亚科技创新互联网基地 北京互联网科技 上海喔噻互联网科技 科技类的互联网平台 深圳前海聚择互联网科技有限公司 广州优美互联网科技 天津腾达互联网科技有限公司 黑科技 体验场景 互联网大会 好易买互联网科技 互联网科技博主张洲 科技互联网专业工作会议发言稿
0