可信重构
文章平均质量分 77
代码重构,更健壮、更易读、易扩展
Lemo`s Studio
这个作者很懒,什么都没留下…
展开
-
你的项目应该如何正确分层?
文章目录1.背景2.如何进行分层2.1阿里规范2.2优化分层3.分层领域模型的转换3.总结1.背景说起应用分层,大部分人都会认为这个不是很简单嘛 就controller,service, mapper三层。看起来简单,很多人其实并没有把他们职责划分开,在很多代码中,controller做的逻辑比service还多,service往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。的确在这些人眼转载 2022-05-09 14:46:42 · 216 阅读 · 0 评论 -
关于套娃式 for 循环的几点优化建议
循环优化:for 循环尽量保证调用区域小(不要有全局变量),语句简单,不要有循环的函数调用等。方法:1 判断语句和表达式:在 for 循环条件中尽量不要出现表达式,而是只是变量,提升效率(表达式可以在 for 前面进行计算完成。),内部也是,尽量减少不必要的表达式语句;2 函数调用:在 for 循环内,尽量不要出现函数调用,都通过变量+for 循环外调用的方式进行,如果内部有 if 分支内直接 break 或者 return 的逻辑,则没有关系,可以在里面放函数的调用,因为只运行一次的;3 for原创 2021-08-25 10:56:14 · 351 阅读 · 0 评论 -
条件语句重构指引
目录1 if...else 过多1.1 问题表现1.2 如何解决2 if...else 嵌套过深2.1 问题表现2.2 如何解决2.2.1 抽取方法2.2.2 卫语句3 if...else 表达式过于复杂3.1 问题表现3.2 如何解决4 switch case分支过多1 if…else 过多1.1 问题表现if...else 过多的代码可以抽象为下面这段代码。其中只列出 5 个逻辑分支,但实际工作中,能见到一个方法包含 10 个、20 个甚至更多的逻辑分支的情况。另外,if...else 过多通常原创 2021-05-28 15:50:22 · 315 阅读 · 1 评论 -
人人都要懂的代码重构
0 目录1 心得体会2 理解重构2.1 为什么要做重构?因为代码腐化2.2 为什么代码会腐化2.2.1 破窗效应(Broken windows theory)和惯性2.2.2 技术债务(Technical Debt)2.3 防止代码腐化,重构应该怎么做2.3.1 重构的技术挑战2.3.2 重构的步骤2.3.3 重构的最佳时机2.4 关于重构的“编程价值观”2.4.1 构建好代码文化从TOP10准则普及开始3 代码坏味道3.1 识别坏味道3.2 跟踪代码坏味道4 重构名录4.1 重构方法列表4.2 重构与模式原创 2020-10-09 15:31:17 · 2277 阅读 · 0 评论 -
重构技术名录
Extract Method:从一个过长函数中提取一些小的函数以减少原来函数的体积Inline Method:正好相反,将一个函数调用动作替换为该函数本体。Replace Method with Method Object:把方法提炼出来成为一个单一的类。Replace Temp with Query:程序以一个临时变量(temp)保存某一表达式的运算结果。将这个表达式提炼到一个独立的函数(即所谓的查询式Query中).我们常常使用临时变量保存循环中的累加信息,在这种情况下,整个循环可以被提炼为一个.原创 2020-09-25 19:59:24 · 267 阅读 · 0 评论 -
常见的代码坏味道
0. 目录1. Duplicated Code(重复的代码)2. Long Method(过长函数)3. Large Class(过大类)4. Long Parameter List(过长参数列)5. Divergent Change(发散式变化)6. Shotgun Surgery(霰弹式修改)7. Feature Envy(依恋情结)8. Data Clumps(数据泥团)9. Primitive Obsession(基本型别偏执)10. Switch Statements(switch惊悚现身)11.原创 2020-09-25 19:55:24 · 2799 阅读 · 0 评论 -
常见重构方法大汇总
代码的坏味道 一般重构方法 使用模式重构 重复代码 提炼方法 提取类 方法上移 替换算法 链构造方法 构造Template Method 以Composite取代一/多之分引入Null Object 用Adapter统一接口 用Fatory Method引入多态创建 过长方法 提取方法 组合方法 以...原创 2020-09-25 19:42:27 · 6504 阅读 · 2 评论 -
重构代码常见流程
1 重构的步骤2 重构的方法对一般经常使用的重构方法,如提取方法、提取类等,从其最后的效果上看,它们是通过在不同的层次上移动代码,或者是在同一层次上将代码进行合并、分拆,来让代码更容易阅读理解,结构更加清晰,达到OO原则的要求。3 重构的策略重构的方法有很多,大致分为两类:一般的重构方法(微重构)和设计重构(基于模式的重构)。针对一种代码坏味道,往往可以使用一般的微重构方法,如果微重构不满足要求,也可以使用模式重构。就如下面列出的4中重构策略中,策略1、2是基础,是针对小范围重构使用(微重构)原创 2020-09-25 19:30:34 · 1411 阅读 · 0 评论 -
浅谈使用卫语句重构方法
卫语句定义:如果条件语句极其复杂,就应该将条件语句拆解开,然后逐个检查,并在条件为真时立刻从函数中返回,这样的单独检查通常被称之为“卫语句”(Guard Clauses)。说人话就是:写方法时在合适的时候尽快return,少用else按卫语句对函数进行重构应遵循:及时return,if中能return就return。(一旦满足条件return后你根本无需关注后面的代码)能够return的就尽量少使用else。(用else太多,读者需要维护大量的栈在大脑中)减少嵌套,一般嵌套超过4层读者就会产生原创 2020-08-12 10:26:24 · 2052 阅读 · 1 评论 -
常见降低圈复杂度方法
圈复杂度计算方式圈复杂度(CC) = 判断条件个数 + 1 其中1代表函数本身的复杂度关键字:if, else if, for, while, &&, ||, case, catch等。对if,if~else, if~else if ,for, switch , while语句进行简要说明:If中有几个判断条件算几个,else算一个else if 有几个判断条件算...原创 2020-04-27 21:25:32 · 20228 阅读 · 2 评论