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
Tomoki Ota
July 04, 2024
Programming
0
1k
【Go言語】プロジェクト構成とパッケージ
プロジェクト構成とパッケージについてまとめました。
Tomoki Ota
July 04, 2024
Tweet
Share
More Decks by Tomoki Ota
See All by Tomoki Ota
アーキテクチャの価値
tomo1227
0
110
アーキテクチャとビジネスロジック
tomo1227
0
110
【Go言語】テスト
tomo1227
0
66
【Go言語】クロージャ
tomo1227
0
290
【Go言語】イテレータ
tomo1227
0
81
【Go言語】エラーハンドリング
tomo1227
0
68
AIに淘汰されないようにするには?
tomo1227
0
72
【Go言語】range
tomo1227
0
78
【Go言語】break
tomo1227
0
71
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
640
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
240
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
160
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
290
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
760
Python札幌 LT資料
t3tra
7
1.1k
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
.NET Conf 2025 の興味のあるセッ ションを復習した / dotnet conf 2025 quick recap for backend engineer
tomohisa
0
110
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
240
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
330
GoLab2025 Recap
kuro_kurorrr
0
1.3k
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Thoughts on Productivity
jonyablonski
73
5k
Producing Creativity
orderedlist
PRO
348
40k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
870
Marketing to machines
jonoalderson
1
4.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
250
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The browser strikes back
jonoalderson
0
300
Testing 201, or: Great Expectations
jmmastey
46
7.8k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
300
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Transcript
Tomoki Ota ʲGOݴޠʳ ϓϩδΣΫτߏͱύοέʔδ
TL;DR 2
GOʹ1ͭͷදతͳ ϨΠΞτ͕͋Δ 3
https://github.com/golang-standards/project-layout 4
͔͠͠ɺ͜Εඇެࣜ Russ-Cox(Goͷϝϯςφʔͷ̍ਓ)൷͍ͯͨ͠ 5
https://go.dev/doc/modules/layout 6
Project-layoutͷσΟϨΫτϦߏ Project-layoutͷҙ γϯϓϧͳύοέʔδ γϯϓϧͳίϚϯυ APIαʔόͷϓϩδΣΫτߏ ύοέʔδͷཻ ϢʔςΟϦςΟύοέʔδ ύοέʔδͷ໊લͷিಥ ΞδΣϯμ 7
PROJECT-LAYOUT 8
PROJECT-LAYOUTͷσΟϨΫτϦߏ 9
project-layout ɺGoެࣜͷϨΠΞτͰͳ͍ͷͰɺඞͣ ͠कΒͳ͍ͱ͍͚ͳ͍نͰͳ͍ɻ src࡞͍͚ͬͯͳ͍ɻsrcΛ͏ͷJavaͷελΠϧͳͷ ͰɺGoͰ༻͍͚ͯ͠ͳ͍ɻ·ͨɺsrcҰൠత͗͢Δɻ PROJECT-LAYOUTͷҙ 10
ެࣜͷϓϩδΣΫτߏ 11
γϯϓϧͳύοέʔδ 12
γϯϓϧͳύοέʔδ 13
γϯϓϧͳύοέʔδ ϑΝΠϧΛ͚Δ͜ͱՄೳ 14
fooίϚϯυͷ࡞ γϯϓϧͳίϚϯυ 15
fooίϚϯυͷ࡞ γϯϓϧͳίϚϯυ Client 16
fooίϚϯυͷ࡞ γϯϓϧͳίϚϯυ ⭕ ❌ 17
APIαʔό 18
ύοέʔδ 19
ϢʔςΟϦςΟύοέʔδ utils, common, base, shared ͷΑ͏ͳ ڞ༗ύοέʔδ࡞ͨ͠Βμϝ🙅 20
ϢʔςΟϦςΟύοέʔδ 21
ϢʔςΟϦςΟύοέʔδ 22
ϢʔςΟϦςΟύοέʔδ 23
ϢʔςΟϦςΟύοέʔδ ҙຯͷͳ͍ύοέʔδ໊͚͍ͭͯ ͚ͳ͍ɻ·ͨɺύοέʔδͷ໊લԿ ΛؚΉ͔Ͱͳ͘ɺԿΛఏڙ͢Δ͔Ͱ ܾΊΔɻ 24
ύοέʔδ໊ͷিಥ 25
ύοέʔδ໊ͷিಥ ΤΠϦΞεͷ༻ 26
ύοέʔδ໊ͷিಥ ύοέʔδҎ֎ʹɺ ΈࠐΈؔͱมͷ໊લͷিಥආ͚Δɻ(copy()ͳͲ) 27