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
golang is in need to TDD @DOG #1
Search
dach
May 30, 2019
Technology
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
golang is in need to TDD @DOG #1
dach
May 30, 2019
More Decks by dach
See All by dach
dbt_ベストプラクティス_完全に理解した.pdf
dach
2
1.2k
プロジェクトマネージャーと炎の回避術
dach
0
1k
SLO_By_Google_Cloud_Monitoring
dach
0
240
状態遷移テスト完全に理解しよう.pdf
dach
0
910
JWT完全に理解しよう-認証編-.pptx.pdf
dach
0
850
JWT完全に理解しよう-公開鍵編-.pptx.pdf
dach
0
770
チームの垣根を越境する_チーム間交換留学
dach
0
110
設計書のないサービスとの付き合い方.pptx.pdf
dach
0
210
designからWebページを作るやりかた完全に理解した.pdf
dach
1
410
Other Decks in Technology
See All in Technology
12 個 Tool と、 4,096 Token
hlum
0
110
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
340
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.2k
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
240
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1k
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
1.8k
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
170
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
140
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.2k
20260930_Gemma4_Hands-on
tsho
0
240
AI時代のPRレビューにどう向き合うか?
kairim0
1
110
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7.1k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
740
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Navigating Weather and Climate Data
rabernat
0
550
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
Unsuck your backbone
ammeep
672
58k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
New Earth Scene 8
popppiees
4
2.7k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
770
Transcript
None
※ 注意 ※ • go素人が感じた体験談なので「これが正解!」というものではないです • 本内容は所属組織としての発表内容ではございません • 「こっちのほうがいいよ!」「こういう書き方もあるよ!」 というマサカリをお持ちの方は是非意見交換しましょう
自己紹介 名前: - secondly SNS: - qiita: secondly - github:
sencondly スキル: - ops, front, backend, カイゼン, etc… - golang歴: 半年弱 - トレーニング
所属紹介 < DesignOneJapan > - サービス開発部 初恋チームかれんちゃん https://www.wantedly.com/companies/designone/post_articles/ 163234 -
[エキテン]のリニューアルをやるteam - ops, golang導入, カイゼン活動, architecture担当 < The Agile Guild > - チームでありたい人のための「共同 体」 - 色々なPJや組織作りが動いてたり します - 詳しくはこちら http://papanda.hatenablog.com/entry/2018/12/01/The_ Agile_Guild%E3%82%92%E7%AB%8B%E3%81%A1 %E4%B8%8A%E3%81%92%E3%81%A6%E5%8D% 8A%E5%B9%B4%E3%81%8C%E7%B5%8C%E3%8 1%A1%E3%81%BE%E3%81%97%E3%81%9F%E3 %80%82
今日お話すること golangってどう書くのがいいんやろ? がわかった(気がする)話
ことの始まり 新しいアーキテクチャ に載せる言語何がい い? っすね 脳死 上司 私 ※ 初心者
そこからgolangの谷へGo! • golangって何ができるんや! • golangって何が得意なんや! • golangは今一般的にどういう使われ方をしてるんや! • golangの文法ってどんなんや!
1つずつ解決をしていった! • golangって何ができるんや! → シンプルな構造で書くことが出来まっせ! • golangって何が得意なんや! → APIでも機械学習でも色々いけまっせ! • golangは今一般的にどういう使われ方をしてるんや!
→ githubみればおk
あれっ、もしかして... golangって結構簡単に使える!?
そしてこうなる まじぞ? そらええな 意外と簡単そ うっすわ 上司 私 ※ 初心者
で、実際のプロダクトをやってみると... いっちょサクッとやっ たるか! 初期の私 末期の私 中期の私 テストどうしよ directory構造は? 依存関係の管理 は?
versionは? 差分って何? interface型の 良い使い方 文書管理は? swagger? open api? エラーハンドリ ングは? ライブラリ上手 く対応してな い...
簡単だったさ!...実際作ってみなければね • golangでのdirectory structureどうするんや! • golangっぽい書き方ってどうするんや! 最初の山場
そして運命の出会い
そう、あの有名な「t_wada」さんですよ ※ 直接お会いさせていただいたことはありません 私が参考にさせていただいた記事 Classmethodさんの「テスト駆動開発って何だろう」 https://dev.classmethod.jp/study_meeting/read/what-tdd/
で、どう変わったのよ?
今まで
t_wadaさんとの出会い後
何が変わったか • golangでのdirectory structureどうするんや! • golangっぽい書き方ってどうするんや!
golangっぽい書き方ってどうするんや! • 今まで → とりあえずそれっぽくfunction単位でまとめればええんやろ • 進化した私 → まずはドキュメント! テストを要件から作る!
そのままテストケースにする! TDD回す! いい感じにfunctionが作れる! 同じような処理はその後interfaceにまとめられる!
golangでのdirctory structureどうするんや! • 今まで → とりあえず一緒のところ?公式通り?OSS参照にしてもバラバラ... • 進化した私 → 構造は基本公式と一緒! ただ、テストドキュメントも一緒管理!
ちなみに公式のディレクトリ構成はこんな感じ https://golang.org/doc/code.html
ちょっとマシになった! • インターフェースどういう使い方すればいいかイメージがついた! • 構成もシンプルになったので管理しやすい! • go testがちゃんと走るように構築するので、CIができるように! • 多少読みやすいコードになった!
とはいえ、まだまだ課題もいっぱい • テストの粒度や文章の作り方 • パッケージ間の依存性をどこまでにするか • テストしにくいようなものに対する理解や対応 • 多少読みやすいコードになった! •
etc...
まとめ • TDDでつくっていくと、goっぽいコードになりますよ(体感) • これが正解!というわけではないと思います • ですがとにかくどう書けばいいかわからない!という方にはおすすめです
Fin