程序员进阶:优雅的代码对于一个架构师的重要性

原文作者:JavaSpring高级进阶
原文链接:https://www.toutiao.com/i6715734748435579399/

13638982-d7e2f2c2e1aca334

欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 微信公众号:慕容千语的架构笔记。欢迎关注一起进步。
lison:复旦大学工程硕士,专注技术十年,产品控、代码控,拥有丰富的项目经验,主持研发了多个成功上线的大型互联网项目。热爱互联网,热衷于各种web技术,精通JAVA、J2EE和前端开发,擅长互联网高并发、高可靠架构设计,有丰富的实战经验。愿意和他人分享自己对技术的理解和感悟,讲课逻辑清晰,生动幽默。

什么是臃肿的代码

臃肿代码表征

  1. 业务代码与技术代码耦合
  2. 主业务和增值业务代码耦合
  3. 多余的依赖关系

带来的问题

  1. 可读性差
  2. 可复用性差
  3. 可维护性差
  4. 易变更性差
  5. 运行期依赖

关于注解的那些事

什么是注解?

注解(annotation):元数据,一种代码级别的说明;简单的说,注解如同一张标签;

  • 解读一:注解是一个携带数据的附属品;
  • 解读二:在特定的场景由外部解析产生作用
13638982-096ddf9c2d6d394b

比如说王思聪他的标签就是:

13638982-9f014fdcc9e9213a
程序员进阶:优雅的代码对于一个架构师的重要性

通过代码了解注解的本质

关于注解的定义 — 元注解

1,@Documented –注解是否将包含在JavaDoc中

2,@Retention –什么时候使用该注解

可选值为:source、class、runtime,

3,@Target – 注解用于什么地方

  • TYPE:表示可以用来修饰类、接口、注解类型或枚举类型;
  • PACKAGE:可以用来修饰包;
  • PARAMETER:可以用来修饰参数;
  • ANNOTATION_TYPE:可以用来修饰注解类型;
  • METHOD:可以用来修饰方法;
  • FIELD:可以用来修饰属性(包括枚举常量);
  • CONSTRUCTOR:可以用来修饰构造器;
  • LOCAL_VARIABLE:可用来修饰局部变量

4,@Inherited – 是否允许子类继承该注解

关于注解的解析

要获取类方法和字段的注解信息,必须通过Java的反射技术来获取 Annotation对象,因为你除此之外没有别的获取注解对象的方法;

谈到这里大家就得思考一个问题

阿里面试问题:对于一个http请求,为什么Spring MVC 能准确的找到对应controller的某个方法进行处理?

臃肿代码美容手术的设计原则是什么?

13638982-16d9a38359726f89

单一职责原则:一个类或者一个接口只负责唯一项职责,尽量设计出功能单一的接口;

技术方案:Spring AOP增强 + 自定义注解

现学现用让代码妙笔生花

  1. 创建自定义的注解
  2. 将注解加在需要简化的方法上
  3. 增加配置,编写切面类
  4. 简化业务代码
  5. 运行代码进行验证

EL表达式解析过程

13638982-8e1fb670197aefae
13638982-ade4e43e0234a1be

阶段知识点复盘

  1. 认识到丑陋代码的特征以及危害性;
  2. 耦合的本质;
  3. 注解的本质;
  4. Spring MVC源码部分解读;
  5. 优雅系统的设计原则,单一职责原则;
  6. 自定义注解结合AOP,对代码进行解耦

Java面试核心笔记

Spring原理

13638982-9b483627af1b3d1c

微服务

13638982-ebc9dc2ec11e317a

由于篇幅限制,还有关于Java基础、JVM、Java多线程并发、Java集合、Netty、RabbitMQ、kafka、数据结构、算法、数据库等就不一一展示了,如果对这份核心知识感兴趣的朋友,以及优雅代码对于一个架构师的重要性讲解这节视频的可以看关注转发后台私信回复关键词【代码】获取原视频讲解,需要Java面试核心知识点笔记的可以转发后后台私信回复关键词【笔记】领取原文件获取方式。
欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 微信公众号:慕容千语的架构笔记。欢迎关注一起进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值