パーフェクトPHP をデバッグしました

フレームワーク サンプルコード のデバッグです

パーフェクトPHP をデバッグしました (学習方法)

f:id:beginner001:20181226180233p:plain

パーフェクトPHPデバッグする時の学習方法を比較します。

パーフェクトPHP デバッグ 学習方法

IDE デバッグ機能

  • 「処理の流れ」と「変数の値」を知ることができます
  • 上級者は、本物のフレームワークIDE デバッグ機能 を使って理解しています

パーフェクトPHP デバッグ を見るとわかりますが、サンプルコードは、各クラスを頻繁に切り替えて、メソッドを呼び出しています。

IDE デバッグ機能「以外」の方法では、処理の流れと変数の値は分かりません。

「POST チェック」「トークン チェック」などは、IDE で変数を変えれば、簡単に実行できます。(404エラー画面 他) POST チェック トークン チェック

どんなツールも初めは大変ですが、すぐに慣れます。
特に、初心者の方には効果が大きいです。

IDE デバッグ機能 (動画 YouTube)
IDE デバッグ機能 使い方

IDE デバッグ機能 には、2通りの使い方があります。

  • バグを見つける (本来のデバッグ)
  • コードを追う (コードの理解)

コードの理解のための IDE デバッグ機能 は、バグを見つけるためではなく
サンプルコード の「処理の流れ」と「変数の値」を調べるために 使います。

IDE デバッグ機能を使わない学習方法

写経

写経が役に立つことはありますが、このサンプルコードには向いていません。

「処理の流れと変数の値が分かるかどうか」が、写経をする判断基準 です。
レガシーPHPフレームワークのアクション部分 などが、写経に向いています。
処理の流れ は一目瞭然ですし、変数 も推測がつきます。

理解しているもの を写経するのは、効果があると思います。
そうでないと、本当の意味の写経 になってしまい、辛いだけです。

実際に、IDE デバッグ機能 を使ってみると、
このサンプルコードには、写経がいかに 無意味 であるか分かります。

印刷されたサンプルコードを使う
  • エディタでも同じ効果が出ます
  • 本よりもコードの一覧性が増す程度です

特に、効果はありません。すぐに止めましょう。

さらに、印刷されたサンプルコードだと、検索IDE の機能が使えないため、効率が非常に下がります。

コードを印刷するのは、COBOL などの大昔のやり方です。
1人に1台のコンピュータや端末が無かった頃、ソースを印刷していた時代がありました。
「机上デバッグ」というものです。

オブジェクト指向」では、クラスやメソッドが頻繁に切り替わるだけでなく、
1メソッドが短いので、「処理の流れ」を追うだけでも大変です。

印刷されたサンプルコードでは、「処理の流れ」は追えません。
追えないので、「変数の値」も分かりません。

なぜ、こんな「意味のない」学習方法をネットにのせるのでしょうか?

印刷されたサンプルコードを見ていても、「処理の流れ」と「変数の値」は分かりません。
IDE を使って、効率良く学習しましょう。

本物のフレームワークの学習

サンプルコードの controllers, models, views を見ても、使い方は分かります。
本物のフレームワークの学習は、後からでも遅くありません。

var_dump   print_r   echo

あまりにも効率の悪い方法です。すぐに止めてください

本を読んだ

プログラム関係の本は、実際に手を動かして、はじめて効果が出ます。
サンプルコードという一番おもしろい部分をやらないのは、もったいないです。

PHPの学習方法として、コードをひたすら書く

たんなる根性論です。すぐに止めてください。
プログラムが上達する最良の方法は、良質のコードを読むことです。(IDE 使用)

その他

「サンプルコード」「パーフェクトPHP デバッグ」「IDE デバッグ機能」だけでも学習は可能です。

パーフェクトPHP デバッグ 学習時の注意点

図 7.1 フレームワークの処理の流れ

f:id:beginner001:20190118105523p:plain

図 7.1 フレームワークの処理の流れ は、サンプルコードを理解している人とそうでない人で、とらえ方が異なります。
特に 写経 をしている人は「処理の流れ」が分からないので、この図の影響を受けやすいようです。
この図は、あくまでも基本的な流れです。
サンプルコードを理解していない人は、この図にこだわらないようにしましょう。

パーフェクトPHP デバッグ

パーフェクトPHP デバッグには、複数 (5種類) の「処理の流れ」が載っています。

f:id:beginner001:20190213103437p:plain


?