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
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
990
SLO_By_Google_Cloud_Monitoring
dach
0
230
状態遷移テスト完全に理解しよう.pdf
dach
0
890
JWT完全に理解しよう-認証編-.pptx.pdf
dach
0
840
JWT完全に理解しよう-公開鍵編-.pptx.pdf
dach
0
740
チームの垣根を越境する_チーム間交換留学
dach
0
110
設計書のないサービスとの付き合い方.pptx.pdf
dach
0
210
designからWebページを作るやりかた完全に理解した.pdf
dach
1
400
Other Decks in Technology
See All in Technology
猫付きpingコマンドを自作
uyuki234
0
230
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.4k
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
19k
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
270
モダンフロントエンド 開発研修
recruitengineers
PRO
4
630
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
200
ホームラボ紹介
y_sera15
0
160
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
侵入は突然に 〜 IoTマルウェアと悪用される家庭の機器 ~ / When Intrusion Strikes: IoT Malware and the Abuse of Home Devices
nttcom
0
1.6k
FDEの心得
noriakioji
4
5.3k
2026-08-05 IBM Z開発最前線!IBM Bob Premium Package for Zって何がすごいの?
yutanonaka
0
110
Featured
See All Featured
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
480
Rails Girls Zürich Keynote
gr2m
96
14k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Cult of Friendly URLs
andyhume
79
7k
From π to Pie charts
rasagy
0
280
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
170
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
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