我正在考虑尽量减少未来对尚未编写的应用程序的影响。我试图避免任何第三方产品,甚至避免操作系统特定的电话。任何人都可以提出其他未来证明应用程序的方法。这个想法不需要在10年或20年内重写主要部分,并且只需要进行维护(错误修复)。
答案 0 :(得分:7)
如果您希望程序在这段时间内继续运行(在现代操作系统上),您可能最终只能用纯ANSI C(或C ++)编写它。多年来,其他任何事情都可能需要进行一些调整 - 并且没有人真正知道在未来10到20年内会发生什么。
尽管如此,这里有一些提示可以减少这些问题:
答案 1 :(得分:3)
挖掘出仍在当今机器上运行的10年和20年历史的程序,看看它们为什么仍在运行以及为什么它们具有价值。我看到一些计算密集型的基于控制台的应用程序仍然偶尔使用,大多数是用C和FORTRAN编写的,由其他应用程序调用。如果您的应用程序有很多GUI,您确定它在几十年后仍然具有任何价值吗?也许考虑将用户界面从核心功能中分离出来,以便随着UI范例的变化和发展,将来可以替换UI。如果以非常模块化的方式编写系统,可以保留仍然提供价值的模块,而可以替换明显过时的模块。
答案 2 :(得分:2)
以64位编写。我们现在发现许多第三方依赖项不支持64位,因此我们遇到了问题。
答案 3 :(得分:1)
构建一个在10年内几乎不需要维护的应用程序的最佳方法是查看10年前构建并仍在运行的系统。
根据我的经验,大多数不需要重大升级的系统都是通过运行10年前部署的相同或类似硬件并使用相同的界面来实现的。
由于摩尔定律或可用性改进,维护人员选择将性能改进换掉,而多年来几乎没有维护。
答案 4 :(得分:0)
自动化测试也可以提供帮助。 并不是说你的应用程序会被“证明”,但我会知道在事情发生变化时需要修复的内容。
答案 5 :(得分:0)
我开发的很多应用程序都在一个循环中运行(例如:每年)。我做的最重要的事情是确保它们继续工作并不是硬编码日期或日期范围。例如:
year(now())
DateSubmitted BETWEEN year(now()) AND DATEADD(year,1,year(now()))
了解范围当然,这只是一些例子。