遗留代码
技术文档质量低下,没有清晰地解释代码中算法的背景和底层设计选择。
用于管理代码、编译、构建和部署、版本控制和问 最近的手机号码数据 题跟踪的自制或过时工具。构建环境需要隐藏的环境条件或复杂的手动流程。
遗留代码的典型缺点是由老化过程中常见的两个因素引起的:演变和衰退:
原则上,软件包的演进是可取的,因为它可以扩展代码的实用性,并使其能够应对当前的挑战。然而,随着软件的演进和成熟,其部署方式也并非最初设计时所预见的。软件规模的扩大超出了其最初的应用范围。这可能导致最初的假设和约束与当前的需求不匹配。为原始情况设计的软件结构可能不再适用于新的情况。演进的例子包括:
复杂性的增长 ...
Search found 355 matches
- Thu May 29, 2025 3:55 am
- Forum: Taiwan Database
- Topic: 软件老化的原因
- Replies: 0
- Views: 6
- Thu May 29, 2025 3:55 am
- Forum: Taiwan Database
- Topic: 我们遇到了什么?
- Replies: 0
- Views: 8
我们遇到了什么?
这是系列博客的第二部分,我们将探讨如何处理遗留代码,如何使其保持可管理状态,以及如何在必要时恢复它。在第一篇博客中,我们阐述了对遗留软件的愿景,包括尊重其价值、理解其历史和现状,以及对老旧软件缺陷的清晰认识。在本篇博客中,我们将探讨遗留代码的特征及其成因。
遗留代码的各个方面都会降低代码质量并降低代码的可读性。这使得持续的维护和开 最近的手机号码数据 发变得越来越困难。我们经常看到以下情况发生:
纠缠的功能:程序执行整个代码中相互交织的多个任务。
全局变量的作用域和状态:任何变量都可以在整个代码中的任何位置进行修改,并且变量的状态可以影响每个操作。
瑞士军刀:应用程序被用作多用途工具 ...
遗留代码的各个方面都会降低代码质量并降低代码的可读性。这使得持续的维护和开 最近的手机号码数据 发变得越来越困难。我们经常看到以下情况发生:
纠缠的功能:程序执行整个代码中相互交织的多个任务。
全局变量的作用域和状态:任何变量都可以在整个代码中的任何位置进行修改,并且变量的状态可以影响每个操作。
瑞士军刀:应用程序被用作多用途工具 ...
- Thu May 29, 2025 3:55 am
- Forum: Taiwan Database
- Topic: 想要了解更多?
- Replies: 0
- Views: 6
想要了解更多?
结论
随着代码库的复兴,遗留代码已然成为一个活跃的项目,为未来几十年支持新的应用程序、功能和平台做好了准备。此外,更新过程还增强了您对应用程序内部运行的洞察力,从而激发了进一步的改进。此外,维护和扩展软件包的成本也显著降低。遗留代码重现光彩,从创新的阻碍者变成了推动者。
如果您正在处理与遗留代码相关的问题,请随时联系我们。我们可以为 最近的手机号码数据 您提供咨询、项目管理和实际操作方面的帮助。您可以通过[email protected]或致电 联系我们,预约我们的专家。
作者:Koos Huijssen
本博客是系列博客的一部分,也可作为白皮书使用。
在VORtech ...
随着代码库的复兴,遗留代码已然成为一个活跃的项目,为未来几十年支持新的应用程序、功能和平台做好了准备。此外,更新过程还增强了您对应用程序内部运行的洞察力,从而激发了进一步的改进。此外,维护和扩展软件包的成本也显著降低。遗留代码重现光彩,从创新的阻碍者变成了推动者。
如果您正在处理与遗留代码相关的问题,请随时联系我们。我们可以为 最近的手机号码数据 您提供咨询、项目管理和实际操作方面的帮助。您可以通过[email protected]或致电 联系我们,预约我们的专家。
作者:Koos Huijssen
本博客是系列博客的一部分,也可作为白皮书使用。
在VORtech ...
- Thu May 29, 2025 3:54 am
- Forum: Taiwan Database
- Topic: 这通常是不得已而为之的手段
- Replies: 0
- Views: 7
这通常是不得已而为之的手段
现代化方法的缺点是,引入错误和管理流程的风险比封装方法更高。此外,深入代码理解和重构代码感觉很“困难”。但这通常是唯一的方法。其他方法也需要深入代码,因为两者都需要了解代码的实际用途。
完全替换。,成本高昂,风险也高。然而,尤其是在遗留代码依赖于过时的平台或技术的情况下,有时不得不采用“轮回”的方法。理想的情况是,在替换项目结束时,能够实现一个性能与遗留应用程序相同,且面向未来的应用程序。
通常,很难说服管理层,在投入大量资金后,替换版本(但愿如此!)能够提供与原始 最近的手机号码数据 应用程序相同的功能。对于仍在积极开发的应用程序,这需要一段时间的加倍工作 ...
完全替换。,成本高昂,风险也高。然而,尤其是在遗留代码依赖于过时的平台或技术的情况下,有时不得不采用“轮回”的方法。理想的情况是,在替换项目结束时,能够实现一个性能与遗留应用程序相同,且面向未来的应用程序。
通常,很难说服管理层,在投入大量资金后,替换版本(但愿如此!)能够提供与原始 最近的手机号码数据 应用程序相同的功能。对于仍在积极开发的应用程序,这需要一段时间的加倍工作 ...
- Thu May 29, 2025 3:54 am
- Forum: Taiwan Database
- Topic: 新的应用程序、模型和功能
- Replies: 0
- Views: 7
新的应用程序、模型和功能
它是所需功能的浓缩。因此,它巩固了应用程序的行为,并确保这些行为在未来的开发中得以保留。
可能的做法是:将(部分)代码迁移到现代语言。由于模块化程度更高,可以采用部分/渐进的方式进行迁移,这比完全迁移整个应用程序更易于管理。
融入新需求。通过模块化、改进测试和迁移来实现代码的现代化,可以以显著降低的成本满 最近的手机号码数据 足当前需求并展望未来。这些需求包括:
新的界面或 GUI(例如基于 Web 的)
线程安全和并发
提高性能
在新平台上运行,例如在云端运行或在加速器(GPU)上运行
这种方法的主要优势主要在于其循序渐进性以及旨在恢复遗留代码。它相对容易地将开发划分为不同的阶段 ...
可能的做法是:将(部分)代码迁移到现代语言。由于模块化程度更高,可以采用部分/渐进的方式进行迁移,这比完全迁移整个应用程序更易于管理。
融入新需求。通过模块化、改进测试和迁移来实现代码的现代化,可以以显著降低的成本满 最近的手机号码数据 足当前需求并展望未来。这些需求包括:
新的界面或 GUI(例如基于 Web 的)
线程安全和并发
提高性能
在新平台上运行,例如在云端运行或在加速器(GPU)上运行
这种方法的主要优势主要在于其循序渐进性以及旨在恢复遗留代码。它相对容易地将开发划分为不同的阶段 ...
- Thu May 29, 2025 3:54 am
- Forum: Taiwan Database
- Topic: 处理遗留代码的三种方法
- Replies: 0
- Views: 7
处理遗留代码的三种方法
从高层次上讲,可以选择三种方法来继续使用遗留应用程序:
封装。遗留代码内核被视为黑匣子,被封装在一个容器中,不再被打开。创建一个包装器来处理对内核的访问,最好使用 Python 等现代语言。
通常,这种方法可以满足特定的用例,例如并行运行、与其他软件交互或新的用户界面。
这种方法的优点是引入错误和漏洞的风险相 最近的手机号码数据 较低。内核代码不会被触及,而专注于新功能的开发。这也使得初始投资比以下方法更小。
另一方面,这种方法最终可能会导致更复杂(多应用程序、跨语言)的情况。由于内核保持不变,因此无法深入了解其功能。遗留代码被“木乃伊化”而不是“复活”,从长远来看 ...
封装。遗留代码内核被视为黑匣子,被封装在一个容器中,不再被打开。创建一个包装器来处理对内核的访问,最好使用 Python 等现代语言。
通常,这种方法可以满足特定的用例,例如并行运行、与其他软件交互或新的用户界面。
这种方法的优点是引入错误和漏洞的风险相 最近的手机号码数据 较低。内核代码不会被触及,而专注于新功能的开发。这也使得初始投资比以下方法更小。
另一方面,这种方法最终可能会导致更复杂(多应用程序、跨语言)的情况。由于内核保持不变,因此无法深入了解其功能。遗留代码被“木乃伊化”而不是“复活”,从长远来看 ...
- Thu May 29, 2025 3:54 am
- Forum: Taiwan Database
- Topic: 本博客是系列博客的一部分,也可作为白皮书使用
- Replies: 0
- Views: 6
本博客是系列博客的一部分,也可作为白皮书使用
在VORtech 担任科学软件工程师期间,我们服务于那些将计算软件作为其智力资本重要组成部分的组织。如果成功,这样的计算软件包可以存在很多年甚至几十年。随着时间的推移,它会不断发展。然而,与此同时,代码库也会不断扩大,管理难度也会随之增加。维护和扩展这些遗留代码所需的工作量也变得巨大。这种情况甚至可能发展到这样的地步:尽管投入了巨额资金,但从头开始 最近的手机号码数据 替换似乎是唯一的出路。
遗留代码
这是系列博客的第三部分,我们将讨论如何处理遗留代码。如何使其保持可管理状态,以及如何在必要时恢复它。在第一篇博客中,我们阐述了对遗留软件的愿景,包括尊重其价值、理解其历史和现状 ...
遗留代码
这是系列博客的第三部分,我们将讨论如何处理遗留代码。如何使其保持可管理状态,以及如何在必要时恢复它。在第一篇博客中,我们阐述了对遗留软件的愿景,包括尊重其价值、理解其历史和现状 ...
- Thu May 29, 2025 3:53 am
- Forum: Taiwan Database
- Topic: 这些保守的离散化有什么不同?
- Replies: 0
- Views: 7
这些保守的离散化有什么不同?
我们在文献中发现的方法不能同时适用于任意离散化阶数、曲线交错网格和复杂算子,或者不能同时保持质量、动量和能量守恒。
我们的工作的新颖之处在于它结合了
任意收敛阶(与准确性相关的属性),
正交和非正交结构曲线交错网格(见下图),以及
适用于各种各样的现象,例如浅水方程、地震和湍流,同时保 最近的手机号码数据 持质量、动量和能量守恒。
正在进行中
其中一些技术已成功应用于我们客户的项目中。例如,这项研究的灵感就来自于荷兰皇家水务局(Rijkswaterstaat)的计算。
在2021年的ECCOMAS会议上,我们听说了另一个可能有助于获得类似结果的技巧,我们一定会进行研究。目前 ...
我们的工作的新颖之处在于它结合了
任意收敛阶(与准确性相关的属性),
正交和非正交结构曲线交错网格(见下图),以及
适用于各种各样的现象,例如浅水方程、地震和湍流,同时保 最近的手机号码数据 持质量、动量和能量守恒。
正在进行中
其中一些技术已成功应用于我们客户的项目中。例如,这项研究的灵感就来自于荷兰皇家水务局(Rijkswaterstaat)的计算。
在2021年的ECCOMAS会议上,我们听说了另一个可能有助于获得类似结果的技巧,我们一定会进行研究。目前 ...
- Thu May 29, 2025 3:53 am
- Forum: Taiwan Database
- Topic: 哪里出了问题?
- Replies: 0
- Views: 8
哪里出了问题?
对于现实世界中的每个现象(例如上述例子),都可以建立一个数学公式或数学模型,即一组描述该过程如何随时间演变的方程。要使用这样的模型进行计算,需要将其重新表述为计算机可以处理的形式。这种新的公式被称为连续模型的离散化,反映了计算机只能处理离散步骤而非连续步骤的事实。
在该现象的离散模型中,原始模型中的(连续)微分算子已被(离散)差分算子取代。遗憾的是,这些微分算子的性质并非都能自动被其离散近似继承。例如,在离散化过程中,对称性和正性可能会丢失。此外,质量、动量 最近的手机号码数据 能量也可能无法守恒。
解决方案:保守的离散化方法
保对称方法,或称拟态方法 ...
在该现象的离散模型中,原始模型中的(连续)微分算子已被(离散)差分算子取代。遗憾的是,这些微分算子的性质并非都能自动被其离散近似继承。例如,在离散化过程中,对称性和正性可能会丢失。此外,质量、动量 最近的手机号码数据 能量也可能无法守恒。
解决方案:保守的离散化方法
保对称方法,或称拟态方法 ...
- Thu May 29, 2025 3:53 am
- Forum: Taiwan Database
- Topic: 为什么物理量的守恒很重要?
- Replies: 0
- Views: 7
为什么物理量的守恒很重要?
质量、动量和能量守恒对于准确模拟物理过程至关重要。如果模拟中使用的计算方法不守恒能量(或质量、动量),则模拟可能会失效或变得不稳定,例如下图所示。
图 1:能量守恒的不同情形。在耗散情形下,解逐渐消失(左图)。在能量守恒情形下,解不断发展且不损失能量(中图)。在不稳定情形下,解的增长会失控(右图)。
湍流模拟就是一个对这种效应敏感的应用示例。湍流无处不在:在空气中、在水中,也存在于许多工业应用中。这些流动可以用所谓的纳维-斯托克斯方程进行数学描述。
湍流的详细数值研究可以采用大涡模拟(LES) 或直接数值模拟(DNS)进行。在这两种 最近的手机号码数据 情况下,湍流都由所谓的能量级联决定 ...
图 1:能量守恒的不同情形。在耗散情形下,解逐渐消失(左图)。在能量守恒情形下,解不断发展且不损失能量(中图)。在不稳定情形下,解的增长会失控(右图)。
湍流模拟就是一个对这种效应敏感的应用示例。湍流无处不在:在空气中、在水中,也存在于许多工业应用中。这些流动可以用所谓的纳维-斯托克斯方程进行数学描述。
湍流的详细数值研究可以采用大涡模拟(LES) 或直接数值模拟(DNS)进行。在这两种 最近的手机号码数据 情况下,湍流都由所谓的能量级联决定 ...