前面從各個角度,講了大概11篇了。言歸正傳,這里講解一個完整的框架設計實例。這里不是一個空白的描述,而是基于V1.0之后的建構。因此,整個設計過程,也會盡量少走一些彎路。一起來看看吧!
方法論
方法論決定了可以達到的高度
方法論,就是人們認識世界、改造世界的根本方法。
它是人們用什么樣的方式、方法來觀察事物和處理問題。概括地說,世界觀主要解決世界“是什么”的問題,方法論主要解決“怎么辦”的問題。
方法論是一種以解決問題為目標的體系或系統,通常涉及對問題階段、任務、工具、方法技巧的論述。方法論會對一系列具體的方法進行分析研究、系統總結并最終提出較為一般性的原則。
方法論也是一個哲學概念。人們關于“世界是什么、怎么樣”的根本觀點是世界觀。用這種觀點作指導去認識世界和改造世界,就成了方法論。 方法論是普遍適用于各門具體社會科學并起指導作用的范疇、原則、理論、方法和手段的總和。
Tiny框架有著完整的方法論基礎,在方法論的基礎上構建了完整的框架構建、擴展、利用體系。
設計理念
設計理念決定了設計的目標
使用靈活:可以整個使用它,也可以只用它的一個或幾個部分。Tiny構建者認為,一個完整的框架可能需要有許許多多個部分組成,但是對于實際應用的用戶來說,它可能只需要其中的一部分功能。構架一定要有這種能力,可以由使用者進行點菜式,使用,避免只要用一點點功能,就要引入許許多多的內容。
學習成本低、上手容易:框架的學習成本必須非常低,這樣才可以讓使用者更容易上手,避免由于學習難度大而導致的學習曲線太陡、太長。
保持核心的穩定性:Tiny框架是立足于在需要穩定、安全要求非常高的應用環境中使用的,因此其穩定性就是框架構建者首要思考目標,核心部分只使用經過充驗證及廣泛應用的第三方包。
資產的可積累性:只有易于知識積累,才可以真正做到越用越強。
設計原則
設計原則解決目標沖突時的解決策略
約定優于配置原則-COC
不要重復你自己原則-DRY
減法原則 :減法原則是我們自己提出的,意思就是給程序員做減法。
模塊化原則 :模塊化對于軟件開發過程中開發、高度、集成、發布、維護過程中所起的作用及節省或花費的巨大成本。因此提出了Business Unit的概念,使得與模塊相關的所有內容都可以放在一起。
自動組裝原則 :在整個Tiny框架的構建過程中,都非常注重集成過程的自動組裝,要求做到扔進去不用管,由框架自動集成。
下級服從上級原則 :Tiny框架則從框架層級做了限制,使得下級必須服務上級。
單一原則 :通過單一原則進行強制性的約束,使得一個模塊只解決單一模塊應該解決的問題,從而避免不同的問題放在一起解決所導致的胡子眉毛縷不清的問題,同時也避免了不恰當的依賴及模板引用。
集中配置原則 :在Tiny框架我們對配置做了大量的工作,一個是COC方式,如果不配,則采用系統默認的值;一個是集中原則:把需要人工需要配置的內容都集中起來統一配置;一個是對于不需要人工干預的配置,那就集成在Jar包中,作為發布者發布項的一部分。
生態圈
生態圈決定了是否可以持續性發展
只有形成完整的開源生態圈,開源才能生存、發展。
只有輸出沒有輸入的模式不可能得到持續發展。
Tiny開源生態圈,包含了Tiny框架、Tiny開源組件、Tiny商業組件、Tiny技術支持、Tiny咨詢、Tiny培訓等,具有較強市場競爭力和可持續發展的體系,展現了一種新的軟件產業發展模式。
不管您處在生態圈的哪個位置,您都會有所付出有所收獲,這正是生態圈的意義及可持續發展的動力所在。
模塊化
模塊化能力決定了業務模塊治理的優劣
Tiny框架在模塊化方面進行了深入的研究和實踐。
Tiny業務開發過程中的任何內容都可以放入Jar包當中去,包含Java類,靜態資源,JSP等等,所以一個業務模塊是不是被工程引用,只要引入對應的Jar包,就可以引入此業務模塊;只要把某個業務模塊的Jar包移除就可以徹底移除此業務模塊。
Tiny框架的業務單元具有非常好的獨立性、替換性和通用性。
熱部署
熱部署可有效幫助提升系統的可用性
所謂熱部署,就是在應用正在運行的時候軟件升級,卻不需要重新啟動應用。
常見的熱部署方案有OSGI等框架,但是這些方案具有侵入性大,開發調試困難,使用方式固定等弊端。
Tiny框架的Bundle與普通的Jar工程沒有本質區別,僅多了一個配置文件。所以,它即可以作為普通的Jar包使用也可以作為熱部署的Bundle來進行使用。
流程引擎
流程引擎提供了非編程性開發的能力
所謂流程引擎,就是對通過流程化的方式來進行業務、頁面、工作流程的編排支持的開發框架。
Tiny框架提供了業務流、頁面流、工作流(正在實現中)等三種流程編排引擎,可以方便的進行業務流、頁面流、工作流領域的開發。
強大的可視化流程設計工具,可以便捷的進行流程設計。
WEB展現
WEB展現是互聯網應用中重中之重
Web應用開發是J2EE領域的重要問題領域
Tiny框架提供了強大的WEB層的擴展和UI組件支持,對于WEB靜態資源放入Jar包,CSS合并壓縮、JS合并壓縮等方面都有良好支持。對于不同角色的開發者之也可以進行良好角色劃分,使得開發過程更加高效有序。
領先的模板引擎提供的一些獨特特性使得可以更便捷的進行展現層開發。


