lison:复旦大学工程硕士,专注技术十年,产品控、代码控,拥有丰富的项目经验,主持研发了多个成功上线的大型互联网项目。热爱互联网,热衷于各种web技术,精通JAVA、J2EE和前端开发,擅长互联网高并发、高可靠架构设计,有丰富的实战经验。愿意和他人分享自己对技术的理解和感悟,讲课逻辑清晰,生动幽默。

什么是臃肿的代码

臃肿代码表征

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

带来的问题

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

关于注解的那些事

什么是注解?

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

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

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

通过代码了解注解的本质

关于注解的定义 — 元注解

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的某个方法进行处理?

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

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

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

现学现用让代码妙笔生花

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

EL表达式解析过程

阶段知识点复盘

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

评论区附详细视频讲解资料获取方式

Java面试核心笔记

Spring原理

微服务

由于篇幅限制,还有关于Java基础、JVM、Java多线程并发、Java集合、Netty、RabbitMQ、kafka、数据结构、算法、数据库等就不一一展示了,如果对这份核心知识感兴趣的朋友,以及优雅代码对于一个架构师的重要性讲解这节视频的可以看关注转发后台私信回复关键词【代码】获取原视频讲解,需要Java面试核心知识点笔记的可以转发后后台私信回复关键词【笔记】领取原文件获取方式。

不认识java代码_程序员进阶:优雅的代码对于一个架构师的重要性相关推荐

  1. Java程序员如何从码农晋升为架构师,你跟架构师的差别在哪里?

    一.如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理.jvm虚拟机原理.调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并发量. ...

  2. java程序员的浪漫代码_程序员的“硬核”浪漫

    Do an act of kindness. Help one person SMILE! 昨天是世界微笑日,是唯一一个庆祝人类行为表情的节日. 但有这么一群人,在大家眼中他们是不善表达.思维怪异,甚 ...

  3. java程序员可以只用windos吗_程序员要写多少代码 才能开发一个window操作系统

    开发一个window操作系统需要程序员写多少行代码呢? 微软的Windows系统是伴随我们已久的老朋友了,大多数人都是一代一代Windows的用上来,老用户几乎都形成一个共识,就是微软的系统有一代会很 ...

  4. 增删改查java代码_程序员:听说你正在为天天写增删改查代码而烦恼

    有相当多的一部分程序员一直都只接触业余应用的功能,天天写业务代码的程序员也被戏称为CURD程序员,CURD就是增(create).改(update).查(read).删(delete)的意思. CUR ...

  5. Java如何接手别人项目_程序员必备技能——怎样快速接手一个项目

    作为一个程序员,我们很少能从头到尾参与一个新项目的开发.如果你经常开发的是新项目,那你真是太幸福了. 更多的情况是半路进入一个项目组进行开发,或者是有其他同事离职了,之前由他维护的系统转交给你维护. ...

  6. 【连载】优秀程序员的45个习惯之39——架构师必须写代码

    架构师必须写代码 --   高效程序员的 45 个习惯之习惯39 "我们的专家级架构师Fred会提供设计好的架构,供你编写代码.他经验丰富,拿的薪水很高,所以不要用一些愚蠢的问题或者实现上的 ...

  7. java浪漫代码_程序员表白代码,用过的人都找到了对象...

    在情人节送给自己的女朋友玫瑰花, 对于程序员来说是不是太普通了呢? 为什么不试试让情人节变得更特别一些呢? 作为一名程序员, 可以用自己的技术创造出不一样的浪漫! 让你的女朋友眼前一亮,印象深刻. 这 ...

  8. java程序员拜年代码_程序员的新年祝福是什么样的?

    2019就要到来了, 马上要收到各种形形色色的新年祝福, 尽管有一些简单真诚的祝福语, 不过大多是千篇一律的罐头短信. 程序员作为一群高智商群体 在这辞旧迎新的时刻 怎么能一直玩那些老掉牙的梗呢! 你 ...

  9. java写一个简单的浪漫代码_程序员的浪漫弹窗表白,圣诞节给Ta惊喜吧(附源码,简单易学哦)...

    不要以为程序员都是木讷的,浪漫起来也会让很多妹子心动的.而程序员的表白方式也很不一般,通过一堆代码,无限释放浪漫.今天教给大家通过改写脚本语言,利用弹窗可充分自由发挥,用来表白或者恶搞都是不错的选择. ...

最新文章

  1. Python3 中的最大整数和最大浮点数
  2. mshflexgrid固定行对齐_放开那个空格键让我来,word对齐文字的四个方法
  3. Ubuntu宿主机与VMware中其他系统虚拟机的互通
  4. ESP32,使用gitee搭建 ESP-IDF 开发框架
  5. 安卓软件错误log_关于android程序的log错误信息的问题,请明白人看下吧,我是初学者,新建的android项目,一个代码都没改过...
  6. WCF与AJAX编程开发实践(1):AJAX基础概念和纯AJAX示例
  7. 提升漏洞修复率,DevSecOps真的很有一套
  8. 【MySQL】Linux下登录mysql时忘记密码了怎么办?
  9. LOCK TABLES
  10. php5+init,PHP mysqli_stmt_init() 函数
  11. 190306每日一句
  12. 简述ip地址的abc类如何划分_IP地址ABC三类划分详细内容记录
  13. 2021版《数据结构》课程学习指南
  14. 利用Jquery自动生成条形码
  15. 数据仓库DW、ODS、DM及其区别
  16. 荣誉系统排名是整个服务器,魔兽世界怀旧服pvp荣誉系统是什么-魔兽世界怀旧服pvp荣誉系统奖励有哪些_牛游戏网...
  17. zbb20181006 maven配置阿里云中央仓库
  18. ESP8266Wi-Fi数据通讯
  19. c语言规定整型变量长度,搞透C语言整型数据范围表示
  20. MapReduce重点知识

热门文章

  1. jq 选择多个子元素,,添加,删除多个类
  2. Cocos2d-x--Box2D绘制出两个矩形框的解决方案
  3. wp7 视频下载 资源收集
  4. JavaScript中对象成员的可见性
  5. 新建学生类,分别计算3个科目的总和
  6. dvwa_xss_储存型
  7. C语言中能运算符重载吗,C++语言中什么运算符不能重载
  8. Git之变基方式Rebase的使用
  9. iOS之深度剖析UIScrollView的实现原理与阻尼动画
  10. 139. Word Break 单词拆分