Atitit 项目的主体设计与结构文档 v5
?
?
?
Atitit 項目的主體設計與結構文檔 v5
?
?
?
?
1. 版本歷史說明2
2. 功能大概說明2
3. 實現的目標3
3.1. cross device跨設備(pc 手機 平板)3
3.2. cross screen跨不同屏幕(pc,手機,平板等盡可能兼容大小不同屏幕)3
3.3. 跨語言標準化api3
3.4. 高擴展性(為以后不斷的修改留下很好的余地以及較為容易的擴展3
3.5. 兼容性3
3.6. 源碼可讀性dsl提升,(為以后維護修改方便維護性3
3.7. 跨平臺(微信平臺等app內嵌, 安卓平臺app內嵌,ios平臺app內嵌,pc平臺)3
3.8. 跨架構部署(支持多種部署方式,bs web cs 桌面程序,Hybrid)3
3.9. 部署友好(盡可能支持綠色版復制部署,免安裝sdk等)3
4. 前端界面Gui總體架構4
4.1. 跨語言環境與跨平臺gui方案靜態 h5+rest方案(重要)4
4.2. 客戶端ui控件,避免服務端ui控件,提升擴展性(重要)4
4.3. 客戶端mvc方案 避免服務端mvc方案,提升擴展性(重要)4
4.4. 頁面流程跳轉前端js實現,方便日后調整維護修改5
4.5. 其他5
5. 后端語言選擇企業級架構與語言體系 java 體系 net體系5
6. 中間層架構5
6.1. Ioc架構容器化(重要)5
6.2. 8.16. Rest ?接口rest化(重要)5
6.3. Hybrid集成化6
6.4. Plugin插件體系模塊化6
6.5. Dsl化6
6.6. Func base unit 基于功能的單元6
6.7. platform平臺化6
6.8. 8.17. Text 協議文本化6
7. 存儲層架構6
7.1. Oodb化,盡可能的oo化。6
7.2. 推薦Mysql數據庫,開發部署友好性高6
7.3. 動態orm6
8. 報表7
9. 配置7
?
?
1.?版本歷史說明
V5 完善了一些細節,增加了對報表架構的說明
?v3 v4 繼續完善細節
V2 基本內容完善
V1 大概提綱與部分內容
2.?功能大概說明
參見具體的功能文檔
3.??實現的目標
3.1.?cross device跨設備(pc 手機 平板)
3.2.?cross screen跨不同屏幕(pc,手機,平板等盡可能兼容大小不同屏幕)
3.3.?跨語言標準化api
3.4.?高擴展性(為以后不斷的修改留下很好的余地以及較為容易的擴展
3.5.?兼容性
3.6.?源碼可讀性dsl提升,(為以后維護修改方便維護性
3.7.?跨平臺(微信平臺等app內嵌, 安卓平臺app內嵌,ios平臺app內嵌,pc平臺)
3.8.?跨架構部署(支持多種部署方式,bs web cs 桌面程序,Hybrid)
3.9.?部署友好(盡可能支持綠色版復制部署,免安裝sdk等)
?
?
4.??前端界面Gui總體架構
4.1.?跨語言環境與跨平臺gui方案靜態 h5+rest方案(重要)
頁面界面ui使用html靜態頁面模式,與后端交互通過ajax ?rest接口。。
這樣方便同一個頁面界面ui,可以同時應用在不同的語言與平臺環境里面(比如java net php 微信 安卓 ios等跨平臺app),此外手機平板 pc桌面程序等app可能需要直接把html打包在本地。。
使用客戶端h5界面,可以避免平臺環境綁定寫死。。
如果使用服務端的jsp aspx php等模式,則會造成跨語言環境平臺性的喪失,jsp是無法運行在net環境下的,反之aspx也無法運行在java環境下,而且手機平板本地app打包只能解析運行html。。
實現了較為清晰的前后端分離,團隊情況下也可以同時提升倆端的開發效率
?
Ui方面優先使用公有標準h5,盡可能避免私有標準的ui方案,比如wpf(就是ms的h5),微信小程序(就是騰訊的h5)等。。Native方案更不推薦,除非很需要性能(通常是重度游戲,音視頻等項目)。。
4.2.?客戶端ui控件,避免服務端ui控件,提升擴展性(重要)
標準h5控件可能不足,推薦搭配比如amazeui bootstrap等使用廣泛的跨平臺ui控件,盡可能同時支持手機最好了,現在移動化是個很大趨勢。。Easyui也是個不錯的控件庫。
?
如果使用了比如struts,wpf等服務端控件,就會造成環境與平臺綁定,導致ui界面移植性喪失
4.3.?客戶端mvc方案 避免服務端mvc方案,提升擴展性(重要)
?
目前常用的客戶端mvc ?推薦例如 angular.js vue.js等東東,同時搭配jquery等框架庫
4.4.?頁面流程跳轉前端js實現,方便日后調整維護修改
4.5.?其他
統一的gdi與dom api
提升用戶體驗,界面ui動畫
頁面轉換過渡期間動畫
后端交互jq ajax 以及服務端腳本共同使用
不使用瀏覽器擴展模式。不好調試
界面音效設計,略
5.?后端語言選擇企業級架構與語言體系 java 體系 net體系
首選企業級語言java 體系。各方面資料齊全,全體系,桌面,web,安卓系統全跨越,方便代碼重用。
C# net也是企業級語言,但是跨平臺較弱了,也不可做安卓手機平板app等。
其他的php 就要非常謹慎選擇了 ,php 做做簡單web快速開發效率高,不過較為復雜企業級應用做不了,手機平板一類app也不可。 此外源碼外漏,較容易被病毒木馬篡改,嵌入病毒代碼片段,安全隱患。。
node.js ?python這一類就比較非主流了,一般不推薦了。。
盡力避免過時淘汰的語言技術,比如VB delphi asp pb 等。。
6.?中間層架構
6.1.?Ioc架構容器化(重要)
6.2.?8.16. Rest ?接口rest化(重要)
?
6.3.?Hybrid集成化
6.4.?Plugin插件體系模塊化
6.5.?Dsl化
6.6.??Func base unit 基于功能的單元
6.7.?platform平臺化
6.8.?8.17. Text 協議文本化
?
7.?存儲層架構
7.1.?Oodb化,盡可能的oo化。
7.2.?推薦Mysql數據庫,開發部署友好性高
常用的三大數據庫mssql (sql server) ,mysql ,oracle 。。
sql server的主要問題是必須要安裝(這個也是ms系列的通病,包括ide vs ,office,sdk等),常常這些大型軟件安裝麻煩,特別不同的環境,可能不同的要求,常常不能滿足條件造成回滾,可能需要重啟服務器,反復安裝幾次才可成功,此外只能在win平臺。。
Mysql,綠色版免安裝,部署方便,可以安裝為服務,也可以單進程運行???/span>linux win等服務器平臺。推薦的此數據庫
Oracle貌似也可綠色版運行。但是超大型數據庫,比較麻煩,體積龐大,影響開發效率,除非很大型的項目,否則避免使用。
7.3.?動態orm
常用的全自動化orm架構,配合半自動化的orm架構,配合完全動態化的orm架構會更好。。
?
?
8.?報表與圖表
一般的報表重點在于圖表可視化展示,這里涉及到界面ui的還是h5 js 優先了。。方便多個語言環境與多個不同設備顯示。
?
常用的圖表,一般有4大圖表(條形圖、柱狀圖、折線圖和餅圖),此外還有金字塔,組織架構圖,地圖等常用圖表
?
常用的圖表類庫,按照流行度排列如下 Highcharts 》》Chart.Js >>百度Echart ?
?
傳統上net java系列都有一些報表圖表控件,但是一般就不推薦了,因為那些是服務端ui控件,除非客戶端H5 js圖標庫不能滿足需求的列外。。
?
9.?配置
多模塊架構配置設計
?
?
9.1.?參考資料
Atitit.js圖表報表工具比較
?
?
?
?
?
?作者::?綽號:老哇的爪子claw?of Eagle?偶像破壞者Iconoclast?image-smasher
捕鳥王"Bird?Catcher?王中之王King of Kings 虔誠者Pious?宗教信仰捍衛者?Defender?of?the?Faith.?卡拉卡拉紅斗篷?Caracalla?red cloak
簡稱::?Emir Attilax?Akbar?埃米爾?阿提拉克斯?阿克巴
全名::Emir Attilax?Akbar?bin Mahmud?bin ?attila bin Solomon?bin Adam??Al?Rapanui?
埃米爾 阿提拉克斯?阿克巴?本 馬哈茂德?本?阿提拉 本 所羅門 本 亞當??阿爾?拉帕努伊???
常用名:艾提拉(艾龍),???EMAIL:1466519819@qq.com
頭銜:uke總部o2o負責人,全球網格化項目創始人,uke宗教與文化融合事務部部長,Uke部落首席大酋長,uke制度與重大會議委員會委員長,uke保安部首席大隊長,uke制度檢查委員會副會長,奶??萍?/span>cto ,uke 首席cto uke波利尼西亞區大區連鎖負責人,克爾格倫群島區連鎖負責人,萊恩群島區連鎖負責人,uke湯加王國區域負責人。布維島和南喬治亞和南桑威奇群島大區連鎖負責人?
?Uke軟件標準化協會理事長理事長?uke終身教育學校副校長
Uke 數據庫與存儲標準化協會副會長 uke出版社編輯總編
?
轉載請注明來源:attilax的專欄 ??http://www.cnblogs.com/attilax/
--Atiend
?
?
?
?
總結
以上是生活随笔為你收集整理的Atitit 项目的主体设计与结构文档 v5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AOP之PostSharp2-OnMet
- 下一篇: Python黑客编程基础3网络数据监听和