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
27
良いコードってなんだ?
snoguchi1212
November 12, 2024
Tweet
Share
More Decks by snoguchi1212
See All by snoguchi1212
dotfiles はじめてみた
snoguchi1212
0
50
MSWの活用
snoguchi1212
1
160
Other Decks in Programming
See All in Programming
Rails アプリ地図考 Flush Cut
makicamel
1
110
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
1
670
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
870
Open source software: how to live long and go far
gaelvaroquaux
0
630
Linux && Docker 研修/Linux && Docker training
forrep
24
4.5k
Domain-Driven Transformation
hschwentner
2
1.9k
Grafana Loki によるサーバログのコスト削減
mot_techtalk
1
120
TokyoR116_BeginnersSession1_環境構築
kotatyamtema
0
110
最近のVS Codeで気になるニュース 2025/01
74th
1
260
iOSエンジニアから始める visionOS アプリ開発
nao_randd
3
130
Honoとフロントエンドの 型安全性について
yodaka
5
330
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
740
Featured
See All Featured
A better future with KSS
kneath
238
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
4
410
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Gamification - CAS2011
davidbonilla
80
5.1k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Building Adaptive Systems
keathley
40
2.4k
Producing Creativity
orderedlist
PRO
343
39k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Facilitating Awesome Meetings
lara
51
6.2k
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!