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
20251209_プログラミング原則の学び
Search
nikawa2161
December 28, 2025
41
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20251209_プログラミング原則の学び
nikawa2161
December 28, 2025
More Decks by nikawa2161
See All by nikawa2161
Node.js Subpath imports
nikawa2161
0
44
Sagaパターン入門(続編)
nikawa2161
0
52
Sagaパターン入門
nikawa2161
0
65
沖縄観光とPostgreSQL排他制約の話
nikawa2161
0
41
自分のコードを数年ぶりに読んだら
nikawa2161
0
26
ユーザーインタビュー分析に参加して得られたことと気づき
nikawa2161
0
44
oEmbedとは?
nikawa2161
0
250
はじめまして、にかわです
nikawa2161
0
29
課題を映す問題空間と、答えを描く解決空間
nikawa2161
0
30
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
530
The Cost Of JavaScript in 2023
addyosmani
55
10k
Code Review Best Practice
trishagee
74
20k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
810
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
300
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Transcript
プリンシプル オブ プログラミング 2025.12.09 原則は失敗したあとに効く nikawa2161 1
本日のアジェンダ 1. KISS:シンプルに保つ 2. YAGNI:必要なものだけ作る 3. DRY:重複を避ける nikawa2161 2
はじめに 読んでの感想 「3 年目までに身につけたい101 の原理原則」より 最近の実装と設計から考えたこと うまくいかなかった点も含めて nikawa2161 3
なぜ原則の話をするのか コードは変わる 動いている = 良いコードではない あとから「つらくなる」瞬間が来る 原則は迷ったときの指針になる nikawa2161 4
KISS:シンプルとは何か Keep It Simple, Stupid シンプル = 賢い実装ではない 責務が小さい 関係性が少ない
読んで理解しやすい nikawa2161 5
KISSが壊れる瞬間 よくある失敗 新技術を使いたくなる 将来に備えたくなる 親切心で要件を足してしまう nikawa2161 6
バリデーション実装での学び 動くけどつらい 条件分岐が多い 責務が増えている どこを触ればいいか分かりにくい nikawa2161 7
共通化の難しさ 現実の課題 範囲が広くなりすぎる 特定の場所にしか使えない 汎用的に見えて汎用的でない nikawa2161 8
YAGNI:予測は外れる You Aren't Gonna Need It 将来を考えて書いたコード ほとんどの場合、使われない コードが重くなる原因になる nikawa2161
9
今必要なものに集中 YAGNIの実践 汎用性よりも今の価値 拡張性よりもまず動くこと 使われてから考える nikawa2161 10
エラーハンドリングでの反省 あとから欲しくなったもの 実際に何が起きたか分かる情報 リクエスト内容 デバッグしやすさ nikawa2161 11
DRY:One Fact in One Place Don't Repeat Yourself 同じ事実は一か所に DB
設計の基本原則 正規化はそのための手段 nikawa2161 12
DB設計で考えること 本質を見極める これは本質的なデータか UI 都合に引っ張られていないか トレードオフを理解しているか nikawa2161 13
正直な反省 失敗から学ぶ UI が欲しい形をDB に押し込んだ 将来変更しづらい可能性がある 今なら違う選択をするかも nikawa2161 14
抽象とは何か 2つの考え方 捨象:不要なものを捨てる 一般化:共通点を取り出す 複雑さを減らすための考え方 nikawa2161 15
共通化と抽象化 重要な違い 共通化 ≠ 良い抽象 早すぎる抽象は失敗しやすい 具体から抽象が生まれる nikawa2161 16
今の自分の立ち位置 まだ道半ば まだうまく使えているわけではない でも大事な視点だと分かった 意識するだけで設計が変わる nikawa2161 17
今日伝えたいこと 原則の価値 原則は失敗したあとに効く 迷ったときに戻る場所になる 完璧じゃなくていい nikawa2161 18
まとめ 3つのポイント シンプルは最大の武器 重複と未来予測は敵 一歩ずつコードを良くしていく nikawa2161 19