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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ipfans
October 27, 2018
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go的版本管理之路
2018中国计算机大会现代编程语言专场演讲内容
ipfans
October 27, 2018
More Decks by ipfans
See All by ipfans
Event Modeling: 新项目沟通方式
ipfans
0
57
TDD, BDD and Beyond
ipfans
0
75
Go最差实践
ipfans
0
55
现代方式使用asyncio
ipfans
0
94
Other Decks in Programming
See All in Programming
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
200
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
290
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
250
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
360
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
270
さぁV100、メモリをお食べ・・・
nilpe
0
140
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
290
Agentic UI
manfredsteyer
PRO
0
180
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
710
A2UI という光を覗いてみる
satohjohn
1
140
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
My Coaching Mixtape
mlcsv
0
150
Mind Mapping
helmedeiros
PRO
1
250
A designer walks into a library…
pauljervisheath
211
24k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
630
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Context Engineering - Making Every Token Count
addyosmani
9
970
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
WENDY [Excerpt]
tessaabrams
11
38k
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