「ソースコードを読む」という作業の動作をどう定義するか

他人のレビューをする
運用中のサービスにジョインして開発をする
動作不備の原因を見つける

諸々の目的のために「ソースコードを読む」という作業をする必要が当然に発生するわけですが、人によって効果的にソースコードの意味を落とし込めている人とそうでない人がいるなーと感じています。
頭に入れていくために「こういう動作をしている」というのが地味に気になっていまして、ぜひベテランの方のご意見を伺いたい所存です。参考までにですが、自分が心がけているのは
・コメントアウトを書く(直す)
・テストコード書き直す
・リファクタリングする(あげなくても)
などを意識してやることが多いです。是非ご教授ください!
2年前
view数 239
  • 1
  • 1
  • 2

回答を投稿して企業にアピールしましょう!

Q&Aで投稿された回答は、
企業側に表示されるプロフィールにも投稿履歴として表示されます。

Offersにログイン・新規登録して、気になるテーマやトピックを話してみよう!

\回答があります!/

  • tomo

    エンジニア

    2年前

    先月出版された「プログラマー脳」という本がまさにこの話題を取り扱っている本なので、興味があれば読んでみると良いかなと。
    https://www.shuwasystem.co.jp/book/9784798068534.html

    私個人としては、以下の2つを意識すると、コードの理解で詰まることを減らせるかなと思っています。

    1. 以下の観点を使い分けることができること
    俯瞰 <-> 虫の目
    抽象 <-> 具象
    静 <-> 動
    overviewを知りたくてパッケージレベルで構造を理解しようとしているのか、private関数や依存ライブラリの中の挙動を知りたいのか、みたいな話はフェーズをわけようね、みたいな話です。

    2. 読むのが難しいなぁと感じるときは、以下のどこに対して問題が起きているのか、で読み方を変えたり、調べたりする
    長期メモリ (知識)
    短期メモリ (最近知った情報)
    ワーキングメモリ (脳で処理中の内容)
    そもそも長期メモリが足りない(Java知らないのにSpringBoot/Javaのコードを読んでいる)などであれば、まずはフレームワークやコードに慣れるところが必要ですし。ワーキングメモリがオーバーフローしているのであれば、一旦ノートやコメントに書き出すなどして脳の負荷を減らす、リファクタリングによりコードベースの認知負荷をへらす、などができることかなと。

    * 以下の内容は基本的には短期orワーキングメモリの認知不可が高い状態を解消するためのアクティビティかなと思います。
    ・コメントアウトを書く(直す)
    ・テストコード書き直す
    ・リファクタリングする(あげなくても)

    意識せずともこのあたりが自分なりにできていて、手書きで抽象化された構成を書いている人などは、比較的コードの理解度が高い印象です。(主観)
    (編集済み)
    view数 14
    • 1
    • 1
    • 1