上海seo网站优化/旺道seo工具
前言
最近代码的规范和书写成为许多公司的关注点, 因为一个设计感良好, 工整的代码, 才利于维护和阅读, 每次看到有了年头还乱糟糟的代码, 就仿佛看到一坨
最近看书有许多心得, 向公司大佬请教过后, 发现优雅的代码总是有几个共同点:
-
代码工整
这应该是最基本的点, 现在有很多IDE提供了代码整理功能
如:IDEA快捷键 Ctrl+Alt+L
-
代码简洁
在我的理解简洁就是,用最少的代码来实现功能,就是不要有多余的代码,但也不能过渡追求代码的数量, 该写的还是要写, 要考虑设计性和未来的变化。
前一阵在公司就发生了一件超出我认知范围的事, 我们老大在 check 代码的时候, 发现一个新来的小伙子 一个select方法写了将近300行代码, 当时老大说完 我们都蒙了 真想不出来他是怎么做到的, 后来我们老大 看着他改最后实现这个功能只用了 30多行代码。
还有一点就是不要过于追求简介, 有的同学喜欢Lambda, 能写的地方都要用上, 能链式调用我绝不接收变量, 但是我发现链式调用超过3个方法的时候, 可读性就会变得极差。
如这段代码, 懂得人懂, 不懂的人, 这尼玛就是天书啊
list.stream().distinct().collect(Collectors.toList()).forEach(System.out::println);
-
设计
设计在我看来 有关于现有功能实现的设计, 也要有对未来功能整合升级的设计, 在设计一个系统时, 目标应该是找到或创建某些类, 其中每个类都有具体的用途, 而且既不会太大(包含太多功能而难以复用), 也不会太小(不添加其他功能就无法使用)。如果类过于复杂,可以考虑将现有类拆分为更小的类。
在我们设计一个系统时, 就应该认识到程序开发其实是一种增量过程, 犹如人类学习一样, 这一点很重要。如果将项目视作一种有机的, 进化的生命体去培养, 那我们的项目就会越来越健壮 迅速, 反之一味地追求速度 快速见效, 那我们的代码就可能像一座危楼, 一碰就塌。
-
注释
注释分为两种:
信息注释: 信息注释就是 这个方法的作者信息, 创建时间, 入参返回值等。
功能注释: 这个方法的作用, 这个类的作用。
符合JDK注释规范的注释在IDE中鼠标悬浮在方法名上即可查看该方法的注释信息
-
命名
命名也是一个重要的问题, 好的命名可以增加可读性, 最好的命名就是见名知意。
英文命名把方法的中文名翻译成英文。
业务命名按照业务的拼音首字母来命名(一般用于包名 项目名 实体名)。
还有就是命名的书写规范:
-
工具
个人推荐Checkstyle因为上家公司使用的就是这个, 规范性真的很严格, 不符合规范连包都打不了。
Checkstyle可帮助程序员编写符合编码标准的 Java 代码。它使检查 Java 代码的过程自动化,从而使人们免于执行这项无聊(但很重要)的任务。这使其成为想要强制执行编码标准的项目的理想选择。
Checkstyle 是高度可配置的,可以支持几乎任何编码标准。 提供了支持Sun 代码约定、 Google Java 风格的示例配置文件 。
CheckStyle官网
其他博客:
代码规范利器-CheckStyle
代码规范利器-阿里代码规范插件
-
审美
其实审美这个就有点玄学了, 但是总有人会说, 代码如何写的优雅 如何令人赏心悦目但是这些词语都源自于美学, 但人类之间的审美通俗的说就是 看脸, 那代码的审美看什么呢, 代码又没有脸, 其实人类之间的审美很复杂的 身材 五官的比例 穿着 都是在审美条件之中的。
代码的审美在我的理解就是 比例和布局。
比例
关于代码的长度, 因为如果代码行过长的话, 这样查看起来就很麻烦, 查看代码需要不停的拖动, 而且代码一行长一行短也会造成视觉上不平衡, 影响美观。
还有就是每个人的显示器可能尺寸不同, 显示器大的人可能会把行代码写的长一些, 但是到了显示器小的电脑上就会出现过长的问题, 所以代码的每一行长度不宜过长。
根据我个人经验来看 每行代码的长度在 80 - 120 之间最为合理。
布局
空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。
方法的排序 方法可以按访问权限进行排序, public -> private 这样当其他人从public看到private方法时就可以停止观看, 因为private方法属于内部封装, 我们开发程序只需要关注public方法 或private权限之上的方法。
总结
其实在我看来代码规范现在没有具体的明确定义, 因为这个东西很像审美, 审美就会有趋势, 有潮流 但是基本的代码规范还是要有的, 但也不用刻意的追求, 因为潮流是没有尽头的。
有绝活才是王道, 能力 实力 影响力更重要, 有人会说JDK的源码不规范吗? 有人会说Spring的源码不规范吗?
可能会有 但在大部分人眼里 这些源码已经写的很好了, 我是觉得写的很好, 因为我就是那个大部分人