极客时间架构师训练营 - week3 - 作业 2
本周的两次课,主要讲的是软件设计、代码重构方面的内容,设计模式案例解析内容涉及著名的JUnit和Spring Framework,还有李老师此前做过的Hive语法解析项目。由于近期项目比较赶,端午节后就要交付,周内天天都要加班,周六也没能逃过,两次直播我都没能赶得上。今天花了半天看完了李老师的回放,这个点才开始写一下学习心得。首先我们这个要交付的项目,就如李老师所举的例子,初期缺乏设计,软件代码僵化,一有需求变动,就得改很多很多代码,明明只是数据库+Redis,本应该都是常规操作的,搞得人心力憔悴。初期接手这个工程的时候,我也只是肤浅的进行重构,抽取了历史代码中的重复部分。按照老师说的五大原则,即
开闭原则,
依赖倒置原则,
里氏替换原则,
单一职责原则,
接口分离原则,
我们要牢记这些原则,其中比较容易贯彻的,应该是单一职责原则。我个人深有体会。一个冗余的类,分析 起来就会很累,在里面Debug,都很容易绕晕。后续开发工程时候,一定要考虑按职责进行拆分,这样各个模块可以有机的组合,看起来一目了然,Debug也能顺心执行。后续设计模式这块,我需要好好加强,在开发中不断思考,运用前辈们的设计经验。
在讲解Spring框架的原理的时候,李老师将IoC的原理和核心代码通过几行代码就说明白了,顺便讲解了单例模式,剖析了其实现的关键细节。李老师还透露说,部分面试场景会让面试者手写代码,平常都在IDE里开发的我,可能在这些场景里就会紧张,甚至写不出来,在准备面试的时候,可能还需要针对性练一练,基础知识需要非常熟悉,可能才会比较坦然吧。再讲解Hive语法解析项目时,李老师详尽地讲解了一个复杂的工程如何通过设计原则,进行的重构,这段看了好几遍回放,受益良多。
以上。
版权声明: 本文为 InfoQ 作者【jjn0703】的原创文章。
原文链接:【http://xie.infoq.cn/article/c4de7b362850a3847ed5fcd5c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论