golang服務(wù)端項(xiàng)?代碼?動(dòng)?成
10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有尋甸免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
公司為了提?開(kāi)發(fā)效率,讓我搞?個(gè)代碼?動(dòng)?成的?具,最好是根據(jù)數(shù)據(jù)庫(kù)可以?成全套的(從router到dao)那種,于是我上萬(wàn)能的github上找了?個(gè),找到?款autocreate 的代碼?成?具,本?也是使?go開(kāi)發(fā)的,我看了?下,效果還不錯(cuò),并且操作?便簡(jiǎn)潔,?且還有web界?,clone下來(lái)之后,為了讓?成的代碼風(fēng)格跟我們的項(xiàng)?保持?致,所以我不得不動(dòng)源碼,原本以為很難,但是百度了?下原理就是根據(jù)模板渲染。
這些就是項(xiàng)?中的模板,包括從model-router-controller-service-dao,當(dāng)然這些是已經(jīng)根據(jù)公司項(xiàng)?修改過(guò)的模板,開(kāi)始只有?個(gè)controller跟dao以及model,其余的根據(jù)??需求加就可以了,因?yàn)槲蚁胍獦O致的偷懶,所以直接?成了全套的。
第 1 頁(yè)
操作這些模板的就是這個(gè)?件
?件?的核?代碼,當(dāng)然這也是修改過(guò)的
第 2 頁(yè)
據(jù)我使?后得知,??所謂的三個(gè)關(guān)鍵的名字只有table和module有?,另?個(gè)隨便填就可以了。
修改之后,在將?件的?成?錄修改為你項(xiàng)?的?錄就可以了??刂?成?件?錄的是*ContertFile??的file變量。
全部修改后,我們就可以go run main.go運(yùn)?起來(lái),進(jìn)?localhost:8081,就可以看到如下界?
選擇其中?個(gè)表,就可以進(jìn)?代碼?動(dòng)?成了!記住,表?定要有備注!表?定要有備注!表?定要有備注!不然是?成不了代碼的。
第 3 頁(yè)
這是?成的controller中的?個(gè)例?
?成之后,service中是沒(méi)有邏輯的,只需要根據(jù)??的需求增增改改就好啦,將原來(lái)的開(kāi)發(fā)時(shí)間縮短了?半以上!再也不?做那些枯燥的事情!開(kāi)發(fā)從建表-復(fù)制粘貼*n-增增改改-?測(cè)變成了建表-點(diǎn)?下-增增改改-?測(cè)
現(xiàn)在公司所有服務(wù)端的?伙伴都開(kāi)始?了,我作為?個(gè)實(shí)習(xí)?,能做好這件事,其實(shí)??的成就感也是很?的haha
TinyGo是一個(gè)為微控制器、WebAssembly(Wasm)和命令行工具等小型場(chǎng)景設(shè)計(jì)的Go語(yǔ)言編譯器。TinyGo重用了Go語(yǔ)言工具和LLVM使用的庫(kù),以編譯用Go語(yǔ)言編寫(xiě)的程序。目前,該項(xiàng)目在GitHub上已經(jīng)積累了10.1k的Star。
如下為一個(gè)示例程序,當(dāng)運(yùn)行在任何支持的帶板載LED的主板上時(shí),則會(huì)點(diǎn)亮內(nèi)置LED。
上述程序可以在單片機(jī)、Adafruit ItsyBitsy M0微控制器或任何支持的帶內(nèi)置LED的板上進(jìn)行編譯和不需要修改的運(yùn)行,只要設(shè)置正確的TinyGo編譯器目標(biāo)即可。例如,設(shè)置如下目標(biāo)可以編譯和點(diǎn)亮 單片機(jī)。
項(xiàng)目概述
TinyGo項(xiàng)目旨在將Go語(yǔ)言引入到具有單進(jìn)程或核心的微控制器和小系統(tǒng)。TinyGo類(lèi)似于emgo,但主要的區(qū)別在于作者想要保留Go內(nèi)存模型。另一個(gè)區(qū)別在于TinyGo在內(nèi)部使用LLVM,因而可以獲得更小更高效的代碼以及更高的靈活性。
創(chuàng)建TinyGo項(xiàng)目的初衷是,如果Python可以在微控制器上運(yùn)行,Go語(yǔ)言當(dāng)然也應(yīng)該能夠在更低級(jí)微設(shè)備上運(yùn)行。
支持設(shè)備
你可以為微控制器、WebAssembly和Linux編譯TinyGo程序。目前,TinyGo支持以下85種微處理器板。
更多技術(shù)細(xì)節(jié)請(qǐng)參閱原項(xiàng)目。
沒(méi)有。
go語(yǔ)言開(kāi)發(fā)工具有:Gogland、Eclipse、LiteIDE、KomodoIDE、Atom、Brackets、VisualStudioCode、Cloud9、CodeEnv、Wide等等。
golang語(yǔ)言并沒(méi)有提供類(lèi)似javaagent的機(jī)制允許我們?cè)诔绦蜻\(yùn)行中修改代碼邏輯。
主要通過(guò)以下幾個(gè)過(guò)程生成:
(一)編寫(xiě)模板文件
(二)配置FreeMarker
(三)統(tǒng)一文件生成工具
(四)數(shù)據(jù)庫(kù)操作
(五)封裝填充數(shù)據(jù)
FreeMarker是一款模板引擎:即一種基于模板和動(dòng)態(tài)數(shù)據(jù),用于輸出文本的通用工具。
FreeMarker模板使用FreeMarker Template Language(FTL)編寫(xiě),它是一種簡(jiǎn)單的、專(zhuān)用的語(yǔ)言。
代碼生成器的實(shí)現(xiàn)原理十分簡(jiǎn)單,就是根據(jù)數(shù)據(jù)庫(kù)的某一個(gè)或多個(gè)業(yè)務(wù)表的結(jié)構(gòu),生成對(duì)應(yīng)的Entity.java、Dao.java、Service.java、Controller.java、Mapper.xml文件