干货!请码住——点此领取免费开源框架
何謂框架
框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實例間交互的方法; 框架是可被應用開發者定制的應用骨架。
擁有一套企業級開發框架有哪些好處?
對于一個軟件公司或者互聯網公司來說,開發成本是一個公司非常巨大的成本。而對于一個創業的軟件公司來說,開發成本在前期幾乎是全部的成本。而約定一個統一的框架和技術體系,對于一個開發團隊來說,能夠減少很多成本和少走很多彎路。
擁有一套統一的優秀的企業級開發框架意味著有如下好處:
1.意味著統一了主體的技術體系,可以最大限度的減少后續的開發、維護、擴展成本。
2.意味著擁有了一套成熟的解決方案。
3.意味著保障了代碼的穩定性、延續性和可持續開發,而不是代碼全家桶。很多初創團隊的產品的初始代碼來自于五湖四海(各自成員的前公司的代碼段或技術積累),當開發到一定程度,隨著人員的交替,維護和擴展幾乎不在可能。一份好的代碼是一個產品的根本,否則后續的產品開發都將無從下手。?這里分享一下世上最爛代碼的結果:史上最爛代碼。
4.極大的提高了產品的生產效率。
5.建立有效的開發、知識、體系積累。軟件開發是一種知識活動,因此知識的聚集和積累是至關重要的。框架能夠采用一種結構化的方式對某個特定的業務領域進行描述,也就是將這個領域相關的技術以代碼、文檔、模型等方式固化下來。
6.減少重復開發。簡單的說,大大提高了代碼的復用性。畢竟每次打仗都要臨陣磨槍,耽誤時間不說,質量和速度都沒法保障。
7.有利于提高團隊水平??蚣芡邢鄳囊幏?、約定、設計模式、理念、技術點,通過框架的源代碼既可以輸出開發和技術理念,提高團隊成員的水平,又可以規范代碼,而且可以降低程序員之間溝通以及日后維護的成本。
8.提高軟件質量。
9.提高企業的競爭能力,包括降低成本、提高質量、改善客戶滿意程度、控制進度等方面。
10.有利于團隊多人協作和分工合作。架構師專注于設計框架、組件、領域模型等;軟件開發人員專注于業務邏輯,以及業務的更深程度的分析和挖掘;前端人員更專注前端交互(前后端分離)體驗。
當然,任何事物都需要多方面權衡,我們也要看到一些問題。比如前期需要付出培養成本,框架的理念以及先進性會限制團隊的理念和先進性等等,但是對于企業和創業團隊來說,持續的成本控制是第一位的。
這里奉送中小團隊一句箴言——你可以沒有自己的框架,但是一定要有統一的技術體系。
選擇一套框架有哪些注意事項?
框架相對成熟、穩健
框架使用先進的理念和技術
框架有很高的擴展性
框架一直在迭代升級和完善
框架能減少開發人員的代碼開發量,讓開發人員更專注于業務邏輯
框架結構合理,并且符合相關標準和規范
Magicodes.Admin框架
為此,我們團隊幾經周折,基于ABP和ASP.NET Zero的基礎上打磨出了Magicodes.Admin框架。
在這個過程中,我們走了很多彎路,也經歷過了小米加步槍,比如設計過?Magicodes.NET?框架,Magicodes.WeiChat框架,最終我們決定站在巨人的肩膀上。創業團隊缺衣少食,人丁單薄,站在巨人的肩膀上會讓我們更快騰飛。因此,最終我們推出了Magicodes.Admin框架。
Magicodes.Admin,是一套高效率、易擴展、基礎設施強大、代碼生成完備、理念和技術先進的敏捷開發框架,同時也是一套分布式、跨平臺、多終端(包括Android、IOS、H5、小程序)支持的統一開發框架和解決方案。
擁抱開源一直是我們團隊的核心理念之一。?因此,相關框架我們均已開源。通過我們的自定義菜單可以獲取最新框架源碼以及相關福利。
框架理念、套件
通用權限
多租戶
版本
組織機構
多語言
審計日志(操作審計和數據審計)
緩存
日志
設置管理器
短信服務(Magicodes.Sms)
支付(Magicodes.Pay,微信、支付寶)
微信SDK(Magicodes.WeChat.SDK)
小程序SDK(Magicodes.WeChat.SDK)
通用異常處理
領域驅動
依賴注入
接口權限以及授權
在線接口文檔(Magicodes.SwaggerUI+Swagger UI)
數據驗證
調度任務(Quartz)
后臺任務(Hangfire)
數據篩選器(租戶篩選器、軟刪除、是否激活)
跨平臺(目前基于.NET Core 2.1)
通知系統
即時消息(SignalR)
ORM和數據遷移(Entity Framework Core)
通用導入導出(Magicodes.ExporterAndImporter)
通用存儲(Magicodes.Storage,支持本地存儲和阿里云存儲)
全國行政區域抓取和初始化(Magicodes.Districts)
移動端統一開發解決方案和模板(Angular+Ionic)
前后端分離
后臺前端解決方案和UI(Angular、primeng、bootstrap)
簡單CMS
移動端通用接口(登陸注冊找回密碼等)
郵件服務
移動端多語言支持
交易流水以及多國貨幣支持
大量后臺UI組件(除了常用組件,還支持Tree Table、圖片展示、文件批量上傳、枚舉下拉、關聯項下拉、審計)
單元測試(后臺服務、移動端服務)
代碼生成(后臺服務、后臺UI功能、多語言定義、權限定義、移動端服務)
一鍵部署(后臺服務、前臺服務、后臺前端)
接口調用代碼生成(nswag,后臺前端和移動端前端)
升級工具
配套項目/產品開發流程(https://gitee.com/xl_wenqiang/xinlai_devprocess)
迭代記錄
生成客戶端
好馬得有好鞍。我們傾力打造了配套的生成客戶端。?
最后本框架我們一直在不斷地迭代、開發、更新,并且在我們的項目中不斷實踐,整套解決方案均已走通,只是部分項目代碼我們需要重構后才能提取到框架之中,我們非常樂意和大家分享框架以及相關技術細節和經驗,如果您在使用過程中出現問題,請先閱讀相關文檔并且確保環境安裝正確之后再和我們溝通。
往期精彩:
產品開發管理之流程和體系(總篇)
你的專業知識并不等于你的能力——如何提升自我
戲說程序生涯
原文地址:https://www.cnblogs.com/codelove/p/9778890.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的干货!请码住——点此领取免费开源框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何通过本地化事件正确实现微服务内部强一
- 下一篇: .NET运行时中的监测和可观测性