Sculptor Boot代碼生成器
Sculptor Boot 是一個(gè)項(xiàng)目思維化的代碼生成器,它是一個(gè)體系,包含:
- 數(shù)據(jù)庫(kù)腳本邏輯:MySQL、PostgreSQL(下個(gè)版本采用)
- 代碼生成器:Java
- 后端項(xiàng)目:Spring Boot、Spring Cloud Alibaba(分布式版本)
- 前端項(xiàng)目:React、Vue(下個(gè)版本采用)
- 是的,它們是不能解決所有問(wèn)題。但是,可以解決部分問(wèn)題
Git
-
TKey:Github、Gitee -
sculptor-boot-generator:Github、Gitee -
sculptor-boot-backend:Github、Gitee -
sculptor-boot-frontend:Github、Gitee -
sculptor-boot-test:Github、Gitee -
sculptor-boot-docs:Github、Gitee
Live Demo
- 注意:帶寬只有 1M,訪問(wèn)會(huì)慢
- 本地添加下面 hosts 才能正常訪問(wèn)和重定向到登錄頁(yè)面(必備)
182.61.44.40 sculptor.cdk8s.com
- 訪問(wèn)地址:CDK8S Sculptor Boot
Gif 效果演示(單表的前后端 CURD 生成)
- 說(shuō)明:為了減小 Gif 體積進(jìn)行了加速
- 單表生成代碼過(guò)程
- 單元測(cè)試過(guò)程
演示步驟
- 初始化數(shù)據(jù)庫(kù)腳本
- 執(zhí)行生成操作
- 添加生成文件到版本控制
- 插入權(quán)限 SQL 到數(shù)據(jù)庫(kù)
- 執(zhí)行單元測(cè)試:
mvn clean test -Dtest=SysDemoMapperTest,SysDemoServiceTest,SysDemoControllerTest
- 啟動(dòng)后端應(yīng)用,執(zhí)行接口壓力測(cè)試:
mvn gatling:test -Dgatling.simulationClass=test.load.cdk8s.SysDemoPage
- 啟動(dòng)前端應(yīng)用,演示 CURD 操作
bilibili 完整視頻演示
部署、性能相關(guān) Gif 圖
- 因?yàn)楹?TKey 一樣的架構(gòu),有部分圖直接拿過(guò)來(lái)用了,這里不累贅了
- 服務(wù)器的部署教程、配置文件大家可以直接到 TKey 項(xiàng)目上拿:
TKey:Github、Gitee
(JProfiler 壓測(cè)變化)
- 登錄完整過(guò)程: 主圖、備圖
- Grafana 監(jiān)控大屏: 主圖、備圖
- GoAccess 監(jiān)控大屏: 主圖、備圖
- Postman 接口調(diào)用: 主圖、備圖
- Docker 容器管理: 主圖、備圖
- Jenkins 部署流水線: 主圖、備圖
- JProfiler 壓測(cè)變化: 主圖、備圖
- VisualVM 壓測(cè)變化: 主圖、備圖
功能模塊截圖
技術(shù)棧
- 暫時(shí)只能生成
Spring Boot 2.1.11相關(guān)代碼,下階段是生成Spring Cloud Alibaba - 2020 年 1 月中旬會(huì)在圈子內(nèi)部發(fā)布基于該生成體系的 CMS 系統(tǒng)(PC + H5 + 小程序)來(lái)驗(yàn)證業(yè)務(wù)靈活度
- 沒(méi)有任何封裝,沒(méi)有任何加密、混淆,一眼可以看出項(xiàng)目結(jié)構(gòu)。接下來(lái)還有大量細(xì)節(jié)要繼續(xù)優(yōu)化,可以持續(xù)關(guān)注下。
- 有輕微強(qiáng)迫癥:
- 啟動(dòng)不能有 error、warn
- 代碼格式化得整整齊齊,該是 Tabs 絕不會(huì)是 Spaces,該省去的注釋一個(gè)都不會(huì)加
代碼生成器理念(項(xiàng)目思維化的解釋?zhuān)?/h2>
- 群里有人說(shuō):不能生成復(fù)雜的功能代碼,有啥屁用。我不反對(duì)這樣的說(shuō)法,同時(shí)猜測(cè)認(rèn)定他應(yīng)該不是領(lǐng)導(dǎo)者。
- 能減少下屬開(kāi)發(fā)人員抽身出重復(fù)的工作,不說(shuō)效率提高如何如何,就心情愉悅程度就不一樣。沒(méi)人愿意一直做一些重復(fù)事情。重復(fù)事情做多了容易造成下屬思考頻率降低,沒(méi)意思,留不住人。
- 會(huì)是復(fù)雜的功能基本都是核心流程,或者核心的分支。沒(méi)有哪個(gè)項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理動(dòng)不動(dòng)就調(diào)整復(fù)雜流程,做個(gè)全回歸測(cè)試就可以把所有人搞死。
- 即便是復(fù)雜流程,也是由很多細(xì)小的簡(jiǎn)單流程構(gòu)建。如果不是,那就是在做系統(tǒng)分析的時(shí)候就是出了問(wèn)題,因?yàn)檫@種說(shuō)不清楚邏輯的系統(tǒng)后期基本也無(wú)法維護(hù),也沒(méi)人愿意接手這樣的工程項(xiàng)目。
- 有很多時(shí)候,所謂的復(fù)雜流程,其實(shí)可以通過(guò)交互設(shè)計(jì)得更加簡(jiǎn)單,可能操作上確實(shí)會(huì)多了幾步路,但是開(kāi)發(fā)復(fù)雜度可能就降低幾個(gè)指數(shù)。這里就很考量產(chǎn)品人員與開(kāi)發(fā)人員的配合,當(dāng)然,不是所有的簡(jiǎn)化都叫做簡(jiǎn)化,有的叫做懶,別給自己找借口。
- 當(dāng)團(tuán)隊(duì)技術(shù)不行的時(shí)候,有時(shí)候是可以通過(guò)管理來(lái)湊,但是本質(zhì)還是要不斷提高技術(shù)能力,這個(gè)不需要解釋。
- 目前業(yè)界的代碼生成方式有:
類(lèi) CUBA Studio 高度定制 IDE
類(lèi) Swagger 的 OpenAPI
類(lèi) JHipster cli
MyBatis Generator
IDE 插件
JavaFX 獨(dú)立軟件
WEB UI 錄入
Java -jar
Shell 命令
- 本質(zhì)都是模板,只是大家對(duì)模板的定義各不相同,以及大家各自業(yè)務(wù)中各種各樣的定制需求點(diǎn)。未來(lái)必然還會(huì)有 AI 的代表,但是短時(shí)間還不會(huì)成熟方案。
- 以上方式我都不贊同,只因?yàn)橐粋€(gè)邏輯觀點(diǎn):
不利于全員推廣下的 *共同維護(hù)與發(fā)展*
- 沒(méi)有什么事是不變的,沒(méi)有什么人是完美的。每個(gè)人都有自己擅長(zhǎng)和不擅長(zhǎng)的邊界線,我相信總是有人能發(fā)現(xiàn)更加美好的道路。所以,作為領(lǐng)導(dǎo)者要盡可能鋪好信息反饋與協(xié)作的路。
- 編程不只是編程,它最核心的是
軟件工程,雖然有的工程一個(gè)人也可以干,但是更多時(shí)候我們需要更多人,需要大家一起不斷維護(hù),而能被共同維護(hù)的,只能是項(xiàng)目化思維
- 所以,以我目前能力,推薦的方式是:Git 倉(cāng)庫(kù)化下的 Application run()。這樣有助于培養(yǎng)每個(gè)人 Pull Request 意識(shí),共同維護(hù)出節(jié)省彼此時(shí)間的工具
- MyBatis Generator 需要也是這個(gè)玩法,但是能生成的代碼實(shí)在太過(guò)于簡(jiǎn)陋,不符合實(shí)際團(tuán)隊(duì)的代碼生成
- Swagger 的 OpenAPI 雖然 Clone 下來(lái)也可以改造模板,但是它更擅長(zhǎng) API 類(lèi)的異構(gòu)平臺(tái)代碼生成,改造成整套業(yè)務(wù)模塊的成本太大。
- 最高效的方案應(yīng)該是:類(lèi) CUBA Studio 高度定制自己團(tuán)隊(duì) IDE,但是國(guó)內(nèi)很少有團(tuán)隊(duì)有這個(gè)實(shí)力。但是,我相信未來(lái) VSC 陣營(yíng)的童鞋應(yīng)該有人會(huì)出。
- 單元測(cè)試真的很重要,不是覆蓋率的問(wèn)題,我做單元測(cè)試的思路不是看覆蓋率,我只關(guān)心業(yè)務(wù)的核心流程是否能否快速做回歸。這對(duì)于經(jīng)常重構(gòu)代碼的人來(lái)講,回歸測(cè)試真的非常重要。
- 希望 Sculptor Boot 體系能帶來(lái)新的體驗(yàn),以及推進(jìn)國(guó)內(nèi)普及單元測(cè)試
Sculptor Boot 體系理念
- 項(xiàng)目命名介紹:
-
sculptor 雕刻家。[?sk?lpt?r]
-
boot:采用 Spring Boot 架構(gòu)
- 目前,市場(chǎng)上很多開(kāi)發(fā)者的代碼生成器都是用來(lái)輔助后臺(tái)管理系統(tǒng)新功能的開(kāi)發(fā)的。但是,我是為了寫(xiě)這套代碼生成器,順便開(kāi)發(fā)了一套前后端分離的后臺(tái)管理系統(tǒng)來(lái)證明它可用
- Sculptor Boot 體系下所有項(xiàng)目代碼 90% 都是自動(dòng)生成的。在我強(qiáng)迫癥要求下,在多次更改模板之后,不斷重新生成所有模塊代碼,重新做單元測(cè)試,反復(fù)對(duì)比修改過(guò)的地方,我不知道自己為此花了多少時(shí)間來(lái)苛刻自己
- Sculptor Boot 想要做的是:模板一切,但又要保持任何場(chǎng)景的靈活性
- Sculptor Boot 堅(jiān)持查詢必須用 XML SQL,不應(yīng)該用 Java 代碼來(lái)代表 SQL 的邏輯。我知道很多人喜歡用 Mybatis-Plus 來(lái)擴(kuò)展 MyBatis 為全自動(dòng) ORM,站在靈活的角度上,我對(duì)此表示反對(duì)
- Sculptor Boot 要求絕大多數(shù)的業(yè)務(wù)都必須有邏輯刪除、狀態(tài)控制,不允許浪費(fèi)數(shù)據(jù)。
- Sculptor Boot 認(rèn)定單元測(cè)試是有無(wú)上尊貴的地位,特別是項(xiàng)目的核心模塊、核心流程
- Sculptor Boot 開(kāi)發(fā)過(guò)程中,深刻體會(huì):
不以規(guī)矩,不能成方圓,如果你在團(tuán)隊(duì)中沒(méi)有先起草一個(gè)完全可行的開(kāi)發(fā)規(guī)范,你很難做到團(tuán)隊(duì)代碼風(fēng)格一致。如果還能跟我一樣,會(huì)利用 IntelliJ IDEA 的相關(guān)特性,那可以使得規(guī)范更進(jìn)一步。
- Sculptor Boot 這套體系的完整的來(lái)源鏈路是:
IntelliJ IDEA > 編碼規(guī)范 > 代碼生成器 > 前后端分離的后臺(tái)管理系統(tǒng)
- 你想要如視頻中演示的那樣快速開(kāi)發(fā)一個(gè)功能,那你就必須認(rèn)同 IntelliJ IDEA 邏輯,認(rèn)同這套編碼規(guī)范,不然這套體系的技術(shù)棧都是常規(guī)的,沒(méi)啥太大新鮮度,對(duì)你來(lái)講可能沒(méi)啥價(jià)值,純屬浪費(fèi)時(shí)間
- 如果你要重構(gòu)整套體系,本質(zhì)跟你重寫(xiě)的工作量是沒(méi)啥區(qū)別,我反而是建議你參考它的你認(rèn)為的可取邏輯點(diǎn),自己也模仿造一套,這樣會(huì)更加順手。
- 這套體系只能適用于新系統(tǒng),老系統(tǒng)基本無(wú)法過(guò)度過(guò)來(lái),只能當(dāng)做參考進(jìn)行學(xué)習(xí)
- 最后:我堅(jiān)信,也因?yàn)樗诰幋a規(guī)范上的強(qiáng)約定,必須性的遵守,所以它有更大的可能實(shí)現(xiàn)各種重復(fù)性工作的抽象
架構(gòu)
- 因?yàn)榫褪且粋€(gè) Spring Boot 結(jié)構(gòu),用腳想也知道有哪些東西,不畫(huà)架構(gòu)圖了,有興趣的直接看 pom.xml
- 登錄模塊基于我的另外一個(gè)作品:TKey,所以嚴(yán)格上這套體系也算是 TKey 的另外一個(gè)資料,同時(shí)也是未來(lái)
Spring Cloud Alibaba 架構(gòu)下 UMPS 的一部分
- TKey 項(xiàng)目是在最精簡(jiǎn)的 Spring Boot 環(huán)境下進(jìn)行開(kāi)發(fā),項(xiàng)目文檔詳細(xì)地說(shuō)明了關(guān)于如何做
規(guī)范、開(kāi)發(fā)、壓測(cè)、部署、監(jiān)控 等細(xì)節(jié),優(yōu)先推薦先閱讀一下。
- TKey 采用 OAuth 協(xié)議,所以登錄環(huán)節(jié)你會(huì)看起來(lái)很復(fù)雜,繞來(lái)繞去的,簡(jiǎn)單的一個(gè)數(shù)據(jù)庫(kù)的驗(yàn)證用戶名密碼走了老大一圈。不想用密碼模式,采用了授權(quán)碼模式必然就是這樣的。
- 當(dāng)然,也因?yàn)橹С至?TKey 的 OAuth,所以擴(kuò)展性上就很好了,相當(dāng)于直接把這個(gè)系統(tǒng)變成了開(kāi)放平臺(tái)了,可以讓別人快速接入。所以,如果要研究登錄過(guò)程,不推薦你直接基于此項(xiàng)目進(jìn)行研究,而是看 TKey 項(xiàng)目,那個(gè)是最簡(jiǎn)潔的情況,研究起來(lái)不會(huì)有各種干擾。
- 因?yàn)橛昧?TKey 所以就不需要
Shiro 和 Spring Security 了,在登錄認(rèn)證的各個(gè)細(xì)節(jié)你就可以各種定制,愛(ài)怎么處理就怎么處理,老板各種非工程化的需求你都可以實(shí)現(xiàn)。
- 關(guān)于使用
JPA 還是 MyBatis,我這里是傾向于 MyBatis,并且是有 XML 的 MyBatis,不推薦注解和類(lèi)代碼塊,原因如下:
- 國(guó)內(nèi)大部分中小團(tuán)隊(duì)在建模能力上不夠,并且這類(lèi)團(tuán)隊(duì)的老板一般也不夠工程化思維,在這種復(fù)雜條件下,靈活的 SQL 書(shū)寫(xiě)會(huì)更加好維護(hù)
- XML 的對(duì)稱(chēng)式結(jié)構(gòu)更加易于代碼模板生成
- IntelliJ IDEA 對(duì) XML 支持很好,如果再配置上 Database 之后,還有各種字段提示、拼寫(xiě)檢查、錨點(diǎn)點(diǎn)擊定位、跳轉(zhuǎn)等等
- XML 更加便于閱讀、修改、復(fù)制、格式化
- 通過(guò)一些 IntelliJ IDEA 的 MyBatis 商業(yè)插件可以在書(shū)寫(xiě) XML 上再次提高效率
- 對(duì)于 XML 還是 Class,我覺(jué)得是個(gè)人審美觀點(diǎn)差異,沒(méi)有對(duì)錯(cuò),都是可以用的,自己覺(jué)得方便就行。但是如果用這套生態(tài)體系那就只能是 XML 了
- 如果后面
Spring Data R2DBC 成熟了,只能用 JPA 才能響應(yīng)式,那到時(shí)候我再切換 ORM 或者書(shū)寫(xiě)方式。我是認(rèn)定響應(yīng)式的未來(lái)是無(wú)法阻擋,只是這時(shí)候尚早。
WEB 新人開(kāi)發(fā)者視頻教程(版權(quán)歸原作者所有)
- 如果不會(huì) Spring Boot 建議先學(xué)習(xí)下面基礎(chǔ)資料再進(jìn)行使用。學(xué)習(xí)是有方法技巧的,有對(duì)應(yīng)基礎(chǔ)學(xué)起來(lái)才會(huì)有實(shí)效。
- 項(xiàng)目管理的邏輯(清華大學(xué))
- 先不說(shuō)你們團(tuán)隊(duì)能不能做,但是你必須知道這是各種前輩死里求生地總結(jié),你必須知道你寫(xiě)代碼到底要干啥,為誰(shuí)服務(wù)。公司不行,團(tuán)隊(duì)不行,那就是另外一個(gè)問(wèn)題,自己要的心里有底。
- 再次強(qiáng)調(diào):這不是項(xiàng)目經(jīng)理專(zhuān)屬的工作,而是整個(gè)軟件工程中任意一員都需要懂得道理,除非你翅膀硬了。
- 項(xiàng)目管理本質(zhì)我認(rèn)為是時(shí)間。時(shí)間可以成本,可以質(zhì)量,可以市場(chǎng)??上У氖牵好總€(gè)人都只有 24 小時(shí),都不是大風(fēng)刮來(lái)的。
- 大部分一般性的 WEB 開(kāi)發(fā)團(tuán)隊(duì)都不是死在技術(shù)上,基本都是死于管理上。目前的 WEB 開(kāi)發(fā)還有啥特別艱難研究的技術(shù)?不接受反駁。
- Git & Github 教程
- Git 你必須不擇手段地學(xué)會(huì),你可以不用記那么多命令,但是理念必須。大部分操作 IntelliJ IDEA 都有 UI 按鈕,所以一定要學(xué)習(xí)協(xié)作開(kāi)發(fā)的理念。
- WEB 協(xié)議和抓包
- 這是做 WEB 的基礎(chǔ)中的基礎(chǔ),沒(méi)什么好說(shuō)的,記不住所有知識(shí)點(diǎn)沒(méi)關(guān)系,但是至少得做筆記,有個(gè)印象,方便以后查
- IntelliJ IDEA神器使用技巧
- 我自己很早那套視頻教程好像還是 2012 年,并且那時(shí)候我才剛學(xué)習(xí),所以已經(jīng)不推薦了,這套視頻挺好的,就是內(nèi)容少了點(diǎn)
- IntelliJ IDEA 簡(jiǎn)體中文專(zhuān)題教程
- 這套是我寫(xiě)的,內(nèi)容多,同時(shí)適用于 JetBrains 家常見(jiàn)的 IDE
- 未來(lái)如果我們學(xué)習(xí)數(shù)據(jù)分析、人工智能必然也會(huì)用到 PyCharm,所以 IntelliJ IDEA 你必須學(xué),不然我們做不了朋友
- MySQL 必修課
- 建議主修查詢、分析 SQL 邏輯。視圖,存儲(chǔ)過(guò)程了解即可。
- Spring Boot 基礎(chǔ)教程-1
- Spring Boot 基礎(chǔ)教程-2
- Spring Boot 擴(kuò)展教程
- 這一套擴(kuò)展了:Linux、Docker。這兩個(gè)技能樹(shù)你也必須點(diǎn)亮,沒(méi)有任何理由和借口
- 軟件項(xiàng)目團(tuán)隊(duì)溝通橋梁之UML(非必須,但是建議)
- CDK8S 團(tuán)隊(duì)規(guī)范(非必須,可以借鑒))
文檔
授權(quán)協(xié)議
- Sculptor Boot 體系和 TKey 都已遞交軟著申請(qǐng)。Sculptor Boot 體系源碼是 GPL 協(xié)議開(kāi)源,要商業(yè)閉源使用的前提:我們必須是朋友。
- 做朋友跟商業(yè)授權(quán)不一樣的,商業(yè)授權(quán)是客觀商業(yè)行為,做朋友是主觀個(gè)人行為,表示你認(rèn)可我的做人,做事理念,不認(rèn)可作者理念的沒(méi)有資格獲得使用權(quán)。
- 朋友嘛也不設(shè)置什么閱讀權(quán)限、源碼權(quán)限,只希望認(rèn)可相關(guān)理念的可以一起玩,看好社會(huì)科學(xué)、數(shù)據(jù)分析、人工智能的希望可以一起學(xué)習(xí),為接下來(lái)的 5G、AI 時(shí)代做準(zhǔn)備。
- 能減少下屬開(kāi)發(fā)人員抽身出重復(fù)的工作,不說(shuō)效率提高如何如何,就心情愉悅程度就不一樣。沒(méi)人愿意一直做一些重復(fù)事情。重復(fù)事情做多了容易造成下屬思考頻率降低,沒(méi)意思,留不住人。
- 會(huì)是復(fù)雜的功能基本都是核心流程,或者核心的分支。沒(méi)有哪個(gè)項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理動(dòng)不動(dòng)就調(diào)整復(fù)雜流程,做個(gè)全回歸測(cè)試就可以把所有人搞死。
- 即便是復(fù)雜流程,也是由很多細(xì)小的簡(jiǎn)單流程構(gòu)建。如果不是,那就是在做系統(tǒng)分析的時(shí)候就是出了問(wèn)題,因?yàn)檫@種說(shuō)不清楚邏輯的系統(tǒng)后期基本也無(wú)法維護(hù),也沒(méi)人愿意接手這樣的工程項(xiàng)目。
- 有很多時(shí)候,所謂的復(fù)雜流程,其實(shí)可以通過(guò)交互設(shè)計(jì)得更加簡(jiǎn)單,可能操作上確實(shí)會(huì)多了幾步路,但是開(kāi)發(fā)復(fù)雜度可能就降低幾個(gè)指數(shù)。這里就很考量產(chǎn)品人員與開(kāi)發(fā)人員的配合,當(dāng)然,不是所有的簡(jiǎn)化都叫做簡(jiǎn)化,有的叫做懶,別給自己找借口。
- 當(dāng)團(tuán)隊(duì)技術(shù)不行的時(shí)候,有時(shí)候是可以通過(guò)管理來(lái)湊,但是本質(zhì)還是要不斷提高技術(shù)能力,這個(gè)不需要解釋。
類(lèi) CUBA Studio 高度定制 IDE類(lèi) Swagger 的 OpenAPI類(lèi) JHipster cliMyBatis GeneratorIDE 插件JavaFX 獨(dú)立軟件WEB UI 錄入Java -jarShell 命令
不利于全員推廣下的 *共同維護(hù)與發(fā)展* 軟件工程,雖然有的工程一個(gè)人也可以干,但是更多時(shí)候我們需要更多人,需要大家一起不斷維護(hù),而能被共同維護(hù)的,只能是項(xiàng)目化思維-
sculptor雕刻家。[?sk?lpt?r] -
boot:采用 Spring Boot 架構(gòu)
不以規(guī)矩,不能成方圓,如果你在團(tuán)隊(duì)中沒(méi)有先起草一個(gè)完全可行的開(kāi)發(fā)規(guī)范,你很難做到團(tuán)隊(duì)代碼風(fēng)格一致。如果還能跟我一樣,會(huì)利用 IntelliJ IDEA 的相關(guān)特性,那可以使得規(guī)范更進(jìn)一步。IntelliJ IDEA > 編碼規(guī)范 > 代碼生成器 > 前后端分離的后臺(tái)管理系統(tǒng) Spring Cloud Alibaba 架構(gòu)下 UMPS 的一部分
- TKey 項(xiàng)目是在最精簡(jiǎn)的 Spring Boot 環(huán)境下進(jìn)行開(kāi)發(fā),項(xiàng)目文檔詳細(xì)地說(shuō)明了關(guān)于如何做
規(guī)范、開(kāi)發(fā)、壓測(cè)、部署、監(jiān)控等細(xì)節(jié),優(yōu)先推薦先閱讀一下。 - TKey 采用 OAuth 協(xié)議,所以登錄環(huán)節(jié)你會(huì)看起來(lái)很復(fù)雜,繞來(lái)繞去的,簡(jiǎn)單的一個(gè)數(shù)據(jù)庫(kù)的驗(yàn)證用戶名密碼走了老大一圈。不想用密碼模式,采用了授權(quán)碼模式必然就是這樣的。
- 當(dāng)然,也因?yàn)橹С至?TKey 的 OAuth,所以擴(kuò)展性上就很好了,相當(dāng)于直接把這個(gè)系統(tǒng)變成了開(kāi)放平臺(tái)了,可以讓別人快速接入。所以,如果要研究登錄過(guò)程,不推薦你直接基于此項(xiàng)目進(jìn)行研究,而是看 TKey 項(xiàng)目,那個(gè)是最簡(jiǎn)潔的情況,研究起來(lái)不會(huì)有各種干擾。
- 因?yàn)橛昧?TKey 所以就不需要
Shiro和Spring Security了,在登錄認(rèn)證的各個(gè)細(xì)節(jié)你就可以各種定制,愛(ài)怎么處理就怎么處理,老板各種非工程化的需求你都可以實(shí)現(xiàn)。
JPA 還是 MyBatis,我這里是傾向于 MyBatis,并且是有 XML 的 MyBatis,不推薦注解和類(lèi)代碼塊,原因如下:
- 國(guó)內(nèi)大部分中小團(tuán)隊(duì)在建模能力上不夠,并且這類(lèi)團(tuán)隊(duì)的老板一般也不夠工程化思維,在這種復(fù)雜條件下,靈活的 SQL 書(shū)寫(xiě)會(huì)更加好維護(hù)
- XML 的對(duì)稱(chēng)式結(jié)構(gòu)更加易于代碼模板生成
- IntelliJ IDEA 對(duì) XML 支持很好,如果再配置上 Database 之后,還有各種字段提示、拼寫(xiě)檢查、錨點(diǎn)點(diǎn)擊定位、跳轉(zhuǎn)等等
- XML 更加便于閱讀、修改、復(fù)制、格式化
- 通過(guò)一些 IntelliJ IDEA 的 MyBatis 商業(yè)插件可以在書(shū)寫(xiě) XML 上再次提高效率
- 對(duì)于 XML 還是 Class,我覺(jué)得是個(gè)人審美觀點(diǎn)差異,沒(méi)有對(duì)錯(cuò),都是可以用的,自己覺(jué)得方便就行。但是如果用這套生態(tài)體系那就只能是 XML 了
Spring Data R2DBC 成熟了,只能用 JPA 才能響應(yīng)式,那到時(shí)候我再切換 ORM 或者書(shū)寫(xiě)方式。我是認(rèn)定響應(yīng)式的未來(lái)是無(wú)法阻擋,只是這時(shí)候尚早。- 先不說(shuō)你們團(tuán)隊(duì)能不能做,但是你必須知道這是各種前輩死里求生地總結(jié),你必須知道你寫(xiě)代碼到底要干啥,為誰(shuí)服務(wù)。公司不行,團(tuán)隊(duì)不行,那就是另外一個(gè)問(wèn)題,自己要的心里有底。
- 再次強(qiáng)調(diào):這不是項(xiàng)目經(jīng)理專(zhuān)屬的工作,而是整個(gè)軟件工程中任意一員都需要懂得道理,除非你翅膀硬了。
- 項(xiàng)目管理本質(zhì)我認(rèn)為是時(shí)間。時(shí)間可以成本,可以質(zhì)量,可以市場(chǎng)??上У氖牵好總€(gè)人都只有 24 小時(shí),都不是大風(fēng)刮來(lái)的。
- 大部分一般性的 WEB 開(kāi)發(fā)團(tuán)隊(duì)都不是死在技術(shù)上,基本都是死于管理上。目前的 WEB 開(kāi)發(fā)還有啥特別艱難研究的技術(shù)?不接受反駁。
- Git 你必須不擇手段地學(xué)會(huì),你可以不用記那么多命令,但是理念必須。大部分操作 IntelliJ IDEA 都有 UI 按鈕,所以一定要學(xué)習(xí)協(xié)作開(kāi)發(fā)的理念。
- 這是做 WEB 的基礎(chǔ)中的基礎(chǔ),沒(méi)什么好說(shuō)的,記不住所有知識(shí)點(diǎn)沒(méi)關(guān)系,但是至少得做筆記,有個(gè)印象,方便以后查
- 我自己很早那套視頻教程好像還是 2012 年,并且那時(shí)候我才剛學(xué)習(xí),所以已經(jīng)不推薦了,這套視頻挺好的,就是內(nèi)容少了點(diǎn)
- 這套是我寫(xiě)的,內(nèi)容多,同時(shí)適用于 JetBrains 家常見(jiàn)的 IDE
- 未來(lái)如果我們學(xué)習(xí)數(shù)據(jù)分析、人工智能必然也會(huì)用到 PyCharm,所以 IntelliJ IDEA 你必須學(xué),不然我們做不了朋友
- 建議主修查詢、分析 SQL 邏輯。視圖,存儲(chǔ)過(guò)程了解即可。
- 這一套擴(kuò)展了:Linux、Docker。這兩個(gè)技能樹(shù)你也必須點(diǎn)亮,沒(méi)有任何理由和借口
評(píng)論
圖片
表情
