编写代码最应该做好的事情是什么?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day8)

简介: 编写代码最应该做好的事情是什么?(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day8)

备战2022春招或暑期实习,祝大家每天进步亿点点!Day8

本篇总结的是 《编写代码最应该做好的事情》,后续会每日更新~

关于《Redis入门到精通》、《并发编程》等知识点可以参考我的往期博客:《Redis从入门到精通》系列 《并发编程》系列

相信自己,越活越坚强,活着就该逢山开路,遇水架桥!生活,你给我压力,我还你奇迹!image.png1、简介

著名的图灵奖得主:尼古拉斯·沃斯,提出一个著名的等式:程序 = 算法 +数据结构。因此我们程序员应该花精力做好学好算法和数据结构,但是这并不是我们编写代码时最应该做好的事情;因为在99.99%的场景下,不需要我们来设计算法和实现数据结构(即便是一般的算法工程师也是如此)。


所以在实际开发中,我们编写代码最应该做好的事情是什么呢?

小捌认为是良好的命名规范和详细的代码注释,这两个看似简单的问题,但是想要做好真的太难太难了,以至于很多年老开发写的代码都会出现命名不规范,代码注释不全甚至没有注释的情况;因此这篇文章我们先来盘一盘Java程序员应该如何做好程序命名。


2、正文

2.1 目标


将Java程序的命名规范做好,需要达到的目标总结起来就只有四个字——望文生义。达到这个目标的命名能够让程序具有“自解释”的功能,仅仅从名字上就能理解某个包、类、方法、变量的含义,这样也可以缩减后续注释的工作量。这样的代码传阅给其他程序员时,也便于阅读和维护。


2.2 包


关于包名的命名有两个大致方向:


标准类库

用户类库

标准类库

在Java体系中,标准类库的命名涉及到java、javax等命名,这些命名是由定规范的人定的,因此人家想怎么玩就怎么玩,在核心类库rt.jar包下可以查看。

image.png除了包的前缀之外的其余部分,需要满足尽可能使用单个单词,比如time、security、math;也可以使用缩写,比如awt、io、sql。


不建议包名超过8个字母、不建议使用复数。



2.3 类


类由很多种,比如接口、抽象类、枚举类、普通类等等,这些类在命名上有相同点,也有不同点。


相同点:


类名统一使用驼峰命名法则(大驼峰),比如HttpClient、HttpResponse、HttpRequest

类名具有复数形式可以使用复数命名

禁止使用拼音,即便是国际通用的拼音命名,比如alibaba、youku也不建议出现在类名命名中

不同点:


接口命名一定要要言简意赅,这样的命名其实现类可以很好的包含接口的命名,比如Map、Set、List

枚举类必须使用Enum结尾

抽象类必须使用Abstract开头,比如AbstractMap、AbstractSet;也可以使用Base,比如BaseCalendar、BaseRowSet,建议使用Abstract。

2.4 变量


变量的命名遵守小驼峰命名,在名称中要体现具体的业务,描述变量的用途。千万不要学源码搞那些单个字母的命名,比如这种:image.png此外要注意变量名尽量不要使用is开头,比如isRemoved、isDeleted,因为这种命名往往在序列化场景中,被框架方向解析时错误的认为是removed和deleted,相信这种坑大家都踩过。最好的办法就是完全不用。


2.5 常量


常量就是在作用域内保持不变的值,常量一般用final关键字修饰。常量有很多种分别是全局常量、包内常量、类内常量、局部常量等等。


全局常量:(包内常量、类内常量都一样)

全局常量值得是访问修饰符为public,通常用public static final修饰,这种常量威力巨大,任何地方都可以访问,因此我们一定要把命名做好。


全局常量命名必须全部使用大写字母,如果是多个单词用下划线隔开,拿Java的BigDecimal来举例.

单个单词的常量:

image.pngimage.png

目录
相关文章
|
3月前
|
人工智能 架构师 NoSQL
24岁程序媛,二战考研失利、三无人员 ==> 最佳新人、优秀个人,讲讲我的技术成长之路
能力、格局、谋略、远见、耐心。灵魂的欲望是命运的先知,希望永远自信、洒脱、松弛、明媚、张扬;追随自己的内心、以喜欢的方式、往正确的方向前行,永远在路上,我甘之如饴! 持续精进Java领域相关技术,包括微服务、高并发、高可用、分布式、集群等等;希望能接触到更多更大的优质项目,逐渐成长为一名具备全栈思维的架构师,既能深入理解底层技术,又能把控全局架构;抽时间了解学习Go语言、人工智能、大模型等领域。 在探索中明晰后续的发展方向,形成自己的一套体系,成为主管、管理层乃至更高,不希望自己的上限只是程序员。
|
5月前
职场中的“奇葩”领导与同事:相处之道与成长之痛
职场中的“奇葩”领导与同事:相处之道与成长之痛
43 1
|
7月前
|
缓存 负载均衡 前端开发
【前端实习生备战秋招】—前端性能优化篇,建议收藏
【前端实习生备战秋招】—前端性能优化篇,建议收藏
|
消息中间件 NoSQL Java
做好这4点,面试嘎嘎猛~
做好这4点,面试嘎嘎猛~
59 0
|
程序员 项目管理
程序员成长第十九篇:要不要转管理岗?
程序员成长第十九篇:要不要转管理岗?
263 0
程序员成长第十九篇:要不要转管理岗?
|
开发者
学姐分享:在求职路上少走一些弯路
作者:悯缘,阿里巴巴,TEDx分享嘉宾
10439 0
学姐分享:在求职路上少走一些弯路
|
消息中间件 设计模式 Kubernetes
【面经分享】-一年工作经验阿里三面
【面经分享】-一年工作经验阿里三面
【面经分享】-一年工作经验阿里三面
|
SQL 缓存 NoSQL
冲刺金三银四,这份豪礼【面试锦囊】真舍不得给你们
大家好,我是小羽马上就是金三银四啦,最近有很多粉丝跟我交流关于面试方面的经验以及分享,也有部分是在准备今年的金三银四的春招。小羽也一直没出关于面试方面的文章,这篇就结合自己之前的面试经历以及...
189 0
冲刺金三银四,这份豪礼【面试锦囊】真舍不得给你们
|
网络协议 搜索推荐 JavaScript
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
171 0
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
|
设计模式 算法 程序员
程序人生 - 给IT新人的15点建议:苦逼程序员的辛酸反省与总结
程序人生 - 给IT新人的15点建议:苦逼程序员的辛酸反省与总结
145 0