成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

又有新功能!Go 將有生成新模板的 gonew 工具鏈

開發(fā) 開發(fā)工具
不同團隊根據 Leader 的喜好、要求不同,應用模板又會不同。有的喜歡 DDD、有的喜歡 MVC、有的大道至簡即可。每家公司都會延伸出一個工具鏈做這個事情。

大家好,我是煎魚。

不知道大家平時在日常工作中,會不會遇到一個問題?公司用著微服務架構,經常要創(chuàng)建新的服務,需要一個應用模板去初始化新的服務,減少 ctrl+c+v,轉為相對自動化。

不同團隊根據 Leader 的喜好、要求不同,應用模板又會不同。有的喜歡 DDD、有的喜歡 MVC、有的大道至簡即可。每家公司都會延伸出一個工具鏈做這個事情。

新工具:gonew 生成模板

在 Go 社區(qū)也出現了這種訴求,Go 核心團隊帶頭大哥 @Russ Cox 發(fā)起了一個新討論《gonew: templates for new modules[1]》,引發(fā)了各方的熱議:

圖片圖片

原因是:Go 團隊經常收到用戶反饋要求使用某種 "go new" 功能,以某種基本模板啟動一個新的模塊(項目)。

這個工具不局限于 Go 團隊提供的模板,任何人都可以定義這個模板。這個模板也是很 “普通”,沒什么特殊的功能。

"go new" 的核心工作是下載一個模板,更改其模塊路徑,然后把它放到一個新的目錄中進行編輯。當然這個工具鏈未來可能還有更多的功能,但這就是最核心的訴求。

也出現了一個新的場景。有一名圖書作者,希望能夠更方便的提供圖書示例,不想要圖書讀者費盡心思克隆一個 git 倉庫。答案顯而易見,那就是本文提到的 gonew 工具。

快速體驗和實操

結合前后事跡來看,@Russ Cox 是一個執(zhí)行效率比較高的人。提出討論的前幾個月,已經寫好了工具給大家試用了。

安裝命令如下:

$ go install golang.org/x/tools/cmd/gonew@latest
go: downloading golang.org/x/tools v0.11.1
go: downloading golang.org/x/mod v0.12.0

創(chuàng)建命令如下:

$ gonew golang.org/x/example/hello
gonew: initialized golang.org/x/example/hello in ./hello

執(zhí)行完畢后,會在當前目錄下,創(chuàng)建一個 hello 目錄(./hello)。模板的結構如下:

$ tree hello 
hello
├── LICENSE
├── go.mod
├── hello.go
└── reverse
    ├── example_test.go
    ├── reverse.go
    └── reverse_test.go

1 directory, 6 files

我對比了一下,和模板基準的 git 倉庫 github.com/golang/example 的相關代碼是一致的。

可能會有同學說,不行啊。我還要改 module path。這點在現在也是已經支持的了。

如下命令:

$ gonew github.com/ServiceWeaver/template example.com/foo
gonew: initialized example.com/foo in ./foo

生成目錄:

$ tree foo
foo
├── LICENSE
├── README.md
├── go.mod
├── go.sum
├── main.go
├── weaver.toml
└── weaver_gen.go

對應生成的目錄名是指定的 foo,創(chuàng)建出來的 go.mod 文件的 module path 是:module example.com/foo。

符合上面提的要求。

一些討論

結合討論的內容來看,大家的反饋都是比較積極支持的。因為確實看到社區(qū)里很多人為此做了一模一樣的事情,各語言都有,真的是各顯神通了。

圖片圖片

有個別同學支持將本文提到的 go new 放到 go mod init 中,這樣就不需要再單獨創(chuàng)造一個新的命令集。

提出的同學認為 go mod init 本質上也是在引導 Go 應用的使用,和 go new 比較類似。可以調整為:

go mod init example.com/x/abc --template github.com/ServiceWeaver/template

以此滿足一樣的訴求。

不過我感覺這命令就太長了,沒 go new 那么短小精悍。

總結

本次 go new 工具的討論和實驗,Go 團隊非常迅速。目測勢在必得,肯定會加進去了。

因為根據反饋 Google 的幾個團隊也有興趣嘗試使用 gonew 進行模板化。ServiceWeaver 團隊對此也非常感興趣。

功能雖然非常簡單,但基本滿足了不同的團隊為了不同的代碼模板,創(chuàng)建一個新的模板的訴求。一旦成熟,也就不需要人均手搓一個模板的腳手架工具了。

后續(xù)各自在工具鏈套一下就 OK,一個快速的小成果就好了。推薦大家試用,又或是覺得還需要什么功能補充,也歡迎隨時留言。

責任編輯:武曉燕 來源: 腦子進煎魚了
相關推薦

2011-05-30 15:28:00

Firefox 6

2020-09-01 10:32:52

iOS微信新功能

2010-08-25 11:32:34

2021-08-19 09:37:06

Go 1.17語言架構

2009-09-22 15:52:30

Windows 7新功磁盤加密Bitlocker

2019-03-26 09:41:57

iOS應用系統

2009-12-15 11:16:39

VS2010開發(fā)程序

2009-01-03 15:01:16

ibmdwLotusQuickr

2009-07-07 08:49:33

微軟Windows 7新功能

2021-07-17 06:32:16

LinuxLinux Mint

2015-06-23 10:12:58

2021-07-26 17:28:03

Java開發(fā)代碼

2010-02-23 13:48:59

2011-02-28 17:41:20

SQL Server

2020-11-09 07:15:51

Fedora 33WorkstationLinux

2009-06-19 12:53:56

Spring 2.0

2011-05-24 09:56:53

Windows PhoMango

2023-01-30 07:19:58

微軟Windows 11

2020-08-16 09:25:21

Windows 10Windows操作系統

2018-07-30 13:51:06

區(qū)塊鏈物聯網大數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲天堂二区 | 亚洲天堂影院 | 91视频在线看 | 日韩视频一区 | 成人一区二区三区在线观看 | 色爱综合网 | 中文字幕一区二区三区四区五区 | 成年网站在线观看 | 一级大片网站 | 成人一区二区视频 | 九九热国产精品视频 | 亚洲高清网 | 亚洲欧美高清 | 日韩精品免费在线 | 国产一级片在线观看视频 | 一级黄片一级毛片 | 国产麻豆一区二区三区 | 亚洲一区二区久久 | 日韩精品无码一区二区三区 | 欧美日韩在线一区 | 91免费观看国产 | 国产成人啪免费观看软件 | 亚洲精品久久久一区二区三区 | 欧美1区 | 成人av免费 | 国产成人精品一区 | 激情一区二区三区 | 日本成人毛片 | 日本一区二区不卡 | 亚州激情| 秋霞影院一区二区 | 欧美一卡二卡在线观看 | 97超碰人人草 | 日本成人三级电影 | 一区二区三区在线 | 日日夜夜天天 | 久久久网 | 久久精品国产清自在天天线 | 美女久久久 | 韩日在线视频 | 自拍偷拍一区二区三区 |