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を使ってTDDを体験しよう!
Search
chiroruxx
September 27, 2025
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goを使ってTDDを体験しよう!
2025/09/27 Go Conference 2025 で使用したワークショップ資料です。
chiroruxx
September 27, 2025
More Decks by chiroruxx
See All by chiroruxx
Contextとはなにか
chiroruxx
1
440
初心者エンジニアから中級者エンジニアになるためにオススメの1冊
chiroruxx
0
130
Laravelのパッケージ全部紹介する
chiroruxx
2
150
Gopher のための「自由な話し合い」ワークショップ
chiroruxx
0
51
PHPをGoで動かす
chiroruxx
0
110
今ならできる!PhpStormプラグイン開発
chiroruxx
0
120
Go Connectへの想い
chiroruxx
0
240
eBPF with PHPをさわる
chiroruxx
0
200
sl完全に理解したつもり
chiroruxx
0
190
Other Decks in Technology
See All in Technology
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.3k
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
290
SmartHR Engineering Team Deck
smarthr
1
3.1k
AI for Science時代を切り開く、政府の次世代HPC戦略の展望
gpuunite_official
0
130
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
800
20260817_生成AIの動向と中学校・高等学校での活用を考える_v1.00_公開用
doradora09
PRO
0
140
Genie Codeハンズオン応用編
taka_aki
0
130
:syncing_time:
sksat
1
120
8bit CPU 2026
koba789
1
540
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
350
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.5k
トークンマネジメントでAIにとって働きやすい環境を実現する
hikaruegashira
0
130
Featured
See All Featured
Game over? The fight for quality and originality in the time of robots
wayneb77
1
250
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
Discover your Explorer Soul
emna__ayadi
2
1.3k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
780
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
410
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Transcript
• 自己紹介をする • 気になるセッションやワークショップ • どこからきた? • etc… • PCは閉じよう!
待ち時間に隣の人と話そう!
Go を使って TDD を体験しよう!! Go Conference 2025
今日の流れ 自己紹介 10分 TDDについて TDDのデモ TDD体験① 休憩 TDD体験② 10分 20分
20分 10分 20分
自己紹介
自己紹介 • 所属 ◦ 株式会社モリサワ • 趣味 ◦ コミュニティ運営 •
好きなパッケージ ◦ strconv ちひろ
株式会社モリサワ • 様々なフォントを 作っています • 同じ金額で何書体でも 利用可能です (メイン商品) • Webフォントの配信も
行っています
自己紹介 おーたかこーたろー(@otakakot) • 所属 ◦ 株式会社ビットキー • 趣味 ◦ 登壇
◦ TinyGo Conference 2025 で LT します! • 好きなパッケージ ◦ net/http/httptest
株式会社ビットキー スマートロックを中心とした ハードウェアとソフトウェアを 融合したプロダクト開発 認証認可基盤・IoTプラットフォーム などさまざまなバックエンドサービス でGo言語を採用 こんなところでGoを使ってます The Go
gopher was designed by Renée French.
みなさんも自己紹介しましょう • テーブル単位 • 内容は自由 • 時間は5分 • ポイント ◦
全員喋ろう ◦ 他の人と同じくらいの時間を喋ろう
TDDについて
TDDとは • ソフトウェア 開発 技法のひとつ ◦ ひとつずつ、一歩ずつ進める ◦ 過度な設計を防ぐ ◦
安心して開発できるようにする
よく見かける図 Red Green Refact oring 落ちるテストを書く 最短でテストを通す コードを最適化する 間違ってはいないが部分的!!
誤解が多い • “最初” に落ちるテストを書く • 最初にすべてのテストケースを書く • 最初からキレイなコードを書く • いきなり実装のことを考えてしまう
• etc…
TDDの流れ TODOを完了にする Red Green Refact oring テストをひとつ書く 最短でテストを通す コードを最適化する start
TODOリストを書く
集中 今やるべきこと以外をやらないこと
なぜ集中するのか • 効率を上げたい ◦ 思い出しコストをなくす • 品質を上げたい ◦ 見落としを減らす •
簡単 ◦ 同時に色々考えるのは難しい
コードを書くとき func Add(a int, b int) int { return a
+ b } 引数まとめ られそう 変数名は 適切? 小数は? 公開して いいんだっけ? Plusのほうが いい? 関数で いいんだっけ? このパッケージで いいんだっけ? 別ファイルに 切り出したほうが いい? Go Doc 書かなきゃ ロジックを作ることに頭をフル活用できない! 既存コードに なかったっけ?
TDDと集中 TODOを完了にする Red Green Refact oring テストをひとつ書く 最短でテストを通す コードを最適化する start
TODOリストを書く
TODOリスト • タスク全体の設計をする • 集中するための外部ストレージ ◦ ここに書いたものは忘れて良い ◦ TDD中にいつでも編集して良い
最近見かけたポスト https://x.com/nwiizo/status/1967347627218903164
落ちるテストを書く • シグネチャを設計する • 実際にどのように使用されるかを設計する ◦ 使うための準備が大変か? ◦ etc Red
最短でテストを通す • システムを安定させる ◦ 壊れていない状態にする Green
コードを最適化する • コードの内部を設計する • テストコードの内部を設計をする Refact oring
まとめ • TDDはソフトウェア開発技法 • TDDではTODOリストの作成から始める • TDDは集中がキモ
TDDのデモ
FizzBuzz 引数として整数 n が与えらたとき、以下の内容を 返すプログラムを作成してください。 • n が 3 の倍数の場合に
Fizz を返す • n が 5 の倍数の場合に Buzz を返す • n が 3 の倍数かつ 5 の倍数の場合に FizzBuzz を返す • それ以外の場合は n を返す
TDDの流れ TODOを完了にする Red Green Refact oring テストをひとつ書く 最短でテストを通す コードを最適化する start
TODOリストを書く
デモ!!
TDD体験①
体験の流れ • お題の説明 • 進め方の説明 • レッツトライ!(15分) ◦ 問題を解き切る必要はナシ
お題: URL分析 URLから以下を取得する処理を書いてください。 • ドメイン • サブドメイン https://pkg.go.dev/fmt サブドメイン ドメイン
お題: URL分析: 補足 今回は以下のパターンのみ • トップレベルドメイン: .com, .co.jp, .jp •
スキーマ: http, https
進め方 せっかく仲間がいるのでペアプロで進めましょう • ドライバーとナビゲーター • ドライバーがコードを書く • ナビゲーターがサポートする
ドライバー • コードを書いていく • 思っていることを口に出す(常に喋る) ◦ 手より先に口を動かす • ナビゲーターに「今何やってるんですか?」って 言われたら負け
ナビゲーター • ドライバーが快適にコードを書けるように サポートする ◦ コードをすいすい書いているときは見守る ◦ 詰まっているときには一緒に考える
Aさん 一緒に考える ドライバー ナビゲーター ドライバー ナビゲーター Bさん 一緒に考える ナビゲーター ドライバー
ナビゲーター ドライバー TDD x ペアプログラミング Red Green Refact oring Red
TDD体験②
体験の流れ • お題の説明 • 進め方の説明 • レッツトライ!(15分) ◦ 問題を解き切る必要はナシ
お題: 給与計算 あなたは超大手グローバル企業 "tddle" (ティーディル)の日本法人に勤めています。 あなたの業務のうちのひとつは社員への給与の 支払いです。 ここで、社員へ支払うべき給与を計算する プログラムを作成してください。
お題: 給与計算 • 給与は世界共通で、アメリカドルで定義されています。 • 日本法人の社員は、給与をアメリカドルで受け取るか 日本円で受け取るかを選択できます。 • 為替レートは常に変動しますが、参照するのは月に1回、 給与を支払うときのみです。
• 日本法人には独自の制度があり、資格などに応じて 給与が上乗せされます。 ◦ この制度の金額は日本円で定められています。
お題: 給与計算: ヒント 例えば以下の給与計算をできる必要があります。 (以下は 為替レート=148 の場合) • 給与 $5,000
を日本円で算出する ◦ $5,000 = ¥741,117 • 給与 $5,000 + 資格手当 ¥10,000 をアメリカドルで 算出する ◦ $5,000 + ¥10,000 = $5,067
進め方 • 先ほどと同様にペアプロで進めます