開箱即用~基於.NET Core的敏捷開發框架規劃

前言

  多年的開發積累讓我一直在思考一個問題:如何能擁有一個開箱即用的框架?或者說針對不同的業務規模,能有一系列相應的框架版本,這樣每次新項目上線的時候,或者業務增長變更的時候,都無需重新造輪子,我們所要做的是對號入座,即根據業務實際拿一個相應的版本過來微調即可高效上路且不翻車?做到用最少的時間,最低的成本,最好的質量把項目給收掉了,這就是我構想基於.net core敏捷開發框架的初衷。

框架的定義

  請允許我把框架分成技術框架和應用框架,技術框架主要是做底層基礎工作的,也叫基礎框架,比如微軟原始的框架和第三方著名框架;應用框架主要是面向業務,比如支付功能,權限功能等,但是也是屬於業務裏頭的通用的部分。那麼大部分的中小團隊需要的是什麼樣的敏捷框架呢?

  最理想的情況是,不管是什麼項目,不管是技術框架還是應用框架,我都有足夠多的基礎框架組件,不管用得着還是用不着的,都在我的工具箱裏面,我只要排列組合着用就夠了。因爲對於中小團隊,時間就是生命。我們不可能因爲過分追求技術而犧牲業務,因爲市場決定了我們的生死存亡。

  我深知做這件事的不容易,所以一開始就抱着明天就要爛尾的心態在做,所以將來沒能做起來,請大家不要嘲笑我。

  我不會去步入Abp或Nop的後塵,因爲那樣是沒有意義的,但是我會借鑑着,並儘可能的設計得面向國人的現狀,面向中小團隊的痛點,更加的豐滿和完善,畢竟只有解決解決目前升級過程中的問題,纔是有價值的。

框架的價值

  有了這個框架的好處,總結起來

從大的方面來說就是:

  • 提升中小企業的研發效能

  • 賦能中小企業業務規模化創新

  • 推進遺留系統的現代化轉型升級

從小的方面來看就是:

  • 初學者可以用來學習成長;

  • 小團隊儘快交付高質量的項目;

  • 老項目可以快速導入,進行技術的現代化升級。

框架特點

  那麼這個框架應該具備哪些特點呢?不同的業務,團隊規模和技術規劃必然無法只用一套框架就能一招鮮吃遍天的銀彈。所以,這個框架會分多個系列的,好比華爲手機有mate系列,p系列。每個系列有重複,又有各自的定位和差異,各自服務着不同的開發團隊。

從技術層面來看,共同點包括:

  • 簡單易用,應屆生也能快速上手,基本不需要文檔,或者只要簡單的說明即可入門

  • 規範性好,代碼優雅可讀性極高,代碼整潔,本人有代碼潔癖,每行代碼都經過反覆斟酌。

  • 可擴展好,在業務演進過程無需大改

  • 邏輯分層結構清晰,代碼耦合低

  • 面向雲原生:以微服務爲理念,支持容器化打包和編排,支持DevOps和自動化理念

從業務層面看,共同點包括:

  • 有單體精品,有面向微服務,有微服務

  • 賦能不同業務的階段性發展

  該框架不同於市面上的框架,而是一款真正面向中小團隊(7-8個人)國產框架,是一款能真正用於生產的框架;也會區別於視頻培訓內容,因爲看視頻太慢,一個視頻要幾十分鐘,而且需要自己再敲代碼,距離生產級別那就更遠了。

  因爲是生產級別的,所以不同於開源產品,我期望將來的每一個細節都需要精心設計和手工敲打。雖然目前v1.0版本還有很多不完美和需要完善的地方,但是都是自己踩坑的總結。如果您在使用過程當中有疑問可以加入敏捷開發羣進行諮詢,如果您想讓我給您培訓,會適當收取費用,請理解,因爲我也要活着。

  該敏捷框架會經歷一個循環迭代的過程,如果您在使用當中有新需求,請您提交issue。當然也希望您能爲這個框架貢獻源碼。這個框架會吸收Abp的特點,融入當前最優秀的開源框架爲我所用,但是會更加面向國產用戶,考慮國人的業務特點和使用感受。

  如果你是個優秀的開發者,歡迎你加入框架的開發。

  因爲框架開發是一個重活,急需要一些骨幹大佬的加入,做一些底層的基礎研究工作。如果您在廈門最好不過,我們會定期舉行線下活動。如果您不在廈門也沒關係,我們會通過遠程視頻和您進行溝通。

