极客时间架构师训练营 - week3 - 作业 2

简介: 极客时间架构师训练营 - week3 - 作业 2

本周的两次课,主要讲的是软件设计、代码重构方面的内容,设计模式案例解析内容涉及著名的 JUnit 和 Spring Framework,还有李老师此前做过的 Hive 语法解析项目。由于近期项目比较赶,端午节后就要交付,周内天天都要加班,周六也没能逃过,两次直播我都没能赶得上。今天花了半天看完了李老师的回放,这个点才开始写一下学习心得。首先我们这个要交付的项目,就如李老师所举的例子,初期缺乏设计,软件代码僵化,一有需求变动,就得改很多很多代码,明明只是数据库+Redis,本应该都是常规操作的,搞得人心力憔悴。初期接手这个工程的时候,我也只是肤浅的进行重构,抽取了历史代码中的重复部分。按照老师说的五大原则,即

  • 开闭原则,
  • 依赖倒置原则,
  • 里氏替换原则,
  • 单一职责原则,
  • 接口分离原则,

我们要牢记这些原则,其中比较容易贯彻的,应该是单一职责原则。我个人深有体会。一个冗余的类,分析 起来就会很累,在里面 Debug,都很容易绕晕。后续开发工程时候,一定要考虑按职责进行拆分,这样各个模块可以有机的组合,看起来一目了然,Debug 也能顺心执行。后续设计模式这块,我需要好好加强,在开发中不断思考,运用前辈们的设计经验。

在讲解 Spring 框架的原理的时候,李老师将 IoC 的原理和核心代码通过几行代码就说明白了,顺便讲解了单例模式,剖析了其实现的关键细节。李老师还透露说,部分面试场景会让面试者手写代码,平常都在 IDE 里开发的我,可能在这些场景里就会紧张,甚至写不出来,在准备面试的时候,可能还需要针对性练一练,基础知识需要非常熟悉,可能才会比较坦然吧。再讲解 Hive 语法解析项目时,李老师详尽地讲解了一个复杂的工程如何通过设计原则,进行的重构,这段看了好几遍回放,受益良多。

以上。


目录
相关文章
|
4天前
|
机器学习/深度学习 算法 安全
隐私计算训练营第三讲-详解隐私计算的架构和技术要点
SecretFlow 是一个隐私保护的统一框架,用于数据分析和机器学习,支持MPC、HE、TEE等隐私计算技术。它提供设备抽象、计算图表示和基于图的ML/DL能力,适应数据水平、垂直和混合分割场景。产品层包括SecretPad(快速体验核心能力)和SecretNote(开发工具)。算法层涉及PSI、PIR、数据分析和联邦学习(水平、垂直、混合)。此外,SecretFlow还有YACL密码库和Kusica任务调度框架,Kusica提供轻量化部署、跨域通信和统一API接口。
83 0
|
8月前
|
消息中间件 缓存 NoSQL
|
9月前
|
消息中间件 存储 关系型数据库
极客时间架构实战营作业八
极客时间架构实战营作业八
117 0
|
9月前
|
消息中间件 Java 中间件
极客时间架构实战营作业六
极客时间架构实战营作业六
73 0
|
9月前
|
运维 关系型数据库 MySQL
极客时间架构实战营作业三
极客时间架构实战营作业三
100 0
|
7月前
|
资源调度 分布式计算 调度
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
Fink--3、Flink运行时架构(并行度、算子链、任务槽、作业提交流程)
|
9月前
|
容灾 网络协议
极客时间架构实战营模块 7 作业
极客时间架构实战营模块 7 作业
59 0
|
9月前
|
存储 缓存 负载均衡
极客时间架构实战营作业五
极客时间架构实战营作业五
91 0
|
9月前
|
存储 JSON NoSQL
极客时间架构实战营作业四
极客时间架构实战营作业四
78 0
|
9月前
极客时间架构实战营作业二
极客时间架构实战营作业二
56 0