0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コードを読む時の俺々モデリング方法論

Last updated at Posted at 2020-07-20

ターゲット

  • 入社してすぐで、大規模なコードを読むのに慣れてない方
  • クラス図を知っている方(クラス、継承がわかってればOKです)
  • 厳密な方法よりも、コードを読む時のちょっとした図の書き方を知りたい方

はじめに

僕は入社2年目で、古くから伝わるJavaコードのメンテナンスをしているのですが
複雑なコード読むには、以下のような問題に直面して苦戦していました。
- 似た様な名前のクラスが大量にあって混乱する
- どのクラスにどんなメソッドがあったか覚えておけない(さっき見てたメソッドどこにあるの?)
- 過去に似た修正をしたはずだが、過去のコードを見ても思い出すまでに時間がかかる

そんな中で、いろいろな試行錯誤をして気づいた有用なモデリング方法(クラス図の書き方)を紹介します。
注:自分はastahが好きなのでastahを使いますが、大抵のモデリングツール、作図ツールでも同じようなことが出来ると思います。

図にタイトルをつける

まずは図にタイトルをつけます。
この時、自分が知りたい事や修正したい事といった目的をタイトルとします。
こうすることで、この図が何を明らかになり以下のような事態が防げます。

  • 要らない要素まで図に書こうとして、時間を無駄にしてしまう
  • 要らない要素が増える事で、見にくい図になってしまう
  • 脇道にそれて全然違う事を調べている

さらに、作成した図をissueタイトルのついたパッケージに入れておくと
あとから「このIssueのココを修正した時、どうやって解決したんだっけ?」という時に掘り出しやすくて便利です。
Screenshot from 2020-07-20 23-49-40.png

クラスを書く

図を作成したら、クラスを書いていきます。
ここで注意する点は、

  • タイトルに書いた事以外の要素を表現しようとしない
  • ノート機能(メモ)で関数の振る舞いや覚書を書いておく
  • 疑問等もノートに残しておく

クラス図はクラス間の関係や継承関係などの構造を表現することは出来ますが、振る舞いを表現する事は出来ません。
なので関数の振る舞いなど、クラス図で表現出来ない要素や表現のやり方が分からない要素はノートに書いておきます。

image.png

まとめ

  • 目的を明確にして図のタイトルや図要素を描く
  • とにかくメモを残す

自分は上記2つを意識するだけで、かなりコードの理解力があがりました。
まだまだ2年目の駆け出しで、モデリングもコーディングも未熟ですが、一度試していただいて少しでも
コードを読むのがツライという人の助けになれば幸いです。
また、間違いや方法の改善点等発見され際はコメント等で教えていただければ泣いて喜びます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?