重構和複用是軟件的一個古老話題。前端
在平常的軟件項目開發的過程序中,如何保證團隊代碼的強健,同時在不斷變化的需過程當中最大限度的保障代碼的一致性,是項目開發中的難以控制的,咱們能夠藉助各類源碼管理和標準工做流程制度和增長各類崗位人手來進行控制,但隨着時間的推移,因爲各類水平的開發人員,加入各類藕合的非藕合的功能,代碼變得難以管理。git
但市場和客戶對咱們的軟件老是看起來讓人不可理喻,當咱們信心滿滿的把軟件產品交付給咱們客戶時依然要應對各類指責,有的需求反覆,「不,這徹底沒有達到咱們當時的需求,和我想的不同」,在不斷的變化,不斷的反覆,代碼被修改得面目全非,團隊陷於無助之中。程序員
從實際的管理中,咱們不能徹底消除代碼的藕合、代碼的混亂,每個程序員心中都有本身的江湖,所謂「文無第2、武無第一」,每一個程序員都會認爲本身的代碼是沒有任何問題的。做爲項目的管理者,只能最大限度的下降程序人員的人爲因素來的變化,讓標準化的代碼在項目佔有越大的分量,若是這是標準代碼是由工具產生,那麼在需求發生變化時,重購代碼也變得很是輕鬆且易控。github
若是在構建項目之初的與客戶需求交流中,以工具來生成標準代碼並所以爲用戶快速構建一個可見的Demo,那麼項目需求就會變得更加明確、易控。儘管這與最終交付的產品還有很大的差距,但仍然能夠減小客戶需求的明確性。若是咱們把可控代碼與非控代碼在生產時進行分離,那麼當後期客戶需求變化時,仍然可讓工具重構變化的需求。數據庫
讓技術優秀的人員構建基礎庫,變把平常開發中用的經常使用功能模板化,這樣,框架-工具-模板,就會在團隊中成爲技術、經驗的容器,讓再開發變得更加容易、可控、穩定。咱們不須要把大把的時化在那些重複且繁重的屬性代碼編寫,並不斷的進行各類屬性的拷貝,在需求變動時,又化大量時間雲矯正。咱們應該讓更多時間去與客戶交流業務需求,編寫強健的應用設計上,那麼咱們應該使用正確的框架、同時逐漸累積可複用的功能支持庫,並使功能模塊低耦合,使用代碼工具將各類功能調用模板化,這樣不只保證了編碼上的一至性,同時最大限度下降編碼的勞動強度,減小重複簡單代碼所消耗寶貴的時間,也能使組織和團隊在協調技術的一至上化更少的時間和金錢的投入。編程
一個好的架構能應對不一樣的應用需求,可是沒有一個可行的,萬能的架構,否則我沒在這裏就不用討論架構的問題了。這裏不只是代碼的問題,隨着時間的推移,各類編程技術的進步,讓一些本來複雜的問題變得簡單,功能更容易實現,而客戶需求老是貪婪的,所要求的更加複雜,使得新的需求產生,技術實現一樣的須要更多的精力和時間,就由於如此,咱們不該該同時也不必把時間和精力耗在無盡的重構中,而應該讓編寫代碼更加工具化、模板化換個比較時尚的詞,更加智能化。架構
實現目標:框架
輕型的ORM處理庫,基於開源的SqlRepo庫的二次開發;分佈式
Lambda表達式轉SQL語句類庫工具
以上各庫、工具會在接下的博客中進行更細仔說明。
---------------------------------------
一、一個完整支持分佈式服務框架;
二、代碼生成工具,可快速生成基於服務框架的應用;
三、其餘支持庫
四、完整代碼可在GitHub的https://github.com/azthinker ;開源中國 https://gitee.com/azthinker
目標:使應用開發,低代碼、高效率、快迭代
有興趣的請在QQ羣中參與討論、聯繫做者 QQ羣名稱:ATK高效開發 ,QQ羣號:747049962
也可發郵件至:azthinker@sina.com
Demo中的數據庫、編譯好的代碼工具連接:https://pan.baidu.com/s/1B9RQm7_-SFyhLb_HLIGs0w 密碼:85q6
ATK Demo使用的數據庫 : https://download.csdn.net/download/xftyyyyb/10675497
ATK自動代碼工具 :https://download.csdn.net/download/xftyyyyb/10675490