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
snoguchi1212
November 12, 2024
Programming
0
35
良いコードってなんだ?
snoguchi1212
November 12, 2024
Tweet
Share
More Decks by snoguchi1212
See All by snoguchi1212
dotfiles はじめてみた
snoguchi1212
0
96
MSWの活用
snoguchi1212
1
180
Other Decks in Programming
See All in Programming
TypeScript LSP の今までとこれから
quramy
1
500
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
750
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
290
Effect の双対、Coeffect
yukikurage
5
1.4k
生成AIで日々のエラー調査を進めたい
yuyaabo
0
590
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
700
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.4k
GoのGenericsによるslice操作との付き合い方
syumai
2
630
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
600
単体テストの始め方/作り方
toms74209200
0
470
SODA - FACT BOOK
sodainc
1
960
業務自動化をJavaとSeleniumとAWS Lambdaで実現した方法
greenflagproject
1
120
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
524
40k
Rails Girls Zürich Keynote
gr2m
94
14k
Building Adaptive Systems
keathley
43
2.6k
A better future with KSS
kneath
239
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
For a Future-Friendly Web
brad_frost
179
9.8k
The Pragmatic Product Professional
lauravandoore
35
6.7k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
660
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Embracing the Ebb and Flow
colly
86
4.7k
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!