大家回想一下,有多少軟件公司,多少項目,多少初中級程序員在做着CRUD方面的一些重復而繁雜的工作呢?對於公司項目來說,可能60-70%的成本都花費在CRUD方面的開發管理上,對於程序員職業生涯來說,可能也有60-70%的工作也是在做着一些CRUD方面的工作,無可否認,作者也是。
如果這些CRUD相關的工作全部省去,對於企業來說,意味着什么呢?自定義表單引擎,就是幫助企業做這樣的事情!對於項目開發的核心三駕馬車,進度、質量、成本,自定義表單可能都是質的飛躍。對於進度來說,需求明確的情況下,原來開發一個中等復雜的表單,從數據庫到后端再到前端,完整的開發完成,可能需要幾天的時間,如果這些工作全部由自定義表單通過配置自動完成,可能就十多分鍾就能完成,項目進度將會大幅度的提前;對於質量來說,傳統的CRUD方面的工作工作量大且繁瑣,程序員工作年限及能力水平不一,測試能力不一,進度要求不一,管理者能力不一,影響因素非常多,質量往往是不好控制的,但如果這部分工作全部自定義表單完成,只要保證自定義表單配置生成的功能是經過反復驗證過的,那這些影響的因素就可以多數排除,大部分質量就能夠完全可控;對於成本來說,如果大大減少CRUD的開發管理,對於公司項目來說,可能節約半數的成本;這,自定義表單對於企業來說,將是戰略意義上的武器。
可能大家接觸比較多的是代碼自動生成工具,前端后端可能都有。根據規則,從文件或者數據庫讀取配置信息,生成前端或者后端靜態代碼,拷貝到項目中,開發人員在做適當的修剪,再加入業務邏輯,編譯發布,但,這就是自定義表單么?對企業來說,有多大的用處呢?我也用過一些,但作用真沒有想象的那么大,也不是那么方便,這些代碼往往是沒有生命的,僅僅是把一些繁瑣的代碼做了簡化,往往只是簡化了我們碼農復制粘貼再批量替換的作用。
代碼生成工具,不是自定義表單。自定義表單,是有生命力的,他是由非常多的數據建模以及規則引擎串聯起來的,數據庫、后端、前端,全是運行時根據規則自行計算、執行或者渲染的。接下來作者將寫一系列文檔,介紹自定義表單的設計、開發供感興趣的同行學習交流,由於現在做的工作與自定義表單沒有任何關系,生活也不允許自己放下一切專門來做這個東西,只能在空余時間來完成,大概半年多的時間,一直持續反復循環做着技術預研、數據建模、定義規則、驗證模型、驗證規則,現在前端和后端基本能夠融合在一起形成一個整體,基本雛形已經形成了,參考基礎原型為K2自定義表單產品功能,代碼將不斷的整理完善,未實現的功能也會陸續的完成,整理的代碼連同博客園文章將在gitee和博客園上持續更新,歡迎感興趣的同學關注交流。開源地址:https://gitee.com/kuangqifu/sprite
后續的文章將會圍繞着大家都接觸過的部門和用戶管理進行展開,1對N關系,中等復雜,基於他們介紹自定義表單,再合適不過了。
大概設計的需求(結合下面幾個截圖。不用特別關注需求是否合理):部門為一棵樹,每個用戶都可以關聯到部門的一個節點上,部門列表需要展示部門層級關系;人員列表支持普通查詢和高級查詢,性別下拉單選查詢,學歷支持下拉多選查詢,高級查詢可選擇查詢字段以查詢方式(=,>,between,in等),點擊部門某節點,過濾所選部門用戶數據,列表中性別以圖標區分,學歷用不同顏色區分,支持導入導出,支持批量刪除;用戶表單支持自定義驗證規則,性別和學歷為數據字典,部門字段為下拉選擇部門樹;以及新增編輯分頁等常規操作;(一般做這樣的功能,中等水平開發人員,可能需要1周/人以上的開發時間,但用自定義表單可能只需要20多分鍾,且不需要寫代碼)
部門管理
用戶列表
高級查詢
用戶表單
自定義表單是一個系統性的工程,絕非想象的那么容易,但是難度也沒那么難,關鍵在於數據建模和規則定義,由於之前作者在一家企業負責研發工作流引擎,對於自定義表單有一定的認識,所以個人就在策划把她轉換為實現,后續的代碼和文章就當作感興趣同學的拋磚引玉吧。
有問題建議在gitee上提issue,或者與作者聯系:郵箱:061104001@163.com,QQ:523477776