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 Proverbs の紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
uji
July 27, 2025
Technology
200
2
Share
Go Proverbs の紹介
2025-07-27 Kanazawa.go オフライン集Go会 #5
uji
July 27, 2025
More Decks by uji
See All by uji
【Go ハンズオン】Windows / Linux コマンドを Go で再現
uji
1
110
testdata ディレクトリを活用しよう!
uji
1
390
MCP 公式の Go SDK で QA データ登録アシスタントを作ってみた
uji
0
160
Green Tea GCの動作を紙芝居にしてみる
uji
1
180
Go標準の暗号ライブラリメンテナンス戦略
uji
3
740
NOT A HOTEL TECH TALK ーSOFTWARE 3.0への道筋ー NEXT Web3 (2024-08-07)
uji
0
240
マネーフォワード ME ブロックチェーン連携機能におけるGoの活用方法
uji
1
300
Goはブロックチェーン領域でなぜ使われ、どのように活躍しているのか
uji
1
800
標準パッケージ初のgenerics利用事例 "sync/atomic.Pointer"
uji
2
1k
Other Decks in Technology
See All in Technology
M&Aで増え続けるプロダクトに少数QAはどう立ち向かうか─GENDAが挑む、全員で取り組む品質標準化戦略 / GENDA Tech Talk #4
genda
0
210
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
1
500
最新技術を"今は選ばない"という技術選定
leveragestech
PRO
0
260
みんなの考えた最強のデータ基盤アーキテクチャ'26前期〜前夜祭〜ルーキーズ_資料_遠藤な
endonanana
0
470
可視化から活用へ — Mesh化・Segmentation・アライメントの研究動向
gpuunite_official
0
230
TSKaigi 2026 - enumよ、さようなら
teamlab
PRO
1
160
AIAgentと取り組むKaggle
508shuto
2
410
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
1k
コーディングエージェントはTypeScriptの 型エラーをどう自己修正しているのか
melonps
2
130
"うちにはまだ早い"は本当? ─ 小さく始めるPlatform Engineering入門
harukasakihara
7
640
20260515 ID管理は会社を守る大切な砦!〜🔰情シス向け〜
oidfj
0
720
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
260
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
A better future with KSS
kneath
240
18k
The Invisible Side of Design
smashingmag
302
52k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.4k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
340
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
The agentic SEO stack - context over prompts
schlessera
0
780
The SEO identity crisis: Don't let AI make you average
varn
0
460
Chasing Engaging Ingredients in Design
codingconduct
0
190
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
530
Transcript
Go Proverbs の紹介 2025-07-27 Kanazawa.go オフライン集Go会 #5
⾃⼰紹介 • 名前: uji • 神⼾市在住 • NOT A HOTEL
所属 • Gopher 7年⽣ • KOBE.go, Kyoto.go 運営 https://twitter.com/uji_rb
Kyoto.go KOBE.go
Go⾔語の • プログラミング哲学 • ベストプラクティス を古くからあるGoの「格⾔」になぞらえて 紹介されたもの Go Proverbs とは?
https://go-proverbs.github.io/
Rob Pike⽒(Go⾔語の主要な設計者の⼀⼈「Goの⽗」) によるGopherfest 2015での講演などから抜粋 Go Proverbs とは? https://www.youtube.com/watch?v=PAAkCSZUG1c
いくつか抜粋
The bigger the interface, the weaker the abstraction.
インターフェースは同じメソッド(機能)を持つ複数の型 を、ひとくくりにして間接的に扱うための仕組み The bigger the interface, the weaker the abstraction.
インターフェースの代表例 io.Reader
The bigger the interface, the weaker the abstraction. Goにおいては、インターフェースは機能を絞り込み、でき るだけ⼩さく保つべきという⽂化が存在
機能が多い抽象度の低いインターフェースは それを満たすための実装が⼤変になり、再利⽤されなくなる インターフェースがより汎⽤的で再利⽤可能になり、結果 としてより強⼒で柔軟な抽象化が実現される
A little copying is better than a little dependency.
The bigger the interface, the weaker the abstraction. 「コードの再利⽤を最も重視する」という⽅針は 悪い考え、という教え
他ライブラリを安易にインポートすることで、 本来不要な依存関係を⽣み出すことへの懸念を⽰す
例: strconv パッケージ strconv はルーン⽂字列がPrint可能かどうかを判断する isPrint 関数を必要とするが、この機能のためだけに unicode パッケージ全体をインポートすると、⼤きな依存関係が発 ⽣する(約150キロバイト)
独⾃の isPrint の実装を持つことで、 ⼤きな依存関係のオーバーヘッドを回避している The bigger the interface, the weaker the abstraction. https://github.com/golang/go/blob/master/src/strconv/makeisprint.go
「意味があるならコピーすることを恐れるな」 不要な依存関係を避けることで、より堅牢で管理しやすい コードベースを構築することができる The bigger the interface, the weaker the
abstraction.
Don't panic.
Don't panic. Goでは、panic関数を呼び出すことで 実⾏時エラーとしてプログラムを終了させることができる
本当に継続不可能になる場⾯以外では使うべきでない。 エラーを返すことで、呼び出し元が関数のシグネチャから エラーの発⽣を予測でき、 適切に処理することが強制されるので プログラムの堅牢性が⾼まる Don't panic.
まとめ GoのプラクティスやGo⾃体の設計思想を知っておけると、 Goのエコシステムの恩恵を受けた開発がしやすくなる どうやって学べる? • Goの標準パッケージのドキュメントやコードを読む • Go Blog や、Goエコシステム設計‧開発者の発信を⾒る
イラスト: ©tottie / Renée French