面向讀者

  • 架構初學者,但不是.net初學者。
  • 如果你是.Net初學者,基本的Crud(增刪改查)尚且完成不了,請緩一年再來。
  • 你可能已經有了一些項目經驗,甚至已經開發多年,但你的項目依然進度緩慢,很難按時交付,代碼質量糟糕,難以繼續維護,你迫切希望找到一種方法來改善這個過程。
  • 如果你手裏沒有任何積累,該敏捷框架將是你搭建自己框架的一個很好的起點。
  • 如果你已經身經百戰,自己的框架也比較成熟,該框架對你的幫助不會太大。

版本規劃

迭代週期

  每一個版本目標是一週一個迭代,考慮當前人手和精力,爲了出更好的精品,前期會按一個月一個迭代來推進。

迭代計劃

  每次計劃安排會按優先級隊列進行編排,結合網友需求,甄選出最重要最緊急的功能進行編排。這個計劃一般會提前一個月進行。

歡迎大牛加入

  歡迎各界有.net core生產級別的大佬加入。

  成爲骨幹需要做三個事:

  • 首先,需要您提供能證明您實力的文章、博客、開源代碼。
  • 其次,爲了您能重視這個事需要你提供一定的時間。
  • 再次,希望您能加我的QQ,我們單獨聊一聊。

  因爲我們不是爲了輸贏,我們是認真的。希望您是一位技術愛好者,喜歡主動學習,有廣博的知識和技術敏銳度,歡迎您的加入!

社區活動

  敏捷框架不是目的,目的是結交各方好友,技術會友,幫助.net生態圈能有一個重新發展的機會。

  希望在框架發展到一定階段,能舉行一場線下技術交流會,聊一聊技術之外的理想,人生,家庭,愛好,文學,當然還有我們立命之本的技術和發展趨勢。如果您本人在廈門是最好不過,歡迎您隨時和我聯繫。

版本系列

  • 單體敏捷框架
    • AF3(Agile Framework3),基於三層邏輯概念劃分;
    • AFD(Agile Framework DDD),基於DDD驅動設計原理劃分;
  • 微服務敏捷框架
    • AMFS(Agile Microservice Framework Single Repository),基於單體代碼倉庫劃分;
    • AMFM(Agile Microservice Framework Muti-Repository),基於代碼多倉庫劃分;

目前進度

  請參考《開箱即用~基於.NET Core的統一應用邏輯分層框架設計

敏捷框架技術支持

  一套得心應手的應用框架,能讓你的團隊如虎添翼,開發效率和開發質量將同時提升N倍,那是不是意味着,只要有了這麼一套應用框架,你的團隊馬上就能脫胎換骨呢? 非也,梅花香自苦寒來,寶劍鋒從磨礪出,路漫漫其修遠兮,你將上下而求索。

  但是我們會提供儘可能全面的文檔,同時也會在羣裏對你遇到的問題進行解答。

貢獻與反饋

  • 如果你在閱讀或使用發現Bug,或有更佳實現方式,請通知我們。
  • 爲了保持代碼簡單,目前很多功能只建立了基本結構,細節特性未進行遷移,在後續需要時進行添加,如果你發現某個類無法滿足你的需求,請通知我們。
  • 你可以通過github的Issue或Pull Request向我們提交問題和代碼,如果你更喜歡使用QQ進行交流,請加入我們的交流QQ羣。
  • 對於你提交的代碼,如果我們決定採納,可能會進行相應重構,以統一代碼風格。 

  該邏輯分層框架可以理解是敏捷框架,爲了順口我把敏捷去掉了。爲什麼叫邏輯分層,是爲了區別物理分層。該框架的目標是減少小夥伴重複搭建麻煩,同時也是保證團隊各個應用之間的規範統一,目前是v1.0版本,歡迎您持續關注~

環境及將來依賴

IDE工具:

數據庫

  • Sql Server
  • Mysql
  • PostgreSQL

版本控制

  • Git

部署環境

  • Ubunt16.04
  • Centos7.x
  • Windows Server2012
  • Docker

SDK及Runtime

單元測試及模擬框架

  • XUnit
  • NSubstitute

數據訪問框架

Ioc框架

  • Autofac

Aop框架

Json框架

  • Json.Net

映射框架

  • AutoMapper

日誌框架

緩存

事件總線

Id生成器

RSA加密算法

二維碼操作

短信操作

定時任務調度框架

權限

代碼生成器

  • CodeSmith 6.5
  • T4

參考應用框架

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章