2013-11-27 82 views
0

我在開發我的第一個網站時發現,數據庫列,連接選項和各種其他組件的最小變化導致網站失敗,直到我糾正了可能需要或可能不需要的問題很多時間(禍哉我)。我想知道我現在可以採取什麼措施來防止這些令人頭疼的事情,因爲我推遲了網站的發佈以保持升級。一旦我完成了我希望看到的改變,我知道我不會真正做到,但是在某個時候我必須進入下一個階段。網站升級提前規劃

是的,我知道可能沒有一個好的解決方案,並且最終一個自我糾正設計在這一點上比它的價值更麻煩。但是,如果任何灰色鬍鬚有任何提示,他們可以提供基於他們自己的經驗與WebDev的工作,特別是與LAMP堆棧,我將不勝感激。

具體來說,我想知道在客戶信息處於活動使用狀態下修改數據庫和網站代碼時要注意什麼,以防止出現錯誤以及如何推出更改。

編輯1:

是的,所以答案似乎是,我需要對活動網站複製到我的測試環境。我正在尋找一些已經提出的開發解決方案。定期備份是至關重要的,但我可以看到插入新列和修改查詢作爲錯誤排序表等的原因。 「這就是成爲一名優秀程序員的地方,測試人員可以派上用場」,角落裏有人說。當我研究提出的解決方案時,我同時歡迎所有其他人。 「實時網站」的實時副本很適合在測試過程中實時創建。

+2

對網站的本地副本進行所有更改(包括數據庫更改)。當他們滿意時,一次性部署它們。研究可以管理代碼部署,數據庫更改等的自動化部署系統。 – sevenseacat

+1

正如sevenseacat所說,這是擁有開發和生產環境的最佳理由。更好的是,研究版本控制。 – Mattt

+0

幾乎所有開發的絕對必需品:開發環境,測試環境,生產環境,源代碼控制,數據庫遷移系統,部署系統。 – deceze

回答

1

以上答案都非常有效,最後,他們代表你的目標的解決方案。

與此同時,您可能已經爲您的網站做了很多工作,即使逐步遷移到這些實踐中也是如此。

爲了做到這一點,我建議你安裝PHPUnit(或其他單位來與您使用的網絡語言)。也有「圖形」版本,如VisualPHPUnit,如果這更多的是你的味道。

這些工具不是永久的解決方案。你實際上應該瞄準將它們添加您永久的解決方案,那就是建立開發服務器等 然而,即使作爲臨時解決方案,他們幫助你達到質量的相對穩定度的軟件組件和避免的80-90%在現場服務器上進行編碼帶來的驚喜。

你可以開發你的代碼在一個單獨的目錄,並測試它,你將它投入生產之前。您可以創建模擬對象,讓您的代碼可以自由進行交互,而不用擔心影響。您的測試可能會加載自己的備用配置,以便他們在第二個副本數據庫上工作。更進一步,您可以將您的網站納入測試本身。有幾個應用程序,如Selenium,允許您自動化和測試您的生產網站,以便您可以可靠地知道您的最新更改沒有負面影響您的網站語義。

簡而言之,儘管您的目標應該是獲得一個適當的開發環境,但即使在今天幾個小時的學習期間,您也可以做得非常好。

+0

謝謝,這是令人放心的。我的問題被提出,認爲有些事情我不知道......我想確保版本系統,自動化和測試環境是每個開發人員用來完成任務的準系統工具。我的原始問題是從手動操縱我的表格(觀察效果)而不是喜歡結果。在生產環境中,所有指針指向正確的位置至關重要。對此的答案似乎是增加了更多層的數據冗餘以及越來越多的徹底測試。 – SilverFox

1

開始使用一些(也許簡化的)某種版本管理:

  1. 保持一個開發環境。在本地或在第二個.htaccess保護的文件夾聯機。讓它使用它自己的分貝。
  2. 測試此dev env中的每個更改。一旦你滿意,把他們轉移到生產環境。
  3. 使用git或svn(svn可能會比較簡單,但意見不盡相同,簽出「tortoise」)來保存您所做的每一項更改的快照(「commit」)。如果出現任何問題,您可以通過這種方式來區分最新的提交。
  4. 保持定期備份。