Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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.6k
若手が可読性を上げるために気を付けたこと / 20210707_readablelt_nazato
Rakus_Dev
March 14, 2022
Tweet
Share
More Decks by Rakus_Dev
See All by Rakus_Dev
【pmconf2025】AI時代の『ジュニア不要論』に異議あり! 未経験から戦力PdMを生み出すOJT戦略とは?
rakus_dev
1
870
プロダクトづくりにAIを溶かす3つの壁 ― ラクス流AI浸透のススメ / 3 Barriers to AI in Products: The Rakus Way
rakus_dev
0
2.2k
設計フェーズを加速するAI活用戦略 / AI Strategy for Accelerated Design
rakus_dev
2
640
10年以上続くWebサービスのAIファースト時代への向き合い方 / Navigating the AI-First Era: A Strategy for Established Web Services
rakus_dev
0
510
楽楽明細開発部 | 組織的なAI駆動開発の推進 / Promoting organizational AI-driven development
rakus_dev
0
510
AIエージェントを使った爆速デモアプリ作成 / Rapid demo app creation using AI agents
rakus_dev
0
510
Claude Codeによる自律的並列分析の実践 / Practicing Autonomous Parallel Analysis with Claude Code
rakus_dev
0
640
コードを書かないマネージャーがつくるコンテキストエンジニアリング / Context Engineering Created by a Non-Coding Manager
rakus_dev
0
540
AIへの再指示を抑える要件、設計、デザイン等のモバイル開発コンテキストの渡し方
rakus_dev
0
170
Other Decks in Technology
See All in Technology
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
420
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
2
220
20251203_AIxIoTビジネス共創ラボ_第4回勉強会_BP山崎.pdf
iotcomjpadmin
0
130
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
400
ESXi のAIOps だ!2025冬
unnowataru
0
320
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.5k
Kiro を用いたペアプロのススメ
taikis
4
1.6k
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
420
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
18
7.5k
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
2.2k
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.1k
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
850
Leo the Paperboy
mayatellez
0
1.2k
Agile that works and the tools we love
rasmusluckow
331
21k
GraphQLとの向き合い方2022年版
quramy
50
14k
Building the Perfect Custom Keyboard
takai
1
660
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
510
Building an army of robots
kneath
306
46k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
69
My Coaching Mixtape
mlcsv
0
13
Practical Orchestrator
shlominoach
190
11k
Paper Plane
katiecoart
PRO
0
44k
Deep Space Network (abreviated)
tonyrice
0
20
Transcript
若手が可読性を上げるために 気を付けたこと 名里 梨佐
自己紹介 • 氏名 • 名里梨佐(ナザトリサ) • 所属 • 株式会社ラクス •
仕事 • Mail Dealerの開発をしています
本日のお話 個人でプログラムを書くことしかしていなかった人間が、 グループの一員として開発に関わるようになって2年と少し。 可読性を良くするために考えさせられたことを 多かった指摘のコメントランキングと共にお話します。
第3位 コメントが(不要です/必要です)
コメント • 自分一人しか見ないコードは結構コメントを適当に書いていた • コメントの要否の判断の重要性 • 短いコードにいちいちコメントを付ける必要はない • 複雑な処理をしているコードや関数は意味が分かるようにコメントを付ける →
致し方なくこういうコードにしなければならなかった背景・理由など
第2位 名前が分かりにくい
たかが命名、されど命名 • 接頭辞を使う • isXXX • hasXXX • canXXX •
具体的な名前を使っているか • Get()は使いやすいが、状況によってはDownload()などの方がより明確に伝わるか も • Itemなども便利ではあるが、汎用的なので分かりにくい時もある。 例)「checkItem()」→「checkSortItem()」
たかが命名、されど命名 • 一般的な単語を使っているか 命名時 翻訳してみよう→そのまま使うはNG 簡潔な単語を使っても、一般的に使われる単語でなければ、他の人が分からない ただ、逆に簡単な言葉を使って分かりにくくなるケースも… 例)項目名が正しいかをチェックする関数を作りたい 「checkItemName()」 →
「validateItemName()」 checkは便利だが、何をチェックしているかわからない 正しいことをチェックすることがわかるようにしないといけない
第1位 冗長です
何日か後の自分は他人です • 何日か後の自分が読みにくいコードが、他人に読めるはずがない • ネストが深いコードは読みにくさがMAX → 何か月か後に自分が書いたコードだと思って修正しようとすると 思ったより読めない • 対策
• 関数として切り分ける • 複数の処理を関数内で持たせるのは避ける • 複雑にせざるを得ない場合はコメントを残す 特に試行錯誤してやっとできたコードほど読みにくくないかを確認すべし!!
early return • メソッドの先頭で渡された引数が不正な値でないかチェックして、もし不 正な値であれば return で即メソッドを抜ける →その後の処理は引数に不正な値でないか気にする必要がなくなるので、 コードがスッキリ
コメントでコーディング • 状況に応じた粒度で実装の流れを書いてみる →やりたいことが明確になる //実行権限のチェップロードしたファイル関連のチェック //実行権限のチェック //アップロードしたファイル関連のチェック //ファイルの存在確認 //ファイルを読み込めているかチェック //空チェック
//項目数のチェック //項目のデータのチェック //登録処理 イメージ(ファイル関連の処理)
まとめ 可読性の高いコードを書く方法については段々つかめてきたが、 コードを書くということは可読性だけを気にしていたらいいわけではない 次は保守性、拡張性との戦いへ…
ご清聴ありがとうございました!!