企业微信大型Android系统重构之路
冰冻三尺非一日之寒,遗留系统不是一天就产生,也不单纯因为一次提交就演化而来,而是随着不断的版本更迭、人员变换、代码不断累积腐化而导致的。遗留系统的技术债务就像一座冰山,虽然表面平平无奇,但是底下却是纵横交错。可怕的是很多时候我们却只看到了表面,而却无法真正发现阻碍产品快速演进的元凶。主动、持续地改...
大模型会毁了年轻程序员 :对话图灵奖得主 Joseph Sifakis
如果自动驾驶公司想将系统集成到汽车中,就必须考虑传统系统工程的因素。这包括将其集成到电机机械系统中,并分析在故障情况下的反应,如发动机故障或爆胎。传统技术存在一个问题,即模型驱动方法与神经网络这种黑箱的集成问题。我们无法理解神经网络内部的运作,而基于模型的解决方案则可以提供内部信息以及不同危害的传播方式...
系统架构设计之可维护性和可演化性
对复杂软件系统,变更而引人潜在错误的风险会显著增大,最终开发人员更加难以准确理解、评估或更加容易忽略相关系统行为,包括背后的假设,潜在的后果,设计之外的模块交互等。而降低复杂性就能大大提高软件可维护性,因此简单性应该是构建系统的关键目标之一。简化系统设计不代表减少系统功能,而意味着消除意外方面的复杂性,有...
遗留系统的技术栈迁移
在对遗留系统进行技术栈迁移时,如果未能事先对迁移过程的风险进行有效识别,就可能为系统引入新的问题,降低系统质量,或者导致迁移的成本过高。根据我的经验,在对遗留系统进行技术栈迁移时,可以识别的主要风险包括:遗留系统本身存在的质量问题,例如紧耦合、缺乏足够的测试、系统可维护性差;缺乏足够的知识来帮助我们理...
褚霸:我对MySQL数据库架构的演化观察
另外一个比较重要的是尊重用户熟悉的姿势,社区里有大量的MySQL产品,都号称和MySQL兼容,但都不是100%兼容,这会造成非常大的困扰,我在兼容性上体会特别深,哪怕99.99999,那个1不兼容的话整个业务系统也上不去,因为很多用户系统已经是一个遗留系统,源代码都不见了,你让他改一行不可能。所有的系统改动都...
从技术、平台、工具、语言&框架等四大方面,详解技术未来的趋势
开发人员往往低估了这些依赖开发所需的成本和时间(www.e993.com)2024年8月5日。为了减少摩擦,开发人员采用虚拟机镜像或Docker容器来创建遗留系统及其配置的镜像。其目的是为了封装遗留系统并供开发人员在本地运行。从而消除重新构建、重新配置和共享环境时候对遗留系统的需要。在理想情况下,团队通过流水线生成相应的遗留系统镜像。开发人员可以通过更...
业务变化不息,架构演进不止 第四届领域驱动设计峰会线上开启
于静说,企业在遗留系统改造中应该遵循“先锋队、树立模范、大部队”的阶段性原则。具体来说,“先锋队”阶段是挑选规模较小、功能简单,业务较为独立的功能模块进行改造,随着老系统的功能越来越多的被微服务系统所代替,老系统也最终被替代。需要注意的是,当发生新老系统的功能切换时,应该逐步切换用户流量,对用户尽量透...