機房重構總結--完整篇

前言

    摸爬滾打幾個月,終於結束了機房收費系統的重構,從一開始不知道先幹嗎四處求救,到最後逐漸有了本身的學習的套路,堅信過程的辛酸和痛苦,終究會換來一片晴天!sql


過程

    一開始,師傅推薦了幾本書,什麼軟件工程、UML、信息系統開發與管理,說實話,看完後,真的仍是一臉懵,更加不知道如何下手。最後按照這幾本書總結出來就是老老實實按照培養計劃的步驟去作。個人過程大致仍是按照文檔、建模、數據庫、UI設計、代碼實現、測試這樣的步驟進行的,這也是我進行的比較慢的緣由之一吧!不過雖然慢,若是再給我一次機會作機房重構,我想我仍是會按照這樣的步驟去作。由於若是沒有前期這些東西的「折磨」,怎麼會知道真正的軟件開發是什麼樣的,又怎麼知道敏捷開發到底有多好!數據庫

    因此,仍是從文檔編寫、建模(E-R圖、用例圖、包圖、類圖)、數據庫設計、UI設計(模塊設計)和代碼實現進行吧!這些都要考慮到功能、性能以及用戶體驗方面,尤爲是前期,打好基礎,後期的修改就會不多!設計模式


數據庫設計

    本次數據庫設計我才用的是E-R圖轉數據庫的方法,不過還有不少設計數據庫的方法,例如sql語句創建,直接命令創建。設計數據庫須要注意的東西有不少:好比說表中字段有沒有冗餘、需不須要設置主鍵、字段的精度最好設置多少應該爲何類型,符不符合三範式。。。數據庫設計


UI設計

    這個其實也蠻重要的,其實並非簡簡單單的畫一個特別好看的界面,還應該更注重用戶體驗。例如:按鈕放在哪一個位置用戶更方便去點,空間之間的距離和大小、顏色的協調性,不一樣界面風格的一致性,窗體大小的適中,是否能夠最大小化,MDI窗體的設置。。。性能


技術

設計模式

1.單例模式:只能生成一個實例,也就是一個窗體只能有一個。
學習

2.外觀模式:負責整合B層的方法,爲一些有共性的方法提供統一的接口,減小B層和UI層的耦合。測試

3.抽象工廠模式:減小B層和D的耦合,數據庫替換方便。spa

4.模板方法模式:像查詢功能,功能很類似,很是適用模板方法。設計

5.職責鏈模式:處理完這個再處理那個,適用不少功能,例如上機、下機。對象

6.策略模式:不一樣問題不一樣處理方法。例如固定用戶和臨時用戶的算錢。


數據庫技術

存儲過程:適用同時增刪改查多個數據表。

視圖:同時操做兩個不一樣的數據表,合二爲一的虛擬表。

觸發器:就像老鼠夾同樣,一踩就夾。


其餘:公共變量的使用、報表生成。

其餘就是整個過程當中面向對象的體現,拋棄面向過程。代碼封裝、抽象、繼承、多態、複用、可修改性可維護性的體現。工廠到底能不能更換數據庫等問題。


思想

1.一開始必定要對這個事物有一個宏觀把控,是什麼,爲何,怎麼作,上套路,而後就按照培養計劃(真正的巨人)的要求開始作。這個時候千萬不要問太多人,由於每一個人的方法不同,問的越多越亂本身就越不想作。

2.一開始不要考慮這個方法對不對,這個世界上沒有必定正確的道路,找到一個方法,先去作,若是發現這條路走不通,那就再探索,再去實踐別的方法。固然最重要的是本質和大方向必定不要變。千萬不要陷入一直考慮猶豫哪一個是最好的。

3.項目千萬不要拖,越拖越不想作,一氣呵成。當本身遇到瓶頸點時,想辦法放鬆一下本身,而後就算再不想作,逼本身一把。還有就是不斷總結,不斷給本身找動力。

4.思考問題的方式,在接觸一件事情前千萬不要着急去作,先去思考,也就是宏觀把控,看看能不能找規律找套路。以後多問本身幾個問題,發揮門衛思想,多維度多角度去想問題。

5.期間多和別人交流,多向身邊的人學習。

6.想作一名精英,就不要對本身放低要求,千萬不要作讓本身後悔的事情。