我: 客戶要的網站我已經開發好,可以架上去了。
同事: 好,謝謝。
(過幾天後...)
同事: 客戶說,他們主機沒有對外網路,不能用怎麼辦...
我: ...
這是我某個專案曾經遇到的問題,居然到準備上機測試的時候,
才發現對方公司的主機沒有對外網路。這問題不僅讓人頭痛,
發生的時候也真的是哭笑不得阿。
在公司開發專案可能會遇到一些合約上的問題,
例如會需要使用的設備規格、使用的網路網段、或是開發使用的套件...等,
所以可能會把需要的名目、規格都寫成規格書一條一條寫清楚,
避免造成日後的紛爭。
雖然做Side Project 時候不會遇到此類的問題,
不過我們依然可以把確認需要使用的開發工具,
當作開發前的SOP以利日後有機會在寫規格書的時候,
不會疏漏某些項目。
這一項算是最簡單的部分,如果只是做純軟體開發需要的設備並不多。
有玩PC Game的人應該會比較了解,在官網上都會寫著需要怎樣的配備,
像是RAM、CPU、顯示卡、硬碟大小...等。
不過有一點比較不同的地方就是,因為這次是輪到我們自己來開發,
所以除了用戶端以外,伺服器端的配備也要考慮進去。
因為我們這次開發的項目,同時使用人數可能最多就數十人。
也沒有太多效能上的需求,現在的電腦或是智慧型手機(用戶端),
應該都能正常運行,這邊就簡單舉例Server配備規格。
Server:
項目 | 配備規格 |
---|---|
CPU | Intel Core i3-530 |
記憶體 | 1GB 以上 |
顯示卡 | NVidia GeForce 9600GT 以上 |
硬碟大小 | 60GB 以上 |
因為在不同的系統中有著一些不同的限制,
所以一般在開發的時候就會去限制我們開發的軟體,
要在怎樣的環境下運行。
在網路上下載軟體的時候常會看到軟體都會限定某個作業系統可以使用,
當然這次做為開發者的我們,除了用戶端需要有所限定,伺服器端也要跟著考量。
既然我們這次打算做一個網頁版的菜單,那用戶端的作業系統可以不去考量,
取而代之的是我們需要考慮有支援哪些瀏覽器。
(在同樣的設計下,不同的瀏覽器可能會出現不一樣的效果。)
另外既然是網站不可少的就是網路。要架設在哪個IP位置、使用哪些port號,
還有我們可能會需要架設站台的工具,
因為我們需要儲存客戶的餐點需要儲存資料,所以還需要資料庫。
所以在我們這次開發的專案需要考慮的項目就有:
可以依照這次專案的性質,或是對程式語言的熟練度去選擇我們應該用哪套語言開發。
在網頁上的開發很多就會習慣使用CDN的方式載入外部的套件,
若是這次開發的專案只有對內網路時,就會導致套件失效。
又或是不同套件之間有相依性,當某個套件升級或是更動的時候可能就會導致專案無法正常運行。
所以不論是在事前規劃的時候,或是開發中需要新加入或是更動套件。
都需要把套件列入控管的清單中,避免不要的錯誤產生。
這篇有很多的地方都比較偏向經驗與思考的方向。
開發前,注意到越多的細節,在之後的開發就會省下越多的時間去處理非程式碼上的錯誤。