ITPub博客

首页 > IT职业 > IT职场 > 什么样的代码称得上是好代码?

什么样的代码称得上是好代码?

原创 IT职场 作者:Java大蜗牛 时间:2018-07-17 15:05:30 0 删除 编辑

朋友指着自己写的代码问:你看我的代码写的怎么样,有没有问题,哪里需要修改?

以最宽松的标准讲,只要代码没有逻辑错误,没有严重性能问题,就没有问题,但我知道,他问得不是这些,而是问代码有没有可以更进一步优化的可能,我看他的代码做了清晰的分层,提取了基类,使用了模板模式,总体上算是不错了。


问题来了, 究竟什么样的代码算得上是好代码呢?


面对这个问题,可能大多数程序员首先想到的是:高内聚,低耦合,高效率,已维护,易扩展。这些是对的,但这只能算是正确的废话,因为对大部分IT从业者(尤其是刚入行,缺乏足够知识和经验的新人)来说,并不能通过一个具体的标准去衡量。


抛开框架和具体技术细节,单纯从编码的角度讲,依我的观点:

面向对象编程,考察的是抽象化的能力。


第一层级的抽象是类。

从实际业务需求入手,将现实世界中的事物,抽象成类,通过类,对象之间的相互调用,完成业务需求,这是面向对象编程最基础的抽象的能力。


第二层级的抽象是基类。

发现类之间的共性,提取基类,抽象类,基类负责处理共性的逻辑,子类负责处理个性的逻辑,从而实现代码的复用,逻辑更清晰,代码更易于维护。


再高一层级的抽象是接口。

接口仅仅定义了一组规范标准,而不包含任何实现逻辑,因此,接口比抽象类的适用范围更广。面向对象开发原则中的“依赖倒置原则”,简单来说,就是要面向接口编程。


更高一层级的抽象是泛型。

为什么将泛型放到比基类和接口更高一层级,因为基类和接口,都只是对其继承者的单一类型的抽象,而泛型,是对多个相互协作类型的抽象,泛型不仅仅是对类型的抽象,还抽象出了多个类型间相互协作行为,正确的使用泛型,能够让代码变得更精炼,逻辑更严谨规范。


好了,以上四个层级,也是简单的给代码划分等级,看看自己写的代码,现在处于哪一个层级呢。


后记

当然,并非所有的代码都需要提取基类,定义接口,凡事都有一个适用范围。

以上关于 抽象化 的观点,算是自己多年从事软件开发的一点小小的感悟,希望对你有一定帮助。

更为大家广泛接受的,区分好代码的标准,可以参考“ 面向对象开发原则 ”,因为有太多文章写这方面的内容,这里不做展开,有兴趣的朋友可以自行搜索。

觉得有收获的话大家也可以加 Java高级交流 群: 725633148  里面会分享一些资深架构师录制的视频录像:有 Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31545684/viewspace-2157981/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-07-11

  • 博文量
    127
  • 访问量
    238917