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
46
良いコードってなんだ?
snoguchi1212
November 12, 2024
Tweet
Share
More Decks by snoguchi1212
See All by snoguchi1212
dotfiles はじめてみた
snoguchi1212
0
110
MSWの活用
snoguchi1212
1
190
Other Decks in Programming
See All in Programming
Writing Better Go: Lessons from 10 Code Reviews
konradreiche
0
2.2k
株式会社 Sun terras カンパニーデック
sunterras
0
370
Devvox Belgium - Agentic AI Patterns
kdubois
1
130
When Dependencies Fail: Building Antifragile Applications in a Fragile World
selcukusta
0
110
Devoxx BE 2025 Loom lab
josepaumard
0
110
エンジニアインターン「Treasure」とHonoの2年、そして未来へ / Our Journey with Hono Two Years at Treasure and Beyond
carta_engineering
0
350
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
510
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
6.7k
CSC305 Lecture 08
javiergs
PRO
0
250
理論と実務のギャップを超える
eycjur
0
150
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
230
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
3.4k
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Balancing Empowerment & Direction
lara
5
690
The Art of Programming - Codeland 2020
erikaheidi
56
14k
We Have a Design System, Now What?
morganepeng
53
7.8k
Mobile First: as difficult as doing things right
swwweet
225
10k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
What's in a price? How to price your products and services
michaelherold
246
12k
Building Better People: How to give real-time feedback that sticks.
wjessup
369
20k
RailsConf 2023
tenderlove
30
1.3k
For a Future-Friendly Web
brad_frost
180
10k
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!