2010-11-16 86 views
5

上一位程序员离开网站时处于非常不可用的状态,而且我很难修改任何内容。我是新的网页设计,所以我不知道我的技能是否是这种工作的不匹配或者是再正常不过在真正的行业有这样的Web应用程序的问题

  1. 网站主页上有三帧
  2. 每个帧有自己的JavaScript函数(<head>之间,并且也调用其他常见的JavaScript功能(使用<script src=..>
  3. document.all过度使用 - 事实上元件通过的document.all称为或访问仅
  4. 过度XSLT和Web服务的使用 - 尽管我知道使用We b服务通常被认为是一个很好的设计选择 - 除了使用xslt以外,还有其他方式可以使用这些服务。例如,菜单是使用Web方法返回的数据创建的。
  5. <div><td>和所有其他元素都有一个ID,而这些ID是由JavaScript函数操作,然后是一些适当的Web服务和XSLT文件都是基于这些..
  6. 从安全的角度来看加载,他使用T-SQL's for xml auto来处理Web服务返回的大部分数据 - 从安全的角度来看,向最终用户展示表名和列名是个不错的选择?

我有很多困惑的应用程序本身的状态。我是否应该了解他开发并继续研究的复杂性,还是应该开始重写所有内容?我很困惑的是缺少替代品 - 这是网络项目在现实世界中处理的常见方式,还是它是一个例外?

任何建议,任何指针都欢迎。谢谢

+0

我觉得你的痛苦,兄弟。 – DOK 2010-11-16 13:58:47

+0

它听起来不像我这样使用asp.net框架,因为它是有意的。所以如果我的意见意味着什么,我会强烈考虑另一种架构。 – 2010-11-16 14:00:53

+0

@DOK ..谢谢... – Sekhar 2010-11-16 14:07:37

回答

3

不,在这个行业中,人们不可接受地编写不可维护的代码。

我给你的建议是去环比上涨,并说服大家,这需要重写。如果他们问你,找一位具有相关网站开发技能的外部顾问来审核申请(1天)。

保持这个网站原样,因为它'工作'就像在当今的高速公路上保持一辆工作模式的福特-T车一样,非常危险。安全和维护成本可能是说服任何人反对保持该网站“最新状态”的最有说服力的话题。

接下来,让自己受过训练,如果能够重写这个应用程序并知道基础知识,它将会得到回报。今天的技术(asp.net MVC)允许您比尝试维护这个非常规写作的应用程序更快地实现核心业务价值。

+0

从头开始重写代码并不是一个明智的想法。这里有一篇来自Joel Spolsky的好博客文章:http://www.joelonsoftware.com/articles/fog0000000069.html 重构代码然后从头开始重写它总是更好的选择。 – 2010-11-16 14:23:46

+1

我觉得这里也是为了抑制。几乎总是阅读代码是非常困难的。只是因为你无法理解这并不意味着它有什么不妥:) – willcodejavaforfood 2010-11-16 14:44:17

+0

鉴于上下文:1)开发者离开+ 2)不稳定的网站+ 3)没有经验的新开发人员+ 4).net 1.1 ?? 从头开始重写它是最好的选择。 重构这样的网站需要一个高度熟练的专业人员。破坏网站的高风险和花费更多时间和金钱试图将其提升到一个可维护的状态肯定会打破任何人的士气,继续开发这个网站。因此,对于这张海报,我的回答如下: 尝试以各种方式让业务从零开始构建网站时看到明显的价值。 – Rudi 2010-11-16 15:21:48

2

缺乏经验的开发人员(或任何其他人)留下的困难。我认为你有几个艰难的几周是你的头,你真的需要阅读所涉及的技术,以更好地了解他们什么是最佳实践。您还需要深入了解现有代码,以了解它们是如何挂在一起的。

当你完成了所有你真的需要考虑你的选择。通常从头开始重新编写一些东西(特别是如果它真的起作用)是一个坏主意。这显然取决于项目的规模,对于只有几千行代码的小型项目来说,这可能是好的。在看别人的代码时,很容易忽视所有这些奇怪的事情实际上可以修复有效的需求。事情往往开始看起来很整洁,但真正的话来访。

您需要向业务人员提供重新编写的时间估算值,以查看这是否是一种选择,但我猜测您需要接受事情的方式并尽力满足您的要求。也许你可以逐渐改善事情。

1

我建议将项目移动到MVC3并重写XSLT部分以使用MVC的视图和/或部分视图来执行功能。 Razor模型绑定语法非常干净,应该能够快速解开肮脏的XSLT代码,只留下您需要的模型属性。然后,我会从MVC服务器端调用这些Web服务,并将您的对象结果反序列化为实际对象(或者甚至只是使用直接XQuery或Json遍历来直接为您的模型提取东西),然后将这些服务绑定到您的观点。

虽然这可能是您公司技术的巨大飞跃。有些地方不愿意改变。

+0

感谢您提及这些技术。使用了一点MVC,但从来没有听过Razor ..但从来没有使用XQuery ..但会保持自己并列。谢谢。 – Sekhar 2010-11-16 14:51:57

0

我猜这是6-7年前写的,从那以后就被黑了。每个项目都会积累一定量的泡泡糖和胶带。听起来像这个人不好。我建议把它分解成一口大小的块。我认为该网站现在实际上正在工作?所以你不想破坏任何东西,这个“商业”常常认为“当最后一个人在这里时,它工作得很好。”

感受一下维护该项目的最大难题,以及从修复中获得的最大收益。如果你有时间和支持,重写是非常棒的。但是,如果这是一个复杂的网站,那么对于成熟的应用程序还有很多需要说明的地方。成熟的意义在于它满足了业务需求,而不是它的好代码。

此外,在小零件上工作会让您更好地了解项目和业务需求,因此,当您开始重写时,您将拥有更好的视角。