前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇車輛技術管理論文范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
采用的B/S系統結構,系統擬實現以下六大功能:車輛基礎數據記錄及實時顯示;車輛行駛里程、加油管理信息化管理;維修管理等管理功能記錄數據化和即時查詢功能;用戶等級劃分,管理員可掌控部門車輛整體運行情況,通過長期的數據記錄分析,確保車輛安全高效運行。由于交付使用用戶非專業用戶,對于系統的部署和維護不熟悉,因此系統在配置和部署上需要盡量簡便。
2系統設計與實現
2.1系統架構
本系統采用Go語言開發,采用B/S架構。雖然Go語言內建了對HTTP服務的支持,但是為了快速開發,本系統使用了基于Go語言的BeegoWeb框架。數據庫的選擇上,為了保持系統的簡潔,使用了可內嵌的數據庫tiedot。
2.1.1Go語言
Go語言是一種靜態語言,語法上類似C語言,同時增加了現代編程語言的新特性:垃圾回收、動態類型、跟多的內建數據類型、以及內建的多核處理的支持。筆者作為多年的C語言使用者,在使用Go語言開發本系統時,也感受到其高效、便捷的特性。首先,語法簡潔,代碼風格簡練優美;內建的切片、map等數據類型也大大提高了開發效率;由于是開源技術,相應的庫函數和外部庫的代碼全部開放,對問題的排查分析也十分有幫助。同時,Go語言的跨平臺編譯有較好的的支持。本系統在32位的linux系統上開發調試,但是通過簡單的配置,就可以交叉編譯出在64位Win系統上運行的程序。
2.1.2Beego框架
Go語言內建了對HTTP服務的支持。目前使用Go語言構建的web引擎也有數十個。選擇BeeGo首要的原因,是因為Beego是一款由國人主導開發的開源項目。根據Beego官網的信息,目前國內的各大網絡公司均有使用Beego技術,如淘寶、騰訊等,也說明了該框架的可用性。Beego是一個輕量級的web框架,主要由8個獨立的模塊組成。模塊間的耦合度低,開發者可以根據自己的需要選擇要使用的模塊。用戶即使不使用Beego的HTTP邏輯,也依舊可以使用這些獨立模塊。
2.1.3tiedot數據庫
Tiedot是github上的一個開源項目。與傳統的SQL數據庫不同,tiedot是一個文檔數據庫,使用json作為文檔描述的接口。其自身可以作為獨立的數據庫運行,采用HTTP交互,此時可以和任何語言配合使用;也可以內嵌到Go語言的程序中運行。雖然傳統的SQL數據庫亦能勝任本系統的開發,但是考慮到tiedot可以和Go程序的精密結合,方便部署。
2.2數據庫的設計
Tiedo屬于NoSQL數據庫,即非關系型數據庫,在數據表設計時有一定區別。主要在于:NoSQL數據模型設計一般從業務應用的具體數據查詢入手,而不是數據間的關系;數據冗余、反規格化、聚合。反規格化(Denormalization),即可以被認為是把相同的數據拷貝到不同的文檔或是表中,這樣就可以簡化和優化查詢;聚合(Aggregates),文檔數據庫是一種層級式的“去Schema”的存儲,允許嵌套式的內部數據方式來存儲一組有關聯的業務實體。遵循反規格化與聚合的設計原則,以及功能需求的分析歸納,本系統分解出車輛信息表、運維信息表、用戶信息表、信息匯總4個表。其中運維信息表的包含:里程記錄,維修記錄,保險記錄、油耗記錄等子數據結構。實際操作中,運維信息可以靈活地根據情況進行填充,每條運維記錄可以包含多種類型的記錄。這也與用戶的實際操作習慣相符。
2.3系統主體的設計
系統采用典型的MVC的模式進行設計。主要的模塊劃分為以下幾個:
(1)Model模塊:抽象出系統中所需的數據結構。負責頁面數據的載體、數據格式的轉換、內部統計處理、以及數據庫的交互。在數據處理上Go語言的一些特性給實現帶來了便利。Go語言支持struct成員的tag定義。通過tag定義以及反射機制,可以實現對數據的泛型轉換,在數據結構修改后依然可以使用,減少了維護的成本。
(2)Controller模塊:負責頁面邏輯的對應實現。又分為車輛信息、運維信息、統計信息、系統管理幾個子模塊。采用自定義的session處理來實現用戶認證功能的實現。用戶的密碼取md5存儲到數據庫,用戶登錄時通過比照用戶名及md5的密碼進行驗證。通過驗證后,存取用戶ID到自定義的session進行保存,在頁面prepare階段對session中的用戶ID進行檢查,決策用戶是否可以訪問頁面。
(3)View模塊:配合Controller模塊,對頁面內容進行呈現。在開源的bootstrap框架基礎上進行開發,能夠很好的兼容各種終端設備。另外,在統計數據呈現時,采用了開源的Chart.js庫,能夠以友好的動態效果呈現出車輛油耗,維護費用等數據。
2.4系統的部署
部署的易操作性是本系統的一大特色。由于Go語言內建的http服務支持及tiedot嵌入式數據庫,整個系統編譯產生的可執行文件沒有任何外部依賴。只需要將可執行文件連同靜態文件(html/js/css)及數據庫文件一并拷貝到要部署的服務器上,保證對應端口有使用權限,運行可執行文件即可。
3結語