Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【Go言語】プロジェクト構成とパッケージ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tomoki Ota
July 04, 2024
Programming
1.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【Go言語】プロジェクト構成とパッケージ
プロジェクト構成とパッケージについてまとめました。
Tomoki Ota
July 04, 2024
More Decks by Tomoki Ota
See All by Tomoki Ota
アーキテクチャの価値
tomo1227
0
130
アーキテクチャとビジネスロジック
tomo1227
0
140
【Go言語】テスト
tomo1227
0
110
【Go言語】クロージャ
tomo1227
0
370
【Go言語】イテレータ
tomo1227
0
130
【Go言語】エラーハンドリング
tomo1227
0
110
AIに淘汰されないようにするには?
tomo1227
0
110
【Go言語】range
tomo1227
0
120
【Go言語】break
tomo1227
0
120
Other Decks in Programming
See All in Programming
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
気持ちぃ〜角丸 Squircle
ryu1013
0
320
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
260
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
280
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
400
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.3k
contenteditable と日本語入力に向き合う
colorful12
0
200
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
3
450
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
120
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
290
Kotlinの15年とServer-Side Kotlin
n_takehata
1
160
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
109
250k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
600
ラッコキーワード サービス紹介資料
rakko
1
5.4M
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
Optimizing for Happiness
mojombo
378
71k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
490
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Speed Design
sergeychernyshev
33
2.2k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
890
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