從上年暑假開始總結一下我這半年的軟工之路,並不是細節上的總結,而是從宏觀上總結,找到它們之間的聯絡,再次起到“囫圇吞棗”的作用。依次從資料庫、管理系統、收費系統、軟體工程、UML、Rose畫圖、C#學習、設計模式、三層架構、VB.NET、SVN、合作開發收費系統,主要分為三個階段。
初識
——資料庫、管理系統、收費系統
這個階段主要是開始接觸軟體行業,減少對代碼的抵觸和對編程的恐懼。
真正接觸軟體這門藝術,可以說是從資料庫開始。雖然耿老師講的一般,但是走出了以前把所有資料定義成變數,代碼不超過一百行的階段。做管理系統的作用主要是熟練對資料庫增刪改查的應用,把資料庫和代碼合在一起理解。收費系統比起管理系統,代碼和複雜度相對大很對,做收費系統的目的主要是再次熟練資料庫使用,宏觀上接觸較大軟體的結構,最大的作用是很大程度上降低了對工程項目的恐懼心理。這個階段就像戀人的初識:對自己充滿信心的同時又對自己有所懷疑,同時憧憬著美好的未來。
再遇
——軟體工程、UML、Rose畫圖、設計模式、三層架構、SVN
這個階段主要是系統的理解軟體,由代碼員向程式員的轉換,有面向過程向物件導向的轉變。
這一階段主要是對軟體的設計,是設計必然少不了理論,論的頭都大了,當時就想一個軟體編代碼不就成了,還設計什嗎?現在看來,一個軟體如果設計階段做的很好,代碼是一件非常easy 的事,尤其是經過團隊開發收費系統,對設計的重要性看的更重。
軟體工程:先不管它多少理論,簡單看來就這些:文檔和思想。文檔就是說你做到哪個階段必須要有相對應的詳細文檔;思想,合理設計非常重要。概括說來,就是在軟體的整個生命週期,從分析可行性到軟體棄用,都需要軟體工程思想指導。軟體工程的目的主要是:合理分配團隊資源、高效率低支出、階段量化地做出一款健壯性好、易使用、易維護、易擴充的軟體。
UML:整合模組化語言,顧名思義,它的作用主要是建模,建什麼模?物件導向的模,主要體現在圖和關係中。如果把修飾符、參數、傳回值等都設計合理,UML圖幾乎可以包含軟體編碼所需要的所有內容。這點在合作開發的時候體驗尤其深,如果我的類圖和時序圖畫好,那麼組員實現代碼會非常容易。如果想加深對UML理解,推薦網址:UML軟體工程組織。
設計模式:“咬文嚼字”看,設計模式是設計軟體常用的一些方法的抽象。設計模式源於對軟體中經常遇到的問題的經驗總結,然後對分類進行抽象。抽象出來的適合其他同樣的問題,設計模式是對常遇到問題的固化思維和解決方案。話說當時看《大話設計》這本書時非常佩服作者,能把這麼抽象的概念用如此貼切、寓教於樂的方式體現出來。
三層架構:三層架構並不只是三層,它只是一種分層思想的概述。簡單看來就是把代碼分層,方便各層之間同時開發和降低各層之間的耦合,方便維護和擴充。詳見我的部落格:三層架構初探
SVN:subversion版本控制,由於合作開發的收費系統較小,所以對它的版本控制的重要沒有多大的體會,體會到的是對團隊開發的重要性,尤其是用三層架構的系統,各層之間互不干擾。
相知
——合作開發收費系統
前面如果說都是對軟體藝術鋪墊,那麼這個階段就是對初次跨入軟體藝術。合作開發機房收費系統,把這半年所學全部用上:合理設計資料庫、運用抽象工廠等設計模式、完整的UML圖、文檔、SVN還有就是組員之間的溝通和理解……
細細看來,這一路非常充實,總結完才知道這半年學了這麼多。這篇文章是對本階段的總結,套用軟體工程,權當是對我軟體之路的“可行性分析報告”吧,此“可行性分析報告”的結論是:可以立即執行。