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
第一回Enablement Bootcamp for Gopherizing 発表会資料
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kushidam
October 12, 2023
Technology
0
110
第一回Enablement Bootcamp for Gopherizing 発表会資料
kushidam
October 12, 2023
Tweet
Share
More Decks by kushidam
See All by kushidam
Gitの紹介/共有
kushidam
0
150
Other Decks in Technology
See All in Technology
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
Why Organizations Fail: ノーベル経済学賞「国家はなぜ衰退するのか」から考えるアジャイル組織論
kawaguti
PRO
1
210
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
150
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
4
430
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.4k
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
210
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
5
520
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.2k
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
600
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
79
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
650
Facilitating Awesome Meetings
lara
57
6.8k
Transcript
ToDoアプリ作成で得たこと 第一回Enablement Bootcamp for Gopherizing 2023/10/12
自己紹介 Zenn https://zenn.dev/kushidam Github https://github.com/kushidam Name: @kushidam SI企業でCやC#を書いている
ToDoアプリ作成で得たこと 最終講義でgRPCを使ったAPIサーバの作成を行いました。 そこでは時間が足りなかったため、途中までの実装になりました。 講義終了後に予定されていた機能を作りました。 使用技術用語についてまとめます。
gRPCとは・・・ Google が開発した RPC(Remote Procedure Call)システム Go言語以外でもNode.js、Python、C++、C#、Javaなど多くの言語で利用可能 サーバー アプリケーションのメソッドを呼び出すことができる RESTと比べ、低遅延・高速な通信という特徴がある
Protocol Bufferesとは・・・ IDL:Interface Definition Languageの一種 モデルの型定義と、API仕様の定義 各種言語のソースコードの自動生成 gRPCはデフォルトでProtocol Buffersを用いる
対応した要件 【機能要件】 • タスクの追加 • タスクのステータス変更 • タスクの削除 【非機能要件】 •
単体テスト • シナリオテスト(窓非対応) • DBは不使用(sync.Mapを使う) • エラーハンドリング
作成した範囲 XXXX.proto xxx.pb.go IDL Interface xxx.pb.go Client xxxx.go server buf
genelate
意識したところ 単体テストではテーブル駆動テストを用いた(テスト用標準ライブラリを使用) • テストケースはなるべく1行で記述した 列で見た際のテストケースの違いが見やすくなる エラーハンドリングでは開発者向けにlogへデータを出力した
テーブル駆動テスト ツールなどではなくテスト方法の一つ ロジックとテストケースの分離 テストケースの追加が容易 テストプログラム n個のテストケース テストロジック
テーブル駆動テスト
テーブル駆動テスト テストケースが増えてきたとき、テストケース間の差異が見やすい
エラーハンドリング
開発、講義を通して実施できたこと gRPCに入門することができました。 テストを意識したロジックコードの実装ができました。 エラー処理を行うことでGoらしい記述ができました。 引数などlogに出力することで再現確認用の情報を取得できました。
課題 エラー対処に必要な情報を含める • 「どこで」 • 「誰の原因」 • 「再現に必要な情報(引数の中身など)」 errors.Is や
errors.Asなどでより詳しい情報を得て原因を特定できるようにする Go 言語の文化や他言語との差異
Thank you...