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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
snoguchi1212
November 12, 2024
Programming
0
50
良いコードってなんだ?
snoguchi1212
November 12, 2024
Tweet
Share
More Decks by snoguchi1212
See All by snoguchi1212
dotfiles はじめてみた
snoguchi1212
0
120
MSWの活用
snoguchi1212
1
220
Other Decks in Programming
See All in Programming
CSC307 Lecture 10
javiergs
PRO
1
660
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
CSC307 Lecture 02
javiergs
PRO
1
780
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.6k
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
310
CSC307 Lecture 01
javiergs
PRO
0
690
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
Oxlint JS plugins
kazupon
1
980
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
480
Grafana:建立系統全知視角的捷徑
blueswen
0
330
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
Featured
See All Featured
BBQ
matthewcrist
89
10k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
110
Fireside Chat
paigeccino
41
3.8k
Documentation Writing (for coders)
carmenintech
77
5.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
280
The Pragmatic Product Professional
lauravandoore
37
7.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Transcript
良いコードってなんだ? 野口 将輝
Beenos 株式会社 24 卒 野口 将輝 主な技術スタック React NextJS Laravel
興味のある技術 GitHub Actions 趣味 トライアスロン、野球観戦、服、コーヒ ー
良いコードってなんだ? 皆さんは「良いコード」ってなんだと思いますか? 速いこと? 凝縮度が高いこと? 疎結合であること? 開発体験がいいこと? → これらはすべて正しいが、 、 、
事業会社においては、 「お金を稼ぎ続けられるコード」
「お金を稼ぎ続けられるコード」ってなんだ? agility ( アジリティ) が高いこと 「アジリティ」 (Agility )とは、もともと機敏さ、素早さ、敏しょう性といった意味ですが、ビジネス用 語としては、目まぐるしい環境変化に即応するために欠かせない、経営や組織運営のあり方における機 敏性を表します。意思決定のスピードや効率、チーム編成や役割分担のフレキシビリティなどを含めた
概念で、不確実性が高く、不透明な時代を、組織と個人が生き抜くためのキーワードとして注目を集め ています。 ( 引用元: https://jinjibu.jp/keyword/detl/880/)
agility を高く保つためには? 保守性の高い設計 組織づくり
" コードは負債である" コードは資産ではなく負債だからです。つまり、コードが増えれば、ソフトウェアにバグが持ち込まれ る経路が増えることとなり、プロジェクトを維持するコストもさらに高くなってしまう、ということで す。そのため、この問題を解決するためには、コードは最小限にすべきなのです。 ( 引用元: 「単体テストの考え方/ 使い方」p.10) 私個人は、コードは「資産」でもあるという立場だが、
「負債」であるということには賛成。
テストの観点 良い単体テストを構成する4本の柱 「単体テストの考え方/ 使い方」では、 regression に対する保護 ファクタリングへの耐性 迅速なフィードバック 保守のしやすさ を単体テストを構成する4本の柱としている。
これらどれをとっても、 「agility 」を担保すると 言い換えられる
フレームワーク選定の観点での agility フレームワークを使うことのメリット 開発初期のコストを抑えられる 共通のツールを使うことによる認知コストの軽減 開発者間の意思疎通 セキュリティ面への考慮を削減できる
フレームワークを使うことのデメリット 1. フレームワークに制限される 引用元: Qiita: Laravel が如何にダメで時代遅れかを説明する 私は、Laravel は十分使えるフレームワークだと考えている。 ここで言いたいのは、
「フレームワークを使うこと」 = 「そのフレームワークに制限される」ということ。
フレームワークを使うことのデメリット 2. フレームワークがバージョンアップすれば、それに追従する必要がある
フレームワークを使うことのメリット 開発初期のコストを抑えられる 共通のツールを使うことによる認知コストの軽減 開発者間の意思疎通 セキュリティ面への考慮を削減できる フレームワークを使うことのデメリット フレームワークに制限される フレームワークがバージョンアップすれば、それに追従する必要がある → これらはすべて、agility
が上がる or 下がる という表現ができる
人の観点での agility 優秀な人や長年働いてくれる人がいると、その人に聞けば OK! → 開発速度自体は上がる = agility が上がる! だけど、
、 、
コードレビューを一人が担ってしまっている コードが複雑化していて、長年現場にいる人しかわからないコード → このような場合、その人が単一障害点になりうる 回避するためには、 、 、 " 良い" テストを書く
リファクタリングを定期的に行う ドキュメントづくり 人材育成 / 組織づくり これらは、一見 agility を下げるが、長期的な目線に経てば、agility を上げるもの
コードにしても、フレームワークにしても、人にしても、それによって、 「agility が上がるのか?下がるのか?」 という視点で、 「コードの良さ」を測る事ができる
Thank You! Thank you for your attention!