1. 程式人生 > >專案經驗總結分享:圖書館維護系統總結

專案經驗總結分享:圖書館維護系統總結

圖書館維護系統算是我獨立寫的第一個B-S系統,牛腩新聞釋出系統僅僅是照著敲而已,當時看感覺還行,挺簡單,到自己真正做了,才發現很多細節不是沒記住就是不會。但是牛腩視訊的作用是不可低估的,因為他給了我一個巨集觀指導,一個完整的B-S開發流程。同時,也讓我瞭解了一些至關重要的B-S開發常用技術技巧。正所謂:不怕不知道,就怕不知道

專案準備:

這個系統米老師其實早就給我了,可當時沒往心裡去,再加上那時候提高班出了些問題,停課了一段時間,然後又準備自考,所以前期拖了比較長時間,自考完之後,才正式開始做這個系統。

專案開發首先要辦的事是市場調查、可行性研究。由於我是從其他同學那接手的這個任務,已經做好了需求:一個

UML用例圖。當時做的時候受到以前開發程式的影響,拿到UML圖我直接就開始設計資料庫,沒有設計介面。因為以前開發程式都是有前人做好的系統,可以參考一下介面,所以就逐漸忽略了介面設計的重要性,直到設計BLL層的時候,才發現少了介面,這B層實在是沒法寫。沒有介面,通過用例圖硬生生的設計資料庫,可想而知我設計的資料庫也不咋的。

那麼系統開發前期究竟要做些什麼呢?經過思考和總結,歸納如下:

剛剛已經提到了介面,根據個人的理解,介面是需求的具體體現,是對需求的具體化,雖然用例圖可以體現需求,但是過於抽象,不便於分析和改進。

1.和使用者共同設計介面:在系統需求分析階段,需要一個原型設計工具(即純畫介面工具,用來快速設計程式的粗略介面

),開發人員和使用者一起討論交流,共同用原型設計工具設計出一個原始的粗略介面,讓使用者直接看到介面,有效的減少產品與需求不符的情況,就算使用者什麼不懂,但是看的懂介面吧?起碼使用者知道這就是他想要的,即使有改動,一般也是改進性維護和功能新增性維護,不太可能出現核心改動。

2.根據介面設計資料庫:有了介面,接下來就可以設計資料庫,根據介面設計資料庫,總比看用例圖舒服。更重要的是,在設計資料庫過程中,可以及時發現介面的不足來完善介面,這樣即可以減少開發後期具體介面設計的工作量,又可以促進資料庫設計的更加合理。當然,即使是比較合理的資料庫,也只能算是原始資料庫,不可能一次到位。資料庫是程式的根基,重中之重。學到現在,我隱隱感覺一個專案中最有發言權的兩種人是:資料庫設計師、架構設計師。這兩種人一揮筆,程式基本就算是出來了,剩下的就是寫程式碼實現。

3.寫文件並完善資料庫和介面:接下來要做的事應該就是寫文件了:需求分析說明書、概要設計說明書、詳細設計說明書。在寫文件的過程中,藉助於UML圖等方法,繼續發現數據庫設計的不足,完善資料庫,改進介面。


PS根據多次開發的經驗,一定要在前期儘量把資料庫設計完善,在開發中後期如果改動資料庫,將造成非常巨大的工作量。

雖然我在此寫的很輕鬆,但實際上這個階段(專案準備)要佔相當長的時間,至少為整個專案的60%。與使用者交流可能有很多障礙、資料庫不是一時半會就就能設計出來的、寫文件同時兼顧資料庫、寫文件也包含系統架構設計等等。這是一個相當漫長的過程,也是最具技術含量的過程。這個階段過了,系統就有了靈魂,接下來讓程式設計師給他一個身體就完工了(當然,還有後期維護)

根據探索和實踐,發現了兩款優秀的原型設計工具,現在推薦給大家用。

