スマホプロジェクトを読み解く -前編-

Posted by rhoboro on 2016-07-09

仕事でプログラマーやOSS活動をしていると他人が書いたソースコードを見ることって本当にたくさんありますよね。
サンプルコードやライブラリの使い方なら読み解くコード量はそこまで多くないと思いますが、 プロジェクトをまるっと引き継いだり、開発者として進行中のプロジェクトに加わる場合はプロジェクトの全体像をいかに早く掴むかが重要になってきます。
今回は、そういったときに、私がどういう順序でプロジェクトを読み解いているのかを書こうと思います。 私は普段スマホアプリのコードを見ることが多いので、題材もスマホアプリのプロジェクトとします。(まるっと引き継ぎ時を想定)

全体の流れ

私の場合はだいたい下記の順番に沿って確認することが多いです。

  1. 開発環境の確認
  2. 使っているライブラリ群の確認
  3. データの保持方法
  4. 通信周り
  5. 基底クラス
  6. 画面(Activity, Fragment, ViewController)一覧
  7. ビュー周り

環境やライブラリなど全体に関わる部分
=> プロジェクトの全体のアーキテクチャ
=> 見た目に関わる部分
の順ですね。

それではそれぞれの詳細を見ていきましょう。 長くなりそうなので、前後編に分けてます。

開発環境の確認

なにはともあれ、ビルドできないことには何も始まりません。 ということで、ビルドする為に必要な情報を集めるところから始めます。

具体的には、ビルドに使っているXCodeやAndroid Studioのバージョン、SDKやGradleのバージョン、サポートしているOSバージョンなどです。 また、開発環境と本番環境の違い、CI環境がある場合はそこで動かしている設定ファイルの確認もこのタイミングでしておきましょう。
特にCIの設定ファイルやビルドスクリプトは、ビルドに必要な情報がギッチリと詰まっています。 ここの確認を怠ってしまうと、思わぬところで無駄な時間をすごしかねません。

使っているライブラリ群の確認

この項目は開発環境の確認に含めようかとも思いましたが、あえて別項目としました。
ここでやることは大きく3つあります。

1つめは、ライブラリの管理に使っているツールの確認です。
Androidなら最近はGradleがほとんどだと思います。 iOSの場合は、PodfileやCartfileの内容を見ておきましょう。 また、こういったライブラリ管理ツールを使わずに、プロジェクトに直接ライブラリのソースをいれていることもあります。

2つめは、現在使っているライブラリの確認です。
これはバージョンも含めて確認しておきましょう。 またライブラリ更新のポリシーも確認しておいたほうがいいでしょう。

最後は、新規ライブラリの導入にあたって制約はないかの確認です。
プロジェクトの性質によって、いろんなパターンがあると思いますが、現在使っているライブラリのライセンスくらいは確認しておきましょう。 新規機能の開発などでは車輪の再発明を避ける為にもライブラリを積極的に利用していったほうがいいと思いますが、リスクがあることも忘れないように。

前半まとめ

前半ではざっくりとした全体の流れを紹介し、開発環境の確認、使っているライブラリの確認を見てきました。
お気づきの方も多いと思いますが、まだコードを見るところまで入っていません(笑)
まぁそれだけ、プロジェクト全体の概要を理解することが大事ということですね。

次回後編は、ソースコードを理解していくときのポイントを見ていきます。