首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏服务端技术杂谈

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

    重构系统的套路系列: 本篇说下重构系统的套路中的,明确重构的目的。 ? 我们进行系统重构会抱着不同的目的,比如为了系统稳定性,为了系统中某些功能负载能力更强,为了系统更便于维护,或是为了系统更便于持续集成提升RD和QA的人效。 比如我们用redis集群做幂等服务,因为多服务同步之间通过定时任务触发,定时任务触发后可能因为大数据量造成请求挤压,高峰期挤压处理在2~5h不等,所以这个redis的key的超时时间需要覆盖到5h,梳理了程序代码逻辑就 上面这个虽然是我自己在系统梳理过程中意淫出来的场景,但我不得不再我进行类似系统重构之前,在代码逻辑角度,功能业务角度,缓存集群,mq集群,DB集群等角度考虑,我这次重构可能造成的问题,只有我们在系统重构之间能够想的比黑天鹅来的更快我们才能对系统做更多的保护 如果系统重构的目的在于可维护性,和上面两点的区别在于,周期不可操之过急。 我们需要在整个业务角度去理解系统,同时对未来系统所承接的业务有所评估,这样我们才能设计出一个面向未来的系统

    2.4K30发布于 2018-09-21
  • 来自专栏开发笔记

    Chapter 2重构的原则

    1,什么是重构? 在不改变软件可观察行为的前提下,使用一些重构的手法,提高代码可读性。 换句话说,在保持软件可用的前提下,修改代码使得更加容易被理解。 2,为什么重构? 使代码更易理解时重构 顺便重构(修复bug,添加新功能) 代码复审(code review)时重构 总而言之:重构的门槛远远没有想象中那么高,重构是对既有代码的修改,也许我们在无意识中就已经做了这样的工作 就如同重构的定义,在可用的前提下,提高重构的技术。 什么时候不应该重构? 对于一段凌乱的代码,如果不需要修改它,就不需要重构。 只有当你需要理解其工作原理时,重构才变得有价值。 如果重写比重构更加容易,那就不需要重构了。(判断) 4,重构会遇到哪些问题? 准备这套测试套件的代价很高,但收益也是可观的: 使重构可行性变得更大 使添加新功能更加安全 bug排查更加迅速,容易 遗留代码 重构可以很好的理解遗留系统,但同时又是十分危险的。

    77910发布于 2020-01-22
  • 来自专栏Java架构师学习

    如何做系统重构

    同时,需要认真比较重构的各种方案的利弊,想清楚后再开始,任何时候都需要有方案B。 2. 除此之外,通过研究当前系统,才能记录目前系统的性能基准,为未来评估重构的效果做准备。 本质上的原因在于,业务都是以数据流为载体的,架构重构的本质就是让数据流更通畅。所以在重构过程中,我们务必保证以下两点,1. 重构后的系统,对于数据的存储、处理、分析等功能是否有影响;2. 在重构过程中或者重构后,我们能用数据来验证重构的效果,能不断的对系统进行优化。 5. 至于如何来拆分重构,并没有一个统一的标准,但是我个人的看法,每次重构的工作量,不应该超过1个正常的迭代(2周时间)。 6.

    1.6K50发布于 2018-05-04
  • 来自专栏全栈程序员必看

    【《重构 改善既有代码的设计》学习笔记2重构原则

    【《重构 改善既有代码的设计》学习笔记2重构原则 本篇文章的内容来自《重构 改善既有代码的设计》一书学习笔记整理并且加上自己的浅显的思考总结! 2重构使软件更容易理解 可理解性之一:让第二读者更容易懂程序代码 所谓程序设计,很大程度就是与计算机交谈:让计算机按照你编写的代码来做事情。 良好的设计是维持软件开发速度的根本,重构可以阻止系统的软件设计腐败变质,从而提高编程速度,理所应当! (事不过三,三则重构2、添加功能时重构 最常见的重构就是添加新特性的时候,代码的设计无法帮助我们轻松的添加所需的特性。 3、修改错误时重构 遇到bug,解决bug的时候,可以进行重构。 3、难以通过重构手法完成设计改动 在项目中很难将一个 不考虑安全性需求的系统重构成具有良好安全性的系统

    76430编辑于 2022-07-20
  • 来自专栏杨龙飞前端

    vue重构后台管理系统调研

    Q4要来了,我来这家公司已经一个季度了,通过对公司前端框架的整体认识,对业务的一些认识,发现,这些东西也都是可以重构,无论是v2,还是v3的代码。 进入重构,首先的问题是,后端渲染,为什么要做后端渲染,因为有时候会做google统计,seo优化,之类的,必须用后端渲染才行,普通的spa就不行了,而且语言包那一块需要去服务器拉去数据后才能生成文件,必须有后端服务做支撑 但是这样搭载过之后,我发现,后台管理系统里会有一些统计数据的工具,这时候可能会引入vue的图标框架,但是我不能确定vue的图表插件能否支持ssr 纠结之中我还是放弃了,如果以后有小的项目可以试一下。

    1.8K10发布于 2018-10-11
  • 来自专栏java思维导图

    大型系统重构的步骤梳理

    作者:Yomut 原文:https://my.oschina.net/yomut/blog/714497 目前正在参与公司一个核心大系统重构工作。本文梳理一下大型系统重构的一些步骤和心得。 系统除了要应付大量的并发请求,还必须快速支持各种业务需求,必须对系统进行大重构。 备注: 下面的一些步骤和方式是根据我自己的项目的实际列出的。 数据库重构 前期的项目,由于赶进度,并没有充足的时间设计表,导致各种冗余表、大表、大量的冗余的字段、扩展性差的表。所以重构系统的时候,可以先从表开始,通过对当前业务的梳理,重新把表整理一下。 1. 字段太多的表,可以根据部分字段的业务属性,抽取成一个新表; 2. 已经不再用的表字段,删除掉; 3. 数据库重构,一般由专门的数据架构师来处理。数据架构师必须和业务架构师紧密配合。 数据迁移 由于对数据库进行了重构,那么旧数据库的数据必须完整的迁移过来。

    1.8K20发布于 2018-08-16
  • 来自专栏数商云贸

    B2B撮合交易平台:重构撮合交易系统链接本质

    B2B无按钮.png B2B供应链系统开发服务商【数商云】从B2B行业企业服务的撮合交易平台系统商业模式进行分析总结,包括:撮合交易的产生与应用场景、撮合交易的用户定位与盈利模型、如何从撮合交易中保持竞争优势以及更为系统的企业服务模式的未来 二、B2B撮合交易系统服务 撮合交易系统服务是指服务型公司或者个人,从人们的实际生活出发,作为第三方,将多边信息集合在一起,通过整理和评估,将有效地信息针对性反馈给用户,这个过程统称为撮合交易系统服务。 B2B撮合交易平台解决了交易的快速达成,人工是最低效的方式,人工加系统的方式是更进一步的,股票和期货的电子化交易,是最高级的交易撮合形式。 五 、撮合交易平台的本质:重构B2B交易的链接方式 撮合交易平台重构链接的过程,只有选择弱关系作为切入点,才能快速见到成效,这本质上是一个顺势而为的逻辑。 这也是很多对B2B系统市场具备专业判断能力的投资机构,会将上下游是否分散作为B2B撮合交易平台逻辑能否成立的关键依据。而分散的含义并不能简单的理解为规模的分散,应该至少综合考虑上述四个分析维度。

    1.5K40发布于 2019-10-28
  • 来自专栏用户1337634的专栏

    订单交易系统代码重构

    订单交易系统随着业务的发展,逻辑也越来越多,需要进行重构,之前已经把交易模块拆分了,目前还需要再把订单系统进一步拆分 当前的问题 订单相关代码都放在一起,随着业务发展,逻辑越来越复杂 履约和查询( 导出)对系统要求不同,不方便统一优化 重构方法 分离订单履约和查询相关逻辑代码 批量查询和导出相关逻辑,不再查询业务MySQL,改为查询ElasticSearch ps: 重构时,要注意哪些业务是基本固定的 ,哪些是经常变动的,需要把变动的逻辑尽量放到一起 参考 重构:改善饿了么交易系统的设计思路

    96310发布于 2021-07-20
  • 来自专栏云计算行业

    用领域驱动设计驱动系统重构

    为什么系统功能似乎没有增加多少,但是代码却变得越来越庞大?如果系统重构是不可避免的,应该用什么样的设计思想和方法来引导我们进行系统重构。 《用领域驱动设计驱动系统重构》通过一个交通出行互联网应用的重构案例,展示随着功能不断迭代开发,系统开始腐坏变味的时候,如何利用领域驱动设计的方法驱动系统进行重构

    75530编辑于 2023-05-29
  • 来自专栏杨建荣的学习笔记

    运维系统重构的设计思路

    最近要对已有的运维平台做重构工作,为什么要做重构,主要还是因为各种各样的原因,需要对已有的问题改进,修复历史遗留包袱。这个时间迟早都会来到,还不如自己自觉一点,提前发现问题,提前修复。 整个重构的核心思路就是对已有的平台做前后端分离,方向主要是对已有的后端设计做改进。 运维前后端分离的开发流程 ? 如果把重构比作一桌子菜,那么重构需要做的具体的事情,我分为了几类: 业务重构,脚本管理,API管理,通用日志管理。 业务重构 l 对已有逻辑的梳理 l 去除已有项目中的冗余设计 l 多数据源的支持,设计DAO层 l 对于项目中的SQL语句调用,统一使用DAO层来对接 前后端分离的设计和改进 l 前后端开发流程 l 前端技术部分改进

    79120发布于 2018-07-26
  • 来自专栏服务端技术杂谈

    重构系统的套路-微服务化

    对于一个系统来说,用户的身份必须是统一的。 权限稍微复杂一点。和身份不同,权限通常分成两种类别: 功能权限和数据权限。

    57640发布于 2018-07-23
  • 来自专栏服务端技术杂谈

    重构系统的套路-提高并发能力

    提高系统并发能力,总结起来有三点:异步,缓存,并行。 对于老系统需要在业务进行梳理,如果业务场景中不关心返回值,这样完全可以做成异步。 梳理系统的代码,将很多同步的for,while的循环改成基于Future的同步模型,提升整体并行度,达到一定的性能提升。

    76420发布于 2018-07-23
  • 来自专栏phodal

    系统重构的未来:重构工具 Coca 一周年

    也因此《系统重构与迁移指南》(https://migration.ink/) 成为了系统重构不可多选的材料,Google 『系统重构』 和 『重构工具』会有惊喜。 ? ? 系统的必然之路:系统重构 or 重写 没啥说的,部分的系统都是要被重构或者重写的。那么另外一部分呢?他们被淘汰了——要么是产品,要么是公司,笑~。 系统变成了一个大泥球,需求已经越来越难以实现: ? 真相就是这么简单。如果系统不被指南,和进行频繁的代码级重构的话,那么系统被取代的速度就更快了。 系统重构的未来 在 Coca 编写完成之后,我发布了《系统重构与迁移指南》一份短小、精悍的重构手册。 但是,对于系统重构来说,基本上很少有工具可以直接能支撑现有的系统,哪怕是 Coca 也是有限的支持。主要原因就是:大部分的内部系统都绑定了组织中的模式。

    84340发布于 2020-11-05
  • 来自专栏Grace development

    老项目重构手记之用户系统

    受邀来一起重构公司的老项目 概述 重构首先要注意几个点 – 重构后功能的可扩展性 – 业务互相依赖的复杂度 – 脱离本身的业务进行重构重构后的代码可读性与可维护性 – 性能的提升 以上几点是重构注意的地方也是重构的目的 分析 本次重构的项目运营了三年之久,用户及业务量也上不来。 Y NULL 登录状态 MemberState tinyint(2) N 0 账号状态 MemberExpert tinyint(2) N 0 MemberRegTime int(11) Y NULL 迭代 重构并不是一言一语,几行代码或者一个大佬的方案就可以解决的。实际重构也是一个开发的过程。在不断的迭代中,将重构完成的部分补回到业务中。 致谢 感谢你看到这里,希望本篇文章可以帮到你。 最后修改:2个月前 2018-07-05 © 著作权归作者所有

    83120发布于 2018-09-18
  • 重构业务系统考虑的方案】

    快速重构系统需要以下几个步骤: 分析系统:首先,对现有系统进行彻底的分析,了解现有系统的架构、代码结构、功能和性能等方面的问题。这将帮助你确定需要重构的部分和优先级。 这些目标可能包括提高系统性能、增强系统安全性、简化代码结构等。 优化设计:根据重构目标,对系统的设计进行优化。这可能包括解耦各个模块、引入新的设计模式、重构数据库结构等。 重构代码:根据重构目标和优化设计,逐步重构系统的代码。这可能包括重命名变量和函数、简化代码逻辑、提取重复的代码块为函数等。 进行测试:在重构过程中,要进行充分的测试,确保重构后的系统仍然能够正常运行,并且能够满足重构目标。 以上是快速重构系统的一般步骤,具体的重构过程可能根据系统的实际情况而有所不同。重构需要高度的技术能力和认真的执行力,同时要注意在重构过程中保持系统的稳定性和可用性。

    19110编辑于 2025-08-29
  • 来自专栏IMWeb前端团队

    移动端重构实战系列2——line list

    这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构。 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    55220发布于 2019-12-04
  • 来自专栏腾讯IMWeb前端团队

    移动端重构实战系列2——line list

    ”本系列教程为实战教程,是本人移动端重构经验及思想的一次总结,也是对sandal及sheral UI的一次全方位剖析,首发在imweb和w3cplus两大站点及“前端Talk”微信公众号,其余所有标注或没有标注来源的均为转载 list,对应的scss组件为_line-list.scss,下图为line-list的一个缩影: 这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    41910编辑于 2022-06-29
  • 来自专栏IMWeb前端团队

    移动端重构实战系列2——line list

    本文作者:IMWeb 结一 原文出处:IMWeb社区 未经同意,禁止转载 ”本系列教程为实战教程,是本人移动端重构经验及思想的一次总结,也是对sandal及sheral UI的一次全方位剖析, 这个UI应该是每个移动端网页都必备的,而且使用场景也是非常的丰富,所以这里我们采用一步步循序渐进的方式去重构。 display: block; width: 14px; height: 8px; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; transform:

    83280发布于 2018-01-08
  • 来自专栏路遥的专栏

    全新 LeakCanary 2 ! 完全基于 Kotlin 重构升级 !

    Square 公司在今年四月份发布了全新的 2.0 版本,完全使用 Kotlin 进行重构,核心原理并没有太大变化,但是做了一定的性能优化。 你只需要在 build.gradle 文件中添加如下依赖: debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.0-alpha-2' 2. RefWatcher.watch() 在看源码之前,我们先来看几个后面会使用到的队列。 总结 通读完源码,LeakCanary 2 还是带来了很多的优化。

    72710发布于 2021-08-31
  • 来自专栏新亮笔记

    重构业务系统,我是这样做的

    重构,是任何一个技术团队都无法绕过和回避的话题。 重构的原因有很多,可能是伴随着业务的发展与升级,系统无法快速支持需求迭代,这时就有了重构的念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价的。 我最近参与了一个重构项目,接下来给大家分享下,我在重构业务系统过程中的经验总结。 1. 了解系统 接到重构任务后,不要立刻动手执行重构,而是对当前的业务流程和架构状态有个清晰的了解,如果开发过当前系统的同事还在公司,一定要拉着同事好好讨论。 我们要知道系统一定是给人用的,是给哪些人用的? 要知道怎么给自己创建不同角色的用户,然后登录系统进行操作使用,如果涉及到了一些专有名词,一定要和团队成员沟通并达成一致。 2.

    1.5K10发布于 2020-06-29
领券