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
11
良いコードってなんだ?
snoguchi1212
November 12, 2024
Tweet
Share
More Decks by snoguchi1212
See All by snoguchi1212
dotfiles はじめてみた
snoguchi1212
0
31
MSWの活用
snoguchi1212
1
100
Other Decks in Programming
See All in Programming
CSC509 Lecture 12
javiergs
PRO
0
160
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1.1k
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.2k
最新TCAキャッチアップ
0si43
0
190
Remix on Hono on Cloudflare Workers
yusukebe
1
300
役立つログに取り組もう
irof
28
9.6k
受け取る人から提供する人になるということ
little_rubyist
0
250
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
230
C++でシェーダを書く
fadis
6
4.1k
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
Featured
See All Featured
Building Applications with DynamoDB
mza
90
6.1k
Thoughts on Productivity
jonyablonski
67
4.3k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
24k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Bash Introduction
62gerente
608
210k
Adopting Sorbet at Scale
ufuk
73
9.1k
Designing for humans not robots
tammielis
250
25k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
We Have a Design System, Now What?
morganepeng
50
7.2k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Designing on Purpose - Digital PM Summit 2013
jponch
115
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!