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
第一回Enablement Bootcamp for Gopherizing 発表会資料
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kushidam
October 12, 2023
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第一回Enablement Bootcamp for Gopherizing 発表会資料
kushidam
October 12, 2023
More Decks by kushidam
See All by kushidam
Gitの紹介/共有
kushidam
0
170
Other Decks in Technology
See All in Technology
その Lambda、8分で 管理者権限まで奪われます
k1nakayama
7
3.3k
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
4.4k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
550
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
570
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
17k
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
680
SREの視点で考えるSIEM活用術 〜AWS環境でのセキュリティ強化〜
cscengineer
PRO
0
130
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
270
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
160
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
410
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
The Curse of the Amulet
leimatthew05
3
15k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Why Our Code Smells
bkeepers
PRO
340
58k
Faster Mobile Websites
deanohume
310
32k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Navigating Weather and Climate Data
rabernat
0
520
What's in a price? How to price your products and services
michaelherold
247
13k
ラッコキーワード サービス紹介資料
rakko
1
4.9M
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...