首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏谷粒商城【重构版】

    重构谷粒商城10:若依系统快速入门

    重构谷粒商城10:若依系统快速入门前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。 本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。尚篇文章主要介绍,人人开源框架的快速入门,使用它快速搭建项目后台。 这篇文章快速入门若依,将作为使用若依重构项目的起点。1、若依简介相比较人人开源来说,若依是一个更加流行的脚手架。我们这节课就来紧跟下潮流。快速入门若依,使用若依搭建后台管理系统。主观感受下。下载源码。 00:00', 'Rejected'),('Michael', 'Williams', 'michael.williams@example.com', '321-654-9870', '1988-02-10 03-17 14:00:00', 'Approved'),('Aiden', 'Clark', 'aiden.clark@example.com', '444-555-6666', '1994-01-10

    87010编辑于 2025-03-28
  • 来自专栏技术之路

    重构学习-重构原则

    什么是重构: 视上下文重构有两个不同的定义,第一个定义是名词形式 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本 重构的另一人用法是动词形式 使用一系列的重构手法 强调一下,重构不会改变软件的可观察行为,也就是说重构之后功能和原来一样。 为什么要重构重构改进软件设计,如果没有重构,程序的设计会逐渐腐败变质。 重构的原动力是:代码设计无法帮助我轻松的添加我所需要的功能,如果用某种设计方式,添加功能会简单的多,这种情况可以用 重构来弥补。重构是一个快速流畅的过程,一旦完成重构,新特性的添加会更快速,更流畅。 如果在修改bug和审查代码时发现不合理的地方也要进行重构,这样是为了更好的阅读和理解代码 何时不重构: 如果发现代码太混乱,重构它不如重写来的简单这种情况下建议重写,不用进行重构。 最后你没有时间进行重构表明你其实早就该进行重构重构与性能: 有时为了让代码更容易理解,会做出一些使程序运行变慢的修改,这是个重要的问题。

    1.3K50发布于 2018-01-31
  • 来自专栏Java后端技术栈cwnait

    10重构小技巧,去掉代码中的S味

    本次我们抛开 JAVA 虚拟机源码这些相对底层的东西,来与各位探讨一下几个代码重构的小技巧。 重构的手法有很多种,相对而言,一篇文章的涵盖量自然是无法提到所有,这里也只能提出一些平时会经常使用的一些手法。 废话不多说,我们来看看实用重构技巧的排行榜吧。 No.1:重复代码的提炼 重复代码是重构收效最大的手法之一,进行这项重构的原因不需要多说。它有很多很明显的好处,比如总代码量大大减少,维护方便,代码条理更加清晰易读。 类的拆分是一个相对较大的工程,毕竟一个大类往往在程序中已经被很多类所使用着,因此这项重构的难度相当之大,一定要谨慎,并做好足够的测试 No.10:提取继承体系中重复的属性与方法到父类 这项技巧大部分时候需要足够的判断力 往往这一类重构都不会是小工程,因此这一项重构与第九种类似,都需要足够的谨慎与测试。而且需要在你足够确认,这些提取到父类中的属性或方法,应该是子类的共性的时候,才可以使用这项技巧。

    50820发布于 2020-04-14
  • 来自专栏韩曙亮的移动开发专栏

    重构重构概要--六大重构模块

    重构方法介绍: 重构改善既有代码的设计 一 重新组织函数 关于注释 :要尽可能少的使用注释 , 注释越多代码的可读性反而更差,注释可以使用函数名来代替 , 不要管函数名有多长, 即使函数名比函数中的代码还要长也不要紧 能更加明确的表明函数的意义,可以将这个算法替换; 二 在对象之间搬移特性 功能模块归属类:对象设计中, 将一个功能模块放在哪个类中,是最重要的任务之一,谁也不能一开始保证设计的是完全合适的,这就需要“对象之间搬移特性”这个重构方法 搬移函数和搬移字段:这两种重构方法都可以解决大多数的问题,如果两种方法同时使用,先搬移字段,在搬移函数。

    96930编辑于 2023-03-27
  • 来自专栏爱编码

    重构

    个人觉得代码重构非常有必要,写程序不但要给机器运行,更让人看的明白。 写代码如写诗一样才行。(内容代码为主,建议实践一下比较好点) 实例 一个图书馆出租书的程序。 接着:直接看下面的代码重构呗 Book类: 将按照书的不同类型,按照不同价格统计的方法移动到Book类中,因为这个按理应该属于Book类中的。 第二次重构 经过第一次重构,还是没有实现需求修改增加多个分类的效果。那么接下来使用接口抽象来再次重构。 最后想说: 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那么就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。 参考文章 【重构】作者: Martin Fowler

    1.1K10发布于 2019-07-03
  • 来自专栏青玉伏案

    代码重构(三):数据重构规则

    7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 } 11 12 // self.name = name 7 } 8 } 9 10 //重构后 11 class Person { 12 private var name: String = "" 13 init(name: String) { 6 self.name = name 7 } 8 9 func getName() -> String { 10 books.append(LibraryBook(name: "《智慧意林》")) 7 8 //创建借书人 9 let lender: Lender = Lender(name: "ZeluLi") 10 5 6 func getCode() -> String { 7 return SenderCode.Male.rawValue 8 } 9 } 10

    1.5K60发布于 2018-01-11
  • 来自专栏全栈程序员必看

    代码重构(三):数据重构规则

    7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 } 11 12 // self.name = name 7 } 8 } 9 10 //重构后 11 class Person { 12 private var name: String = "" 13 init(name: String) { 6 self.name = name 7 } 8 9 func getName() -> String { 10 books.append(LibraryBook(name: "《智慧意林》")) 7 8 //创建借书人 9 let lender: Lender = Lender(name: "ZeluLi") 10 5 6 func getCode() -> String { 7 return SenderCode.Male.rawValue 8 } 9 } 10

    1.3K10编辑于 2022-07-05
  • 来自专栏青玉伏案

    代码重构(二):类重构规则

    在上篇博客《代码重构(一):函数重构规则(Swift版)》中,详细的介绍了函数的重构规则,其中主要包括:Extract Method, Inline Method, Inline Temp, Replace 关于上述这些函数重构的规则更为详细的信息请参考上一篇博客,在此就不做过多的赘述了。 今天这篇博客主要介绍一下类的重构。在我们写代码时,有些类是不规范的,需要重构。 当然,在你实现时,测试用例是必不可少的,因为测试用例可以在你重构时及时发现因为重构而产生的错误。言归正传,进入今天博客的主题。 搬移后,我们可以再使用函数的重构规则对新组的函数进行重构。下方就通过一个实例来直观的感受一下Move Method。 关于这两个函数重构的规则的具体细节请参见《代码重构(一):函数重构规则(Swift版)》中的介绍。下方截图是对BookCustomer类中的charge()函数进行重构后的结果,如下所示: ?

    1.7K100发布于 2018-01-11
  • 来自专栏青玉伏案

    代码重构(一):函数重构规则

    此时,你要考虑重构了。 重构,在《重构,改善既有代码的设计》这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情况下,修改代码的内部特征。 本篇博客的主题就是通过一些列的重构手法,对既有的需要重构的函数或者方法进行重构。并且会将每个示例在GitHub上进行分享,感兴趣的小伙伴可以对其进行下载。 实在是没有必要再找其他的例子说明这些重构规则,因为《重构:改善既有的代码的设计》这本书真的是太经典了。 1.需要重构的代码如下所示。 在写好需要重构的类后,我们要为该类写一个测试用例。这便于在我们重构时对重构的正确性进行验证,因为每次重构后都要去执行该测试用例,以保证我们重构是正确的。 所为我们可以再次对上述方法进行重构重构后的具体代码如下: ? 今天的博客主要讲了如何对既有代码中的函数进行重构,在本篇博客中提到了8大规则。

    2.1K50发布于 2018-01-11
  • 来自专栏新智元

    边缘智能(EI):重构算力、重构算法、重构商业智能

    边缘智能(EI),重构智能算法引擎 真正和老百姓生活息息相关的应用都是哪些呢?一般来说与老百姓出门相关的都是衣食住行,那么衣食住行当中的AI和计算机视觉会有怎样关联呢? 衣食住行无外乎是智能家居、智能出行和线下零售等等几个常用的场景,这些场景当中都有硬件、软件和计算机算法等等完整的处理方式,我们通过EI重构数字空间,其中三个方面,重构算力、重构算法,同时也重构商业模式。 我们要用边缘计算的算法和系统,重构这个零售的空间。 重构的空间能够给人解决什么—实时主动决策 我们认为主要是提供了变革性的决策,也就是主动地决策。 有的时候并没有时间看报告,所以如何能够主动地推送、帮助企业主、决策者进行决策,比如把收入提高10%-15%,如何做到这一点才是要真正努力的方向。 今天达到的比例甚至远远不到50%,恐怕只有10%-20%,未来两三年将会是投资发展的大风口。 很多人在讨论神经网络、深度学习是不是已死。我觉得在云端确确实实会遇到一些瓶颈,比如能耗和效率。

    1.7K30发布于 2018-10-24
  • 来自专栏只喝牛奶的杀手

    重构

    说到重构,我们再来了解一下定义:重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,利用设计思想、设计原则、设计模式编程规范等理论来优化代码。 重构目的:1.重构是时刻保证代码质量的一个极其有效的手段,防止代码腐化。当代码腐化到一定程度,量变引起质变,项目的维护成本已经高过重新开发一套新代码的成本。2.优秀的架构和代码是迭代出来的。 时机:持续的重构(做好重构计划,小步快跑,要保证代码仓库中的代码一直处于可运行、逻辑正确的状态.要做好与新功能,老代码的兼容工作。利用静态代码扫描,codeReview做好日常持续重构)。 重构手法总结为“十六字心法”,非常形象、贴切:旧的不变,新的创建。一步切换,旧的再见。 “旧的不变”是指先不动旧方法;“新的创建”是指创建一个跟原来方法功能相同的新方法,你可以通过先复制再重构的方式,来得到这个新方法,也就是整个系统的一个增量;“一步切换”是指,在充分测试之后,新的方法可以完全替代旧方法了

    55730编辑于 2023-09-18
  • 来自专栏马超的博客

    重构-重复关系重构

    今天看到社区有人提问如何进行关系重构,顺手回答了一下。在此记录下关系重构的方法。 Realation {name:'属性3'}]->(B) - 查询测试数据 MATCH p=(A:Test {name:'A'})-->(B:Test {name:'B'}) RETURN p - 如何重构 就是变成 (A)-[:Realation{name:‘属性1’]-(B) (A)-[:Realation{name:‘属性2’]-(B) (A)-[:Realation{name:‘属性3’]-(B) - 重构关系 [0]]) AS deleteRelIds WITH name,deleteRelIds MATCH ()-[r]-() WHERE ID(r) IN deleteRelIds DELETE r - 重构结果 - 更多复杂重构可以使用下面的存储过程实现 CALL apoc.do.case([relationship=1,\'MATCH (from:Label {hcode:$fromHcode}),(to

    1.1K20编辑于 2022-07-04
  • 来自专栏学习猿地

    Web前端学习 第2章 网页重构10 还原设计稿

    二、网页重构 在实际工作中,UI设计师在设计网页的过程中,会留存很多网页中图片的源文件,我们在还原设计稿的时候,直接让设计师把网页相关的图片给我们即可。

    86910发布于 2020-06-15
  • 来自专栏服务端技术杂谈

    重构系统的套路-明确重构目的

    重构系统的套路系列: 本篇说下重构系统的套路中的,明确重构的目的。 ? 不同的重构目的会有不同的重构方式和不同的执行标准。 ,但是整个链路的可用性却降低了,贸然全量这样一个重构,必然产生一个非常大的事故。 上面这个虽然是我自己在系统梳理过程中意淫出来的场景,但我不得不再我进行类似系统重构之前,在代码逻辑角度,功能业务角度,缓存集群,mq集群,DB集群等角度考虑,我这次重构可能造成的问题,只有我们在系统重构之间能够想的比黑天鹅来的更快我们才能对系统做更多的保护 基于以上四点不同的重构需求,我们采取的方案和执行的角度完全不同,系统变大了之后,稳定第一。

    2.4K30发布于 2018-09-21
  • 来自专栏青玉伏案

    代码重构(六):代码重构完整案例

    前边连续发表了5篇关于重构的博客,其中分门别类的介绍了一些重构手法。今天的这篇博客就使用一个完整的示例来总结一下之前的重构规则,也算给之前的关于重构的博客画一个句号。 首先会给出需要重构的代码,然后对其进行分析,然后对症下药,使用之前我们分享的重构规则对其进行一步步的重构。 然后在此基础上进行分析,使用之前我们提到过的重构手法进行重构。首先我们给出了电影类的实现。 Movie.NEW_RELEASE) 8 let childrenMovie:Movie = Movie(title: "《葫芦娃》", priceCode: Movie.CHILDRENS) 9 10 经过这一步重构后,不要忘记执行一下你的测试用例,监测一下重构的结果是否正确。 ?

    2.3K70发布于 2018-01-11
  • 来自专栏青玉伏案

    代码重构(五):继承关系重构规则

    陆陆续续的发表了多篇关于重构的文章了,还是那句话,重构是一个项目迭代开发中必不可少的一个阶段。其实重构伴随着你的项目的整个阶段。 在前几篇关于重构的文章中我们谈到了函数的重构、类的重构、数据的重构以及条件表达式的重构,那么今天咱们就来聊聊继承关系的重构。 当然还是延续前几篇博客的风格,我们在博客中的代码实例依然使用Swift语言来实现,当然还是那句话,使用什么语言无所谓,关键是看重构的场景以及重构的思想。 重构往往伴随着设计模式的使用,在重构系列的博客结束后,我想系统的给大家分享一下关于设计模式的东西。当然是结合着各种实例。 所谓一名Coder,重构和设计模式是必须涉猎的部分,因为这两者可以让你写出更漂亮的代码,当然要想真正的掌握设计模式以及各种重构手法,还得结合不同的实例来进行实践。

    15.3K61发布于 2018-01-11
  • 来自专栏程序员笔记

    读书「重构

    重构的基本原则? 添加新功能,和重构不可同时进行,重构时不加新功能,加新功能时不重构重构时不应该添加任何测试。 小步前进,频繁测试。 一个函数应该且只应该完成一件事情。 对一个对象/函数来说,哪些地方很可能需要重构? 拥有太多实例变量 有超过百行的函数 函数的参数超过三个 牵一发动全身,如果经常一个改动需要在许多不同的类内做出小修改。 重构的方法有哪些? 分解函数 当看到一个过长的函数或者一段需要注释才能让人理解用途的代码,把这段代码放到一个独立函数里面去 函数命名应该以「做什么」而不是「怎么做」来命名。 ---- 参考 Martin Fowler 重构——改善既有代码的设计

    67220发布于 2018-06-14
  • 来自专栏Kirito的技术分享

    何时应该重构代码?如何重构代码?

    3.何时重构 任何情况下我都反对专门拨出时间进行重构重构本来就不是一件应该特别拨出时间做的事情,重构应该随时随地的进行。 10.switch惊悚现身 面向对象的一个最明显的特征是:少用switch语句 一看到switch语句,就应该考虑以多态来替换它。 10.封装字段 你的类中存在一个public字段。将它声明为private,并提供相应的访问函数。 11.封装集合 有个函数返回一个集合。 10.移除设值函数 类中某个字段在对象创建时被设值,然后不再改变。去掉该字段的所有设值函数。 11.隐藏函数 某个函数,从来没有被其他任何类用到 。将函数修改为private。 10.塑造模板函数 子类中某些函数以相同顺序执行类似操作,但各操作细节略有不同。将操作放进独立函数(保持签名相同),然后将它们移至超类。

    2.1K30发布于 2021-09-08
  • 来自专栏七夜安全博客

    IPProxyPool重构

    经过两周时间的努力,基本完成了开源IP代理池IPProxyPool的重构,业余时间基本上都花在上面了。如今IPProxyPool开源项目已经500多star了,谢谢大家的关注。

    57020发布于 2018-06-26
  • 来自专栏大数据,java,Python和前端

    当 AI 遇见 CLI:CodeBuddy code 如何将重构效率提升 10

    我们决定对其进行重构。 收起代码语言:BashAI代码解释#传统方式:开发者需手动识别代码坏味、逐行重构、编写测试#AICLI方式:一行命令描述意图$codebuddy"重构/server/api/auth.js中的用户登录和注册模块 2.CodeBuddycodeCLI方案(耗时:约10-15分钟)执行上述命令后,AI会分析目标文件并输出重构后的代码。 ..测试用例...});});效果对比[原始方案]:2-3小时(手动分析、重写、调试、编写测试)[CodeBuddycodeCLI方案]:<15分钟(编写命令、审核并微调AI生成的代码)>效率提升超过10 正如我们在这个电商项目重构案例中所见,一个简单的自然语言命令就能化解数小时的繁琐工作。

    60020编辑于 2025-09-17
领券