パーフェクトPHP をデバッグしました (学習方法)
パーフェクトPHP をデバッグする時の学習方法を比較します。
パーフェクトPHP デバッグ 学習方法
IDE デバッグ機能
パーフェクトPHP デバッグ を見るとわかりますが、サンプルコードは、各クラスを頻繁に切り替えて、メソッドを呼び出しています。
IDE デバッグ機能「以外」の方法では、処理の流れと変数の値は分かりません。
「POST チェック」「トークン チェック」などは、IDE で変数を変えれば、簡単に実行できます。(404エラー画面 他) POST チェック トークン チェック
どんなツールも初めは大変ですが、すぐに慣れます。
特に、初心者の方には効果が大きいです。
IDE デバッグ機能 (動画 YouTube)
- パーフェクトPHP をデバッグしました (デバッグ例 基本編) オートロード
- パーフェクトPHP をデバッグしました (デバッグ例 応用編) CSRF対策
- パーフェクトPHP をデバッグしました (デバッグ例 応用編) アウトプットバッファリング
- パーフェクトPHP をデバッグしました (デバッグ例 応用編) DbManagerクラス
IDE デバッグ機能 使い方
- バグを見つける (本来のデバッグ)
- コードを追う (コードの理解)
コードの理解のための IDE デバッグ機能 は、バグを見つけるためではなく
サンプルコード の「処理の流れ」と「変数の値」を調べるために 使います。
IDE デバッグ機能を使わない学習方法
写経
写経が役に立つことはありますが、このサンプルコードには向いていません。
「処理の流れと変数の値が分かるかどうか」が、写経をする判断基準 です。
レガシーPHP や フレームワークのアクション部分 などが、写経に向いています。
処理の流れ は一目瞭然ですし、変数 も推測がつきます。
理解しているもの を写経するのは、効果があると思います。
そうでないと、本当の意味の写経 になってしまい、辛いだけです。
実際に、IDE デバッグ機能 を使ってみると、
このサンプルコードには、写経がいかに 無意味 であるか分かります。
印刷されたサンプルコードを使う
- エディタでも同じ効果が出ます
- 本よりもコードの一覧性が増す程度です
特に、効果はありません。すぐに止めましょう。
さらに、印刷されたサンプルコードだと、検索や IDE の機能が使えないため、効率が非常に下がります。
コードを印刷するのは、COBOL などの大昔のやり方です。
1人に1台のコンピュータや端末が無かった頃、ソースを印刷していた時代がありました。
「机上デバッグ」というものです。
「オブジェクト指向」では、クラスやメソッドが頻繁に切り替わるだけでなく、
1メソッドが短いので、「処理の流れ」を追うだけでも大変です。
印刷されたサンプルコードでは、「処理の流れ」は追えません。
追えないので、「変数の値」も分かりません。
なぜ、こんな「意味のない」学習方法をネットにのせるのでしょうか?
印刷されたサンプルコードを見ていても、「処理の流れ」と「変数の値」は分かりません。
IDE を使って、効率良く学習しましょう。
本物のフレームワークの学習
- 「フレームワークの内部」と「オブジェクト指向」を理解するという目標から、かけ離れています
- サンプルコードの「フレームワークの使い方」は、8章に書かれていますし、使い方は、フレームワークによって違います
- 8章は、初心者でも理解できます (書き方や使い方の理解)
- 本物のフレームワークは、学習コストが高いです
サンプルコードの controllers, models, views を見ても、使い方は分かります。
本物のフレームワークの学習は、後からでも遅くありません。
var_dump print_r echo
あまりにも効率の悪い方法です。すぐに止めてください。
本を読んだ
プログラム関係の本は、実際に手を動かして、はじめて効果が出ます。
サンプルコードという一番おもしろい部分をやらないのは、もったいないです。
PHPの学習方法として、コードをひたすら書く
たんなる根性論です。すぐに止めてください。
プログラムが上達する最良の方法は、良質のコードを読むことです。(IDE 使用)
その他
「サンプルコード」「パーフェクトPHP デバッグ」「IDE デバッグ機能」だけでも学習は可能です。
パーフェクトPHP デバッグ 学習時の注意点
図 7.1 フレームワークの処理の流れ
図 7.1 フレームワークの処理の流れ は、サンプルコードを理解している人とそうでない人で、とらえ方が異なります。
特に 写経 をしている人は「処理の流れ」が分からないので、この図の影響を受けやすいようです。
この図は、あくまでも基本的な流れです。
サンプルコードを理解していない人は、この図にこだわらないようにしましょう。
パーフェクトPHP デバッグ
パーフェクトPHP デバッグには、複数 (5種類) の「処理の流れ」が載っています。