1. 程式人生 > >乾貨!請碼住——點此領取免費開源框架

乾貨!請碼住——點此領取免費開源框架

何為框架

框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件例項間互動的方法; 框架是可被應用開發者定製的應用骨架。

擁有一套企業級開發框架有哪些好處?

對於一個軟體公司或者網際網路公司來說,開發成本是一個公司非常巨大的成本。而對於一個創業的軟體公司來說,開發成本在前期幾乎是全部的成本。而約定一個統一的框架和技術體系,對於一個開發團隊來說,能夠減少很多成本和少走很多彎路。

擁有一套統一的優秀的企業級開發框架意味著有如下好處:

  • 意味著統一了主體的技術體系,可以最大限度的減少後續的開發、維護、擴充套件成本。
  • 意味著擁有了一套成熟的解決方案。
  • 意味著保障了程式碼的穩定性、延續性和可持續開發,而不是程式碼全家桶。很多初創團隊的產品的初始程式碼來自於五湖四海(各自成員的前公司的程式碼段或技術積累),當開發到一定程度,隨著人員的交替,維護和擴充套件幾乎不在可能。一份好的程式碼是一個產品的根本,否則後續的產品開發都將無從下手。 這裡分享一下世上最爛程式碼的結果:史上最爛程式碼。
  • 極大的提高了產品的生產效率。
  • 建立有效的開發、知識、體系積累。軟體開發是一種知識活動,因此知識的聚集和積累是至關重要的。框架能夠採用一種結構化的方式對某個特定的業務領域進行描述,也就是將這個領域相關的技術以程式碼、文件、模型等方式固化下來。
  • 減少重複開發。簡單的說,大大提高了程式碼的複用性。畢竟每次打仗都要臨陣磨槍,耽誤時間不說,質量和速度都沒法保障。
  • 有利於提高團隊水平。框架往往有相應的規範、約定、設計模式、理念、技術點,通過框架的原始碼既可以輸出開發和技術理念,提高團隊成員的水平,又可以規範程式碼,而且可以降低程式設計師之間溝通以及日後維護的成本。
  • 提高軟體質量。
  • 提高企業的競爭能力,包括降低成本、提高質量、改善客戶滿意程度、控制進度等方面。
  • 有利於團隊多人協作和分工合作。架構師專注於設計框架、元件、領域模型等;軟體開發人員專注於業務邏輯,以及業務的更深程度的分析和挖掘;前端人員更專注前端互動(前後端分離)體驗。 
    當然,任何事物都需要多方面權衡,我們也要看到一些問題。比如前期需要付出培養成本,框架的理念以及先進性會限制團隊的理念和先進性等等,但是對於企業和創業團隊來說,持續的成本控制是第一位的。 
    這裡奉送中小團隊一句箴言——你可以沒有自己的框架,但是一定要有統一的技術體系。

選擇一套框架有哪些注意事項?

  • 框架相對成熟、穩健
  • 框架使用先進的理念和技術
  • 框架有很高的擴充套件性
  • 框架一直在迭代升級和完善
  • 框架能減少開發人員的程式碼開發量,讓開發人員更專注於業務邏輯
  • 框架結構合理,並且符合相關標準和規範

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,後臺前端和移動端前端)
  • 升級工具

加群 85318032 獲取最新動態和文件。

迭代記錄

生成客戶端

好馬得有好鞍。我們傾力打造了配套的生成客戶端。

最後

本框架我們一直在不斷地迭代、開發、更新,並且在我們的專案中不斷實踐,整套解決方案均已走通,只是部分專案程式碼我們需要重構後才能提取到框架之中,我們非常樂意和大家分享框架以及相關技術細節和經驗,如果您在使用過程中出現問題,請先閱讀相關文件並且確保環境安裝正確之後再和我們溝通。