2010-11-16 83 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年前寫的,從那以後就被黑了。每個項目都會積累一定量的泡泡糖和膠帶。聽起來像這個人不好。我建議把它分解成一口大小的塊。我認爲該網站現在實際上正在工作?所以你不想破壞任何東西,這個「商業」常常認爲「當最後一個人在這裏時,它工作得很好。」

感受一下維護該項目的最大難題,以及從修復中獲得的最大收益。如果你有時間和支持,重寫是非常棒的。但是,如果這是一個複雜的網站,那麼對於成熟的應用程序還有很多需要說明的地方。成熟的意義在於它滿足了業務需求,而不是它的好代碼。

此外,在小零件上工作會讓您更好地瞭解項目和業務需求,因此,當您開始重寫時,您將擁有更好的視角。