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
シンプルに考える
Search
yoji
August 19, 2025
2
120
シンプルに考える
yoji
August 19, 2025
Tweet
Share
More Decks by yoji
See All by yoji
カンファレンスにスタッフとして参加した
yojiogawa
1
210
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
2.8k
It's Worth the Effort
3n
186
28k
RailsConf 2023
tenderlove
30
1.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Done Done
chrislema
185
16k
Fireside Chat
paigeccino
39
3.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
How to Ace a Technical Interview
jacobian
279
23k
Transcript
シンプルに考える @YoujiO3 立秋!若手エンジニア ふんわりLT Night!
23卒エンジニア(3年目) Typescript、Angular、React、Java 趣味はドライブと酒 最近カンファレンススタッフやっています よくイベント行っています 外部LTほぼ経験なし 最近の悩み:運動しなければ 自己紹介 yoji @YoujiO3
None
今日お話しすること 実務で気づいて、今大切にしていることの一つ ふんわりと、シンプルなお題で話します
こんなことありませんでした?
こんなことありませんでした? めっちゃ長い関数
こんなことありませんでした? 誰も使わない、 いつ使うかわからないメソッド
こんなことありませんでした? 返り値がたくさんあるが、一部しか使わない
こんなことありませんでした? 計算済みの値があるのに、 突然新規ロジックを作成して再計算しはじめ、 大量のコードと膨大な工数を掛ける人
こんなことありませんでした? 理由を聞くと... 将来的に使うと思っていた いつの間にか大きくなっちゃいました 高度なテクニック使いたかった
シンプル
KISS原則とは Keep It Simple Stupid 「シンプルに、愚鈍に保て」
KISS原則とは Keep It Simple Stupid 「シンプルに、愚鈍に保て」 意味 可能な限りシンプルな手法、解決策であるべき 複雑さは避けるべき 不必要な機能は追加しない
プログラミングのシンプル 数字の合計を求める
プログラミングのシンプル シンプルなのは、for側 理由 reduceは代替可能である for文で同じ結果を得られる reduceが汎用性が高い テクニックが必要
シンプルとは 見た目的に単純であること?
シンプルとは 見た目的に単純であること? ↓ 目的目標に対して、取りうる解決法で最低限のもの 振る舞いが明確、予測可能 解釈が一通りで理解しやすい
シンプルの強み 対象の動き方の解釈が一本化する → 考えることが減り読みやすい、理解しやすい → 教育コストも低くなる(はず)
シンプルの強み 対象の動き方の解釈が一本化する → 読みやすい、理解しやすい → 教育コストも低くなる(はず) 想定外の振る舞いをすることがほぼない → 安心して使える、不具合分析が楽になる
シンプルの強み チーム開発でのメリット 作業時間の短縮 コードを読む時間、レビューする時間、etc... 認識のすり合わせの齟齬が少なくなる 議論時間の短縮 メンバーの理解が早い 教育コストも低下する(はず)
シンプルを目指そう ※用法用量は適切に守りましょう
応用
シンプルを目指そう 対象 モデル設計 機能実装の時 状態管理
実践的な応用例 機能設計
実用的な応用例 状態管理 できるだけ状態は絞りたい
シンプルを目指そう シンプルに考えられるように誘導する 例)ツールの制限的使用 汎用的で便利なツールも、制限すると考え方がシンプルになる ReactのuseEffect、AngularのServiceなど
シンプルかどうかを見分けるために 1.本当に必要か? この機能・状態は現在の要件に必要? 2.より簡単な方法はないか? 同じ結果をより少ない要素で実現できない? 3.理解しやすいか? チームメンバーが一目で理解できる?
まとめ シンプルとは → 解釈や振る舞いが一意に定まること 余分な複雑さの排除、解釈の統一による チーム開発への貢献 開発前に制限することも大事 「それ、本当に必要?」
ありがとうございました
余談(時間が余った時のみ)
オッカムの剃刀 必要以上に多くの仮定を立てるな KISS原則との関係 KISS原則: システム開発の判断に関する実践的指針 オッカムの剃刀: より哲学的な思考の原則 共通点 どちらも「不必要な複雑さを排除する」ことを重視
simple != easy simpleとeasyは別物であることに注意! 寧ろ、simpleは難易度が高かったりする。 「Simplicity is the ultimate sophistication.(シンプル
さは究極の洗練である) 」 ー レオナルド・ダ・ヴィンチ