Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Go的版本管理之路
Search
ipfans
October 27, 2018
Programming
0
61
Go的版本管理之路
2018中国计算机大会现代编程语言专场演讲内容
ipfans
October 27, 2018
Tweet
Share
More Decks by ipfans
See All by ipfans
Event Modeling: 新项目沟通方式
ipfans
0
18
TDD, BDD and Beyond
ipfans
0
24
Go最差实践
ipfans
0
28
现代方式使用asyncio
ipfans
0
50
Other Decks in Programming
See All in Programming
Prompt Cachingは本当に効果的なのか検証してみた.pdf
ttnyt8701
0
530
The Shape of a Service Object
inem
0
520
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
0
350
o1モデルのプロンプトエンジニアリングって?
ktc_wada
0
270
LangChainの現在とv0.3にむけて
os1ma
4
930
ドメイン駆動設計を実践するために必要なもの
bikisuke
4
330
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
590
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
[DroidKaigi 2024] Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜 / From Android View to Jetpack Compose: A Guide to Migration
syarihu
1
650
Rechartsで楽にゴリゴリにカスタマイズする!
10tera
1
170
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
250
API Platform for Laravel
dunglas
1
430
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
30
2.3k
How GitHub (no longer) Works
holman
310
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
A better future with KSS
kneath
235
17k
10 Git Anti Patterns You Should be Aware of
lemiorhan
653
58k
Statistics for Hackers
jakevdp
794
220k
Agile that works and the tools we love
rasmusluckow
327
20k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
32k
How to Ace a Technical Interview
jacobian
274
23k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Transcript
Go的包依赖管理理之路路 Kevin
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
包依赖 package main import "github.com/astaxie/beego" func main() { beego.Run() }
依赖
第三⽅方依赖
代码管理理 我们编写⾃自⼰己的代码 我们引⽤用别⼈人的代码 然后…
package golang.org/x/net/context: unrecognized import path "golang.org/x/net/context" (https fetch: Get https://golang.org/x/net/context?go-get=1:
dial tcp 216.58.221.241:443: i/o timeout) Go 下载依赖错误
"dependencies": { "antd": "^3.0.2", "axios": "^0.18.0", "babel-polyfill": "^6.26.0", "ckeditor": "^4.9.2",
"classnames": "^2.2.6", "color": "^3.0.0", "copy-text-to-clipboard": "^1.0.4", "dayjs": "^1.7.2", } { "require": { "monolog/monolog": "1.0.*" } } 其他语⾔言的依赖管理理 PHP Node
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
$GOPATH
$GOPATH by Google’s way
$GOPATH $GOPATH ├── bin ├── pkg └── src ├── google.golang.org
│ └── grpc │ ├── README.md │ ├── backoff.go │ ├── balancer │ │ ├── balancer.go .....
$GOPATH go主程序提供的get命令功能 ⽀支持git/svn/mercurial/bazzar 默认下载主分⽀支
$GOPATH 我们如何保证构建⼀一定是稳定构建?
API Breaking Changes?
gopkg.in 使⽤用Github托管仓库 语义化版本管理理发布 只能根据⼤大版本选择
$GOPATH 多个项⽬目依赖不不同版本的仓库A怎么办?
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
vendor
vendor 1.5: ⾸首次引⼊入,默认关闭(2015年年中) 1.6: 默认开启,可选关闭(2016年年中) 1.7: 永久开启,⽆无法关闭(2016年年底)
基于vendor的包管理理 https://github.com/golang/go/wiki/PackageManagementTools
vendor 新引⼊入包B⽆无法兼容已存在的包A怎么办? 同⼀一依赖的同⼀一版本冗余了了怎么办? 我们为什什么⼀一定需要$GOPATH?
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
go mod (vgo) Go 1.11版本正式引⼊入 不不强制位于$GOPATH 相同依赖项多版本管理理 ⽀支持语义化版本管理理
go mod (vgo) V
借助go.mod⽂文件管理理版本 go mod (vgo)
借助go.mod⽂文件管理理版本 go mod (vgo)
依赖引⽤用路路径查询 go mod (vgo)
便便捷的已有项⽬目迁移 go mod (vgo)
go mod (vgo) 中⼼心化的仓库成为可能
02 05 01 04 03 演讲⼤大纲 为什什么需要包依赖管理理 Go的包依赖管理理之路路 官⽅方引⼊入vendor go
mod介绍 案例例分享
None
None