python – 如果确定我们的系统需要大修,那么最好的方法是什么?

我们正在使用VBScript作为主要语言来构建基于Classic ASP的Web应用程序.我们同意我们的后端(框架,如果你愿意)已过时,并没有为我们提供快速前进的适当工具.我们已经完全接受了当前的webMVC模式,并且不能以合理的方式使用当前的技术来实现.缺失的大功能是适当的调度和继承模板等.

目前正在讨论两条路径:

>使用JScript将现有应用程序移植到Classic ASP,这将使我们能够毫不费力地从那里到.NET MSJscript,并最终在.NET平台上运行(最好是MVC的东西将在那时完成,ASP在我们的观点中,.NET并不比我们现在好多了.这被认为是比下一个选择风险更小的更安全的路径,尽管可能需要稍长一些.
>使用其他一些技术完全重写应用程序,现在该软件包的领导者是Python WSGI,它具有自定义框架,ORM和良好的模板解决方案.即使是django和其他预先构建的解决方案,这里也有摆动空间.这种方法有望成为最快的解决方案,因为我们可能会在实际产品旁边运行测试版,但如果我们不能/不能做到这一点,它确实有可能浪费大量时间.

这并不意味着我们的逻辑已经消失,因为我们多年来建立的逻辑相当稳定,正如所指出的那样难以处理.它建立在SQL Server 2005上,大量使用存储过程并在IIS 6上发布,只是为了更多的背景.

现在,问题.有没有人采取上述两条路径中的任何一条?如果是这样,它是否成功,它怎么可能更好,等等.我们不希望偏离做这两件事之一,但一些建议或其他解决方案可能会有所帮助.

解决方法:

不要丢弃你的代码!

这是您可以犯的最大错误(在大型代码库上).见Things You Should Never Do, Part 1.

您已经在这些旧代码上投入了大量精力并制定了许多错误.抛弃它是一个典型的开发人员错误(我已经做了很多次).它会让你感觉“更好”,就像春季大扫除一样.但是你不需要买一套新公寓和所有新家具来装你的房子.你可以一次在一个房间工作……也许有些东西只需要一个新的paintjob.因此,这就是重构的地方.

对于应用程序中的新功能,write it in C# and call it from your classic ASP.当您重写此新代码时,您将被强制为模块化.当你有时间时,将旧代码的一部分重构为C#,并随时解决错误.最终,您将使用所有新代码替换您的应用.

您也可以编写自己的编译器.很久以前我们为经典的ASP应用程序写了一个,以便我们输出PHP.它被称为Wasabi,我认为这就是杰夫阿特伍德认为Joel Spolsky脱离摇杆的原因.实际上,也许我们应该发货,然后你可以使用它.

它允许我们将整个代码库切换到.NET以用于下一个版本,同时只重写我们源代码的一小部分.它也让很多人称我们为疯了,但编写编译器并不复杂,它给了我们很大的灵活性.

此外,如果这是一个内部唯一的应用程序,请保留它.不要重写它 – 你是唯一的客户,如果你需要将它作为经典的asp运行,你就可以满足这个要求.

上一篇:javascript – 在添加新行时将焦点设置到div内部的表格末尾


下一篇:用于阶乘不正确输出的Java程序