2012-03-28 65 views
0

我目前正在從事一個大型項目。它已經推出了,但問題是用戶已經在使用該應用程序,並有非常錯誤的結果。他們不會抱怨太多,但我每天都會收到有關錯誤和改進的電子郵件。RoR:大型項目管理。需要在大型項目上工作的RoR Seniors的幫助

我將不勝感激在決定天氣調試應用程序或只是創建另一個幫助。我正在開發一個帶有舊插件的Rails 2.5應用程序。

而我是唯一一個做這一切的人。 T.T

+0

您是否想聘請某人?你有什麼特別的問題嗎? – Austin 2012-03-28 03:37:23

+0

我希望我可以聘請你,但我的老闆正在爲我找到一位永久的同事。我認爲他正在創造一臺克隆機器,以便他能複製我。 – fujisan 2012-08-22 10:04:54

回答

2

及其對項目確實很誘人像你描述折騰出舊代碼和重寫,但它幾乎總是一個錯誤(見http://en.wikipedia.org/wiki/Second-system_effect。在關於重寫結束鏈接是非常寶貴的,尤其是http://chadfowler.com/2006/12/27/the-big-rewrite)。

我想你沒有任何真正的測試套件,或者它會更容易找到問題,你可能會有一個更小的項目,因爲經過良好測試的項目往往是很好的考慮因素(雖然不總是)。這會使得重新實現和保證你已經複製了所有的功能並且任何依賴關係與「新的和改進的」代碼很好地工作是非常困難的。

如果您的用戶得到錯誤的結果,我敢說,你實際上並不知道問題是什麼,所以重寫不會解決這個問題。

當我接管這樣的項目時,第一步是編寫一套特性測試,記錄我認爲系統在當前工作的方式。經常這樣做,你會發現一些沒有意義或者與系統其他部分不一致的功能 - 這可能就是你的問題所在。一旦我們經歷了這個階段,我們就可以開始重構醜陋的部分,清理視圖,將邏輯移至它所屬的某個位置,刪除死代碼等等。但是如果您想保持系統正常運行,這些測試真的很重要。

最後,爲自己設定合理的期望值。像這樣的項目不會在一夜之間變成垃圾 - 也不能在一夜之間修復它們。

+0

感謝您的信息。 – fujisan 2012-04-03 01:41:05

0

富士山我處於確切的狀況,因爲你是。我認爲最好先調試當前的rails應用程序,然後考慮重新構建它。如果您正在重建導軌應用程序,則需要比預期更多的時間。我開始是這樣的:

  1. 創建一個單獨的數據庫和存儲庫,它具有相同的代碼和數據從實時網站中提取。我使用這個網站來處理錯誤,而不是在現場。
  2. 首先開始瞭解哪些模型存在並從用戶模型開始。如果您之前沒有使用過,最好在這一步中使用rails控制檯和dbconsole。使用ruby從控制檯很容易找到依賴關係。
  3. 只是調整模型,發現不同模型之間的關係。模型查看控制器後。現在,一旦我對應用程序中發生的事情有了一個概念,我就開始畫出每個模型的目的以及它在做什麼以及如何以及爲什麼依賴關係。
  4. 最後與工作的錯誤和建議。主要障礙是寶石。當網站是由老年人創建的時候,寶石非常活躍,現在他們都成了孤兒。這使得很難得到任何由於這些寶石而持續存在的錯誤的答案。

Railscasts是你最好的朋友!

我希望有所幫助。祝你好運!