慣れないソースコードを読む時にこんな経験はありませんか?
設計書のこの機能はソースコードのどこで記載されている?
ソースコードの修正を依頼されたけど、どこを治せばいいかわからない。
特に入社したての新人のプログラマは、こんな悩みに悩まされているのではないのでしょうか。
そこで、今回は新人プログラマが現場レベルのソースコードを読めるようになるための手順やポイントについて詳しく解説します。
ソースコードの読み方を教え得るよ
簡単に私の自己紹介。
現在34歳システムエンジニア。システムエンジニア歴は、13年目。
現在は4人のチームのリーダをしています。過去に新人を3人のメンターを行なっていた経験があります。
↓udemyなら、トレンド技術から基礎技術まで幅広く学べます。返金保証もあるので、まずは気になるスキルをチェック
適切なドメイン知識の取得
ソースコードを読んでいると、たくさん知らない言葉が出てくると思います。
この知らない言葉が気になって、ソースコードを読んでもいまいち腑に落ちません。
私の体験をお話しします。
私が新人の頃はネットワークに流れるパケットを分析、制御したりするプログラムを開発していました。
ソースコードと設計書に出てくる、TCP/UDP。
マルチキャストアドレス、ブロードキャスアドレス、レイテンシ、Cプレーン、Uプレーンなど。
ここら辺の言葉は、参考書を見てわかる言葉もあると思います。
ただし、ネットワークのドメインに近い言葉なのでプログラミングができるだけでは、具体的には何を指しているかわからないと思います。
点と点がつながらない感覚。ソースコードを正しく理解するためには、この知らない言葉を理解するのが一番の近道です。
なぜ、そうかと言いますとプログラミング言語は一つのツールです。何かの問題解決を行うために、作られているためのものなのです。
ソースコードを理解する近道には、このプログラムが何を解決するためのものなのかを正しく理解しましょう。
プログラムの入出力を理解する
プログラムの入出力を理解するということは、ソースコードを理解する上でとても大切です。
入出力というと難しく感じるかもしれません。
簡単にいうと、何のイベント(入力)があって、どういう結果(出力)が起きるのかを理解することになります。
上記の例でも、少しイメージがつきづらいと思いますので以下の例をもとに説明します。
入力
検索画面の検索ボタンを押下
出力
検索結果
これを機能レベルに落とし込むと以下のようになります。
- 検索ボタンイベントをハンドリング
- 検索条件を取得
- DBに検索条件をもとに検索
- DBから検索結果を取得
- 検索結果を画面に表示する
このレベルまで機能の解像度を上ます。それぞれの処理がソースコードのどこで行われているか確認します。
この際に、処理の細かいところは追わなくて大丈夫です。
何となく、1~5までの処理を行なっている箇所を流し読みします。
どの機能がどのソースコードで実装されているか理解すると、実際にソースコードの修正を行う際に
1〜5のどこに修正が必要か調査します。
例えば、DBからの検索結果を特定の文字列に置き換えたいという修正がある場合を考えます。
4か5の箇所を調査すれば良いのです。ソースコードを完璧に理解するのではなく、必要な時に
必要な箇所を10の理解で修正できるようにしましょう。
デバックとログ
ソースコードを理解するための有力な手段の一つが、デバックとログです。
コードの挙動を理解するために、実際にプログラムを動かしてみます。デバック使って任意のコードの箇所で、実行過程を追跡します。
停止した箇所で、バックトレースを行うと関数のコール順番が表示されます。
特に、変数の値や関数の呼び出し関係をトレースすることで、コードの動作をより詳細に理解することができます。
ログもデバックと同様です。ソースコードに埋め込まれた、ログを調べることでプログラムの動きをトレースすることができます。実際に、バグの調査ではバグ発生時のログから調査を行います。
ログもどのような情報を出力するべきか、ソースコードの作りから判断できるようになると新人から一段階上のレベルになると思います。
メンターシップとチームワーク
新人プログラマがソースコードを読めるようになるための最も効果的な方法の一つは、経験豊富な開発者やチームメンバーとの協力です。
メンターからのフィードバックやアドバイスは、新人プログラマの成長に欠かせません。
また、チーム全体でのコードレビューやディスカッションは、新人プログラマにとって貴重な学習機会となります。どのように、ソースコードを実装
すればいいのか、経験豊富なメンターやメンバの話をよく聞きましょう。失敗談なども、聞けるのでとても有意義な時間となります。
新人の期間はわからないことがわからないという状態になると思いますが、積極的にメンターにアドバイスを聞きに行きましょう。
まとめ
ソースコードの読解能力は、プログラミングのスキルを高める上で欠かせない要素です。
新人プログラマが上記の手順やポイントに注力し、積極的に学習を進めることで、ソースコードを効果的に読み解き、成長していくことができるでしょう。
メンターシップやチームワークを通じて、他の開発者からのサポートを受けながら、自らのスキルを磨いていきましょう。
それでは、ソースコードの読解に向けて、皆さんもぜひ積極的に取り組んでみてください!
↓私も、30歳になって再び学習始めました。書籍派だったけど、スマホでもみれる動画コンテンツは時間を選ばず学習できる。
コメント