一個是C-S開發設計用:騰訊CDC(Customer Research& User Experience Design Center即使用者研究與體驗設計中心)出品的UIDesigner;一個是B-S開發用:Axure RP Pro 6 快速產品原型設計工具。這兩款工具都是相當的好用,而且使用簡單,會用滑鼠就行,拖拖拽拽介面就出來了。

編寫過程:

開發工具:VS2010SQL Server 2005。開發環境:ASP.NET 4.0

稍有工程經驗的童鞋都知道,軟體編寫過程是整個專案中耗時最少的。因為系統已經在專案準備階段設計好了,在這個階段要做的就是技術實現,機械式的寫程式碼。

1.資料庫指令碼編寫。這次開發系統,根據上級的指示,一律用儲存過程操作資料。我用了大約3天時間來寫資料庫,表指令碼、儲存過程指令碼。我做這個小系統也沒多大,一共就20張表,大約100個儲存過程。此時寫的儲存過程雖然自己感覺很滿足,但是想寫全了是不可能的,除非是做夢。等寫程式程式碼時,就會發現其實還少很多。。。。我印象最深刻的就是資料分頁(真分頁哦。。)儲存過程,我忘記了資料分頁還要知道記錄總數,否則沒法分,這下好了,有多少個需要分頁的查詢就要補多少個獲取總數的儲存過程(當然可以整合成一個,但是表不同、條件不同,整合起來引數很亂,我沒有整合,應該整合了比較好吧,下次實踐驗證吧!)。這些早發現了還好,要是等到寫介面才發現,麻煩就大了,至少要做的是:新增儲存過程、改D層介面、改D層、改B層;

2.程式程式碼編寫。本次開發用了三層架構和抽象工廠設計模式。以前用過一次了,這次顯得輕車熟路。再加上已經有了文件,所以很快就把DBHelper專案、DAL層介面專案、DAL層專案、工廠專案、實體類專案、BLL層專案搞定了。也沒遇到什麼問題,因為這些東西沒什麼技術含量。寫到介面的時候,由於B-S開發和C-S開發有很大區別,又是第一次做,顯得很生疏,出了不少錯誤。印象比較深刻的就是我傻傻的在後臺定義了變數,結果一重新整理全沒有了(詳見文章尾相關文章)。這次感覺介面寫的非常不好,因為水平有限,我把介面寫的有點亂,很多東西都應該整合到BLL層,但是我都放在了介面上。一方面是受到牛腩的影響,另一方面是學的東西有限,有些東西確實沒辦法放到BLL層裡,比如某個小邏輯我想用Session,我只能把它放在介面裡,放在BLL層裡哪有Session物件?還有就是我想找到某個控制元件,要用FindContorl方法,理論上這樣的遍歷邏輯也應該放到BLL層,但是BLL層沒有這些方法。。。希望以後在提高班隨著學習的深入,能解決這些問題(其實我已經聽學長說了,以後學jsp開發時就能解決這些問題)

PS關於資料庫儲存過程,我和一些已經工作的大牛聊天,發現很多公司都不用儲存過程、檢視之類的技術,這樣可移植性不好。現在我也體會不到,只能讓實踐給自己一個明確的答案!

這次開發B-S程式,突然發現自己幾乎沒有用javascript指令碼,很少很少。CSS樣式用的也很少很少。但是介面並不醜陋,低調的華麗。仔細思考一下,這個系統後臺就是簡單的分為五塊,頂部登入資訊---頂部logo---中間部分選單框架()---中間部分具體內容()---底部版權。用了框架就省事多了,但是不能亂用,一般後臺才使用框架,網站首頁沒有用框架的,不利於SEO優化。

另外,我還偷偷的抄襲了點點輕部落格的配色,所以系統顯得很典雅(偷笑),建議各位童鞋以後做專案可以適當參考一下輕部落格的配色,都非常好,國內國外均可,國內比較出名的有:點點、網易輕博、新浪輕博等。對了,還有wordpress主題的配色也都槓槓的,讓人看了非常舒服。

