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
若手が可読性を上げるために気を付けたこと / 20210707_readablelt_nazato
Search
Rakus_Dev
March 14, 2022
Technology
0
2.5k
若手が可読性を上げるために気を付けたこと / 20210707_readablelt_nazato
Rakus_Dev
March 14, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
設計フェーズを加速するAI活用戦略 / AI Strategy for Accelerated Design
rakus_dev
2
390
10年以上続くWebサービスのAIファースト時代への向き合い方 / Navigating the AI-First Era: A Strategy for Established Web Services
rakus_dev
0
170
楽楽明細開発部 | 組織的なAI駆動開発の推進 / Promoting organizational AI-driven development
rakus_dev
0
170
AIエージェントを使った爆速デモアプリ作成 / Rapid demo app creation using AI agents
rakus_dev
0
170
Claude Codeによる自律的並列分析の実践 / Practicing Autonomous Parallel Analysis with Claude Code
rakus_dev
0
170
コードを書かないマネージャーがつくるコンテキストエンジニアリング / Context Engineering Created by a Non-Coding Manager
rakus_dev
0
180
AIへの再指示を抑える要件、設計、デザイン等のモバイル開発コンテキストの渡し方
rakus_dev
0
140
モバイルアプリ向けに開発したAPIをMCP化したら便利そうだった / mobiletechcafe20250902-2
rakus_dev
0
130
AIによるAndroidアプリのモダン化 / mobiletechcafe20250902-3
rakus_dev
0
130
Other Decks in Technology
See All in Technology
自動テストのコストと向き合ってみた
qa
1
230
Data Hubグループ 紹介資料
sansan33
PRO
0
2.2k
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
8
1.4k
『バイトル』CTOが語る! AIネイティブ世代と切り拓くモノづくり組織
dip_tech
PRO
1
120
AI時代こそ求められる設計力- AWSクラウドデザインパターン3選で信頼性と拡張性を高める-
kenichirokimura
3
300
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
930
そのWAFのブロック、どう活かす? サービスを守るための実践的多層防御と思考法 / WAF blocks defense decision
kaminashi
0
190
AI駆動開発を推進するためにサービス開発チームで 取り組んでいること
noayaoshiro
0
260
AWS 잘하는 개발자 되기 - AWS 시작하기: 클라우드 개념부터 IAM까지
kimjaewook
0
130
Digitization部 紹介資料
sansan33
PRO
1
5.5k
Node.js 2025: What's new and what's next
ruyadorno
0
170
[Codex Meetup Japan #1] Codex-Powered Mobile Apps Development
korodroid
2
520
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
173
14k
Being A Developer After 40
akosma
91
590k
Code Review Best Practice
trishagee
72
19k
Scaling GitHub
holman
463
140k
Context Engineering - Making Every Token Count
addyosmani
6
240
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
The Straight Up "How To Draw Better" Workshop
denniskardys
238
140k
How GitHub (no longer) Works
holman
315
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
Automating Front-end Workflow
addyosmani
1371
200k
Docker and Python
trallard
46
3.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
115
20k
Transcript
若手が可読性を上げるために 気を付けたこと 名里 梨佐
自己紹介 • 氏名 • 名里梨佐(ナザトリサ) • 所属 • 株式会社ラクス •
仕事 • Mail Dealerの開発をしています
本日のお話 個人でプログラムを書くことしかしていなかった人間が、 グループの一員として開発に関わるようになって2年と少し。 可読性を良くするために考えさせられたことを 多かった指摘のコメントランキングと共にお話します。
第3位 コメントが(不要です/必要です)
コメント • 自分一人しか見ないコードは結構コメントを適当に書いていた • コメントの要否の判断の重要性 • 短いコードにいちいちコメントを付ける必要はない • 複雑な処理をしているコードや関数は意味が分かるようにコメントを付ける →
致し方なくこういうコードにしなければならなかった背景・理由など
第2位 名前が分かりにくい
たかが命名、されど命名 • 接頭辞を使う • isXXX • hasXXX • canXXX •
具体的な名前を使っているか • Get()は使いやすいが、状況によってはDownload()などの方がより明確に伝わるか も • Itemなども便利ではあるが、汎用的なので分かりにくい時もある。 例)「checkItem()」→「checkSortItem()」
たかが命名、されど命名 • 一般的な単語を使っているか 命名時 翻訳してみよう→そのまま使うはNG 簡潔な単語を使っても、一般的に使われる単語でなければ、他の人が分からない ただ、逆に簡単な言葉を使って分かりにくくなるケースも… 例)項目名が正しいかをチェックする関数を作りたい 「checkItemName()」 →
「validateItemName()」 checkは便利だが、何をチェックしているかわからない 正しいことをチェックすることがわかるようにしないといけない
第1位 冗長です
何日か後の自分は他人です • 何日か後の自分が読みにくいコードが、他人に読めるはずがない • ネストが深いコードは読みにくさがMAX → 何か月か後に自分が書いたコードだと思って修正しようとすると 思ったより読めない • 対策
• 関数として切り分ける • 複数の処理を関数内で持たせるのは避ける • 複雑にせざるを得ない場合はコメントを残す 特に試行錯誤してやっとできたコードほど読みにくくないかを確認すべし!!
early return • メソッドの先頭で渡された引数が不正な値でないかチェックして、もし不 正な値であれば return で即メソッドを抜ける →その後の処理は引数に不正な値でないか気にする必要がなくなるので、 コードがスッキリ
コメントでコーディング • 状況に応じた粒度で実装の流れを書いてみる →やりたいことが明確になる //実行権限のチェップロードしたファイル関連のチェック //実行権限のチェック //アップロードしたファイル関連のチェック //ファイルの存在確認 //ファイルを読み込めているかチェック //空チェック
//項目数のチェック //項目のデータのチェック //登録処理 イメージ(ファイル関連の処理)
まとめ 可読性の高いコードを書く方法については段々つかめてきたが、 コードを書くということは可読性だけを気にしていたらいいわけではない 次は保守性、拡張性との戦いへ…
ご清聴ありがとうございました!!