組件庫
面向組件的開發是效率與質量的保證
組件化編程的關鍵目的是為了將程序模塊化,使各個模塊之間可以單獨開發,單獨測試。組件的提取、管理與利用是面向組件開發的關鍵。
Tiny框架中,組件無處不在,有些組件框架中已經默認嵌入,有些組件就需要自己手工納入。當然,一些愿分享組件的同學也可以發布自己的組件讓別人使用。
組件化有助于推動企業資產的積累與高水平開發人員工作成果的復用,這個在現在這個講究協作的競爭體系中尤為重要。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | ├── org.tinygroup.jquery必須使用的jquery包 ├── org.tinygroup.publicComponentTinyUi特有資源(基礎-必須依賴基于bootstrap) ├── /webapp/compatibility(特殊)compatibility針對各瀏覽器兼容性特有資源 ├── org.tinygroup.bootstrap使用bootstrap最新v3.3.4 ├── org.tinygroup.gridSystems柵格系統(布局) ├── org.tinygroup.compose排版(一般都能用到) ├── org.tinygroup.code代碼 ├── org.tinygroup.table表格 ├── org.tinygroup.form表單 ├── org.tinygroup.button按鈕 ├── org.tinygroup.picture圖片 ├── org.tinygroup.icon圖標 ├── org.tinygroup.animation動畫 ├── org.tinygroup.buttonGroup按鈕組 ├── org.tinygroup.navigation導航 ├── org.tinygroup.dropDown下拉菜單 ├── org.tinygroup.unslider幻燈片 ├── org.tinygroup.tab選項卡 ├── org.tinygroup.labelBadge便簽與標號 ├── org.tinygroup.thumbnails縮略圖 ├── org.tinygroup.alert警告 ├── org.tinygroup.progress進度條 ├── org.tinygroup.modal彈出框 ├── org.tinygroup.customerService客服 ├── org.tinygroup.toTop返回頂部 ├── org.tinygroup.example案例 ├── org.tinygroup.rolling滾動 ├── org.tinygroup.search搜索 ├── org.tinygroup.ad廣告 ├── org.tinygroup.tags標簽 ├── org.tinygroup.fold折疊 ├── org.tinygroup.maskBar遮罩 ├── org.tinygroup.comment評論列表 ├── org.tinygroup.syntaxhighlighter代碼高亮 ├── org.tinygroup.dataTablesDataTables數據表格 ├── org.tinygroup.mmGridmmGrid數據表格 ├── org.tinygroup.superBoxsuperBox圖片列表 ├── org.tinygroup.zoomPiczoomPic圖片列表 ├── org.tinygroup.Smart-navigation導航集合 ├── org.tinygroup.Smart-treeview樹形菜單 ├── org.tinygroup.highChartshighCharts圖表 ├── org.tinygroup.voteCharts投票圖表 ├── org.tinygroup.pieCharts餅狀圖比例分布圖 ├── org.tinygroup.bootstrapDate日期控件 ├── org.tinygroup.uedTipsUED提示 ├── org.tinygroup.loginRegistered登錄注冊 ├── org.tinygroup.trumbowygTrumbowyg編輯器 ├── org.tinygroup.UEditorUEditor編輯器 ├── org.tinygroup.fullCalendarfullCalendar日程表 ├── org.tinygroup.emailTemplate郵件模版 ├── org.tinygroup.error404錯誤404 ├── org.tinygroup.error500錯誤500 ├── org.tinygroup.searchPage搜索頁 ├── org.tinygroup.interfaceElements界面元素 ├── org.tinygroup.forum論壇頁 ├── org.tinygroup.timeline時間軸 ├── org.tinygroup.iconTab圖標控制選項卡 ├── org.tinygroup.userComment用戶評論 ├── org.tinygroup.tabShowTabs展示 ├── org.tinygroup.viewsControl視圖控制 |
開發工具
開發工具是軟件工程方法的延伸
不用Tiny開發工具你可以完成所有基于Tiny框架的開發工作。
用了Tiny開發工具你可以更快的完成基于Tiny框架的開發工作,效率提升5倍不是想象。
這,就是開發工具的意義。
模板語言編輯器

流程編輯器

可視化界面編輯器

還有許多不再一一貼圖。
歡迎訪問開源技術社區:http://bbs.tinygroup.org。本例涉及的代碼和框架資料,將會在社區分享。《自己動手寫框架》成員QQ群:228977971,讓我們一起動手,了解開源框架的奧秘!