在ASP经典项目的代码库上加快生活速度的一件事是,包含文件的情况有点混乱.我有时会发现我正在寻找的函数被包含在一个完全不相关的包含文件中.有没有人有任何关于如何重构这一点的建议,以便人们可以更容易地告诉函数在哪里需要找到它?
编辑:有一件事我忘了问:vbscript有什么样的机制来防止文件被包含两次?像C中的#ifndef那样排序?
接管一个经典的ASP应用程序时,你可以做一些基本的事情,但你可能最终会后悔这样做.
消除重复的包含文件.我见过的每个经典ASP应用程序都有5个"login.asp"页面和7个"datepicker.js"文件等等.寻找并删除所有重复项,然后根据需要更改应用程序其余部分中的引用.在删除文件时要小心对每个文件进行差异检查 - 通常复制的文件会略有不同,因为原作者复制了它,然后只更改了副本.对于Evolution来说这是一件好事,但对代码来说并不是那么重要.
创建一个合理的文件夹结构并将所有文件移入其中.这一点很明显,但这是你最后悔的事情.无论应用程序中的链接是相对的还是绝对的,您都必须更改它们中的大多数.
将所有包含文件合并到一个大文件中.然后,您可以在逻辑上重新排序所有函数,并将它们分解为单独的,明确命名的文件.然后,您必须逐页浏览应用程序,找出每个页面上的include语句需要(或者坚持使用一个文件,并将其包含在每个页面上 - 我不记得是否这在ASP中是个好主意.我无法理解这里涉及的痛苦程度,并且假设现有的包含文件没有大量使用同名的全局变量.
我不会做任何这个.用史蒂夫·叶格(Steve Yegge)的话来说," 经典的ASP应用程序没有任何问题,无法通过完全重写来修复 ".我对此非常认真 - 我认为程序员在这个世界上浪费的时间并不比维护ASP应用程序更大,而且随着ASP越来越过时问题变得越来越严重.
@ MusiGenisis子弹点列表是从善如流,但我不同意-
"我不会做任何这样的事情.用史蒂夫·叶格(Steve Yegge)的话来说,"经典的ASP应用程序没有任何问题,无法通过完全重写来修复."我对此非常认真 - 我不知道我认为这个世界上程序员的时间浪费比维护ASP应用程序更大,而且随着ASP越来越过时问题变得越来越严重."
一切都很好,但如果它是一个相当大的遗留应用程序,由于缺乏开发人员的时间/资源,通常无法进行完全重写.
我们有一个相当大的经典ASP应用程序,多年来已经成长为手臂和腿,它不是很漂亮,但它确实满足了业务需求.我们没有时间在接下来的六个月里完成重写,这会很好,但是不可能.我们的方法是 -
在需要新功能的地方,它在ASP.NET中实现.这种情况发生在95%的时间.5%边缘情况通常是新的应用程序代码触及旧应用程序的大量要点,要求我们做很多经典的ASP重新工作,这可能使应用程序更加脆弱.
在功能发生变化的地方,我们评估是否可以以最小的影响重构ASP.NET.如果这是不可能的,那么我们将实现经典ASP中的更改并整理现有代码,例如简化包含文件嵌套,用更多跨浏览器友好代码替换javascript,这样的事情.
在回答你关于#ifndef的问题时,我不敢相信.