質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

2156閲覧

ライブラリなど、他人が書いたコードを読めるようになりたい

KazutakaShimizu

総合スコア157

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/04/27 00:36

現在プログラミングの勉強を始めて半年ほどたち、PHPで簡単なアプリケーションを作ったり、フレームワークを多少使えるようになってきた者です。
ここからさらにレベルアップするために、ライブラリなど他人の書いたコードを読めるようになりたいと常々思っているのですが、
いざ実際に読んでみるとそもそもどこから読み進めていいのか、などが全くわかりません・・・。

こういった現状なのですが、コードが読めるようになるまでレベルアップをするために、何かおすすめの書籍やこういうことやった方がいいよ!というアドバイスをいただけないでしょうか。
何卒よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ライブラリの場合、実際に自分の書いたコードで使っている箇所があれば『前後の処理の意味もわからず使っている』なんてことはないですよね?基本的な流れは把握して使っているのであれば、比較的追いかけやすいと思います。

フレームワークの場合、自分のコードをフレームワークの枠組みに載せて、フレームワーク側から動かしてもらう形になるでしょうから、フレームワークから自分のコードがどう扱われているのか?という観点で調べると比較的追いかけやすいかもしれません。あとは、エントリポイントや処理のトリガーとなる箇所から調べていくのも一つですね。

実行中にデバッガなりのツールが使えるのであれば、どのように値が変動しているのか?など動かしながら読み進めると、更に効果的だと思いますが、前後関係も理解できない部分から把握するのは難しいと思います。解っている部分から着実に広げていく。というのが切り崩すための基本ではないでしょうか?

規模が大きくなってくると、実装だけではなく分析や設計の知識を齧っておいた方が読解はしやすいでしょう。特にクラスやモジュール/名前空間なりの範囲で適度に責任分担されているでしょうから、例えばオブジェクト指向のクラスベースのライブラリやフレームワークであれば、デザインパターンなどを齧っておくと全体の役割分担の視点から、ある種のパターンを見出すこともできるようになるでしょう。

眠たくなる体系的な勉強をしておいた方が良いシーンもあるとは思いますが、とにかく、自分でコードを書いて読んで動かして、といった実践を繰り返すだけでも、体系的な勉強を補助する経験則というパターンが得られますから、自分に合うやり方を探して、コツコツ続けるのが良いのではないでしょうか?

投稿2016/04/27 01:29

ps13zier

総合スコア433

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PHPではないですがではないですが、私は既存ソースなど読む際に
よく Excel を方眼紙状にして、そこにコードを貼りつけて解析しています。

■元ソースにタブがあったら「空白4つ」とかに置換する
(タブがあると Excel に貼った時に見辛い)

■< と > で囲まれたものなどはうまく Excel に貼れないので、
一旦 < を「@★@★@★」など絶対にコード中にない文字列で置換する
→ Excel に貼りつけたあと、再置換して戻す。

Excel だと範囲に背景色をつけて処理の塊を視覚化できるし、
文字色も付けられるし、
脇に自分のコメントも入れられるので重宝してます。

長いソースやぐちゃぐちゃなソースを見ると目が滑りますが、
とりあえずわかるところからコメントを入れていくと段々わかってきます。

「とりあえずここはフラグが 1 の場合の If 文… 長いな… そしてここから Else か… とりあえず背景色つけておこう」
とかやってるとそのうちわかります。

投稿2016/04/27 01:13

sk_3122

総合スコア1126

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

PhpStorm をもしまだ持っていないのであれば、購入することをおすすめします。

コードの静的解析により、クラスやメソッドの使用箇所から定義元へのジャンプできたりするので、コードを読むのも捗ります。


↑に併せて xdebug を用いたリモードデバッグ環境をセットアップします。

コードで抽象化が進むと↑の静的解析にも限界がでてくるので(定義元にジャンプしてもインタフェースに飛んでしまって具象クラスに飛ばないとか)、実際に実行してみてコードを追うのに便利です。

投稿2016/04/27 00:51

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問