釋出維護過程:

伺服器環境:Windows Server 2003

無論是C-S開發還是B-S開發,釋出始終是看著簡單,做起來問題多多。以前釋出C-S程式,經常遇到控制元件註冊失敗、缺少元件無法執行等讓人頭疼的問題。到了B-S釋出,也不是那麼順利。

1.配置網站。直接用VS2010的釋出功能釋出,看到的就是一些編譯之後的網頁檔案,直接把這些檔案複製到伺服器網站目錄下,修改一下web.config配置檔案中的資料庫連線字串,就沒程式啥事了。至於怎麼用IIS釋出網站,就請讀者google一下吧!非常簡單!整個過程超不過1分鐘。需要提醒的是,如果在一臺伺服器上釋出多個網站,最簡單的辦法就是用埠區分,也就是給不同的網站用不同的埠,預設的是80,當分配非預設埠時,訪問網站一定要在IP末尾加上埠號,例如:。此外,也可以用域名(主機頭)區分網站。這個就比較複雜了,如果僅僅是區域網內訪問,可以修改HOST檔案強制解析,不用花錢買域名。但是如果想在外網也能訪問,得花錢買IP、買域名,假如您不想花一分錢,但是仍然想用自己的電腦釋出網站(動態IP釋出網站),請google一下“花生殼”。

2.配置資料庫。資料庫其實沒啥可配置的,用SQL查詢分析器把SQL指令碼執行,資料庫就算完事了。可是偏偏出現了問題,我的資料庫指令碼是用SQL 2005 寫的,可是伺服器的SQL2003版的,本來2005上執行的好好儲存過程,到2003裡都變成了語法錯誤。沒辦法只能在資料庫上再安裝一個SQL2005。一臺機器上同時安裝SQL 2005SQL 2003,經過查閱資料,發現可行,於是便安裝了。安裝之後用SQL2005執行指令碼,發現竟然還是語法錯誤!再查閱資料,才發現安裝SQL 2005的時候選擇的預設例項,這樣不行,這樣的SQL 2005就是一個介面,核心還是SQL 2003的。幸好可以通過修改SQL 2005的例項名稱來解決。改了例項名稱之後,果然可以了,資料庫,表建立指令碼、儲存過程指令碼、觸發器指令碼以及一些初始資料匯入成功。至此,系統釋出就算完成了。

PS其實遠遠沒有結束,糾結的伺服器,後來不知怎麼的又出錯了,仍然是語法錯誤,沒辦法,只能把2003解除安裝了,這一解除安裝不要緊,SQL 2005也不能用了,最後沒辦法只能把資料庫全解除安裝了,然後重新安裝SQL 2005。所以,勸告大家,千萬別有SQL 2003SQL 2005一起安裝的想法啊!

這次釋出的程式是.NET 4.0的,如果伺服器沒有安裝.NET 4.0一定要先安裝。安裝完成之後用IIS釋出網站記得要選.NET 4.0程式,否則沒法執行。

幾經周折系統釋出成功之後,根據客戶的需求,做了如下完善和修改:

l功能操作框架的標題隨著選單的更換而更換。

l對資料庫連線字串進行加密。

l增加了特殊使用者,專門配置系統用。

l對值班時間推算演算法做了優化處理。

l由於電腦數量較多,手動新增太慢,增加了批量匯入功能。

l其他BUG修復(大約5BUG,大多數是因為初始狀態下資料庫中無資料而出現的)

小結:

說了這麼多,終於要結束了。。。。

做這個系統所有時間加一起,差不多一個月時間。

在提高班的學習告訴我:沒有什麼做不到的!去做就可以了,以終為始,做完了才是真正的開始,才有發言權!驀然回首,不過如此!感謝米老師的用心良苦!加油吧,同學們!

圖書館維護系統相關技術總結: