見えない物は難しい!
Web プログラミングは大きく二つの部分に分かれます。一つは、UI の為のプログラム、もう一つはデータ処理のためのプログラムがあります。UI は目に見えるので、上達も早いのですが、データ処理は時間がかかります。
2種類のプログラミング
Web プログラミングは、Web ブラウザ上の UI を担当する部分と、入力したデータなどを処理する部分に分かれます。
UI の部分は、動作が目に見えやすいので何が起きているかもわかりやすいので、比較的習得もしやすく、デバッグも基本的には楽です。 加えて、React や Vue などのフレームワークも利用できますし、ある程度パターンも固定されているので参考にできるサンプルコードも多く初心者でも、コツを掴むのが簡単です。
一方で、データ処理の方は、動作が見えにくく、アプリケーションによって扱うデータも異なるので UI に比べると難易度が高くなります。
見えないと難しい理由は?
見えないと難しい理由は、何が起きているか外側からはなかなかわからないからです。 わからないものは、何か問題が合った場合には、まずは何が起きているかを見極めないと対策が取れません。 いうならば、推理小説で言うところの密室殺人事件のようなもので、密室の中でないが起こっているのかを見つける必要があります。
プログラミングの場合は、密室というわけではなく、中に入れば何が起きているのかを見ることができる点が違います。 これを助けてくれるのが、デバッガーです。デバッガはデータの様子、データがどのように変わって行くのかを覗く事ができるツールです。これを利用すると、見えないデータの動きが見えるようになります。これで何が起きているかを知ることができるのでバグの原因がわかるというわけです。
見えるように作る!
もう一つのアプローチは、中が見えるように作るという方法があります。 どういうことかというと、デバッグメッセージをあらかじめプログラムの中に入れておくという方法があります。 こうすると、デバッガーをセットしなくても、ある程度重要な部分の動きがわかるようになります。
「デバッグモード」のような物を設定しておけば、通常の処理では無駄なメッセージは出さずに、デバッグモードをセットした時だけメッセージを出すようにすれば通常のユーザーの目に触れることはありません。実際は、デバッグモードかをチェックする必要があるので多少処理のオーバーヘッドが起きますが、最近の CPU の性能を考えれば大きな問題ではありません。
この方法の大きなメリットは、こうした「裏口」を作っておく事で、何か問題が起きた時にこうしたモードを有効にすれば、素早く問題点を絞り込む事ができるので、トラブル対応などがやりやすくなります。
問題が起きたらまずは可視化!
見えないのが問題なので、見えるようにすれば問題は基本的に解決します。 暗闇を歩くのは周りに何があるのかわからないので不安ですが、ライトを持って見えるようにすれば、不安はある程度解消できます。
プログラミングで可視化する方法でよく利用されるのは、すでに紹介していますが:
* デバッガー
* デバッグメッセージ
* デバッグポート
などがよく利用されます。あとは、LED などを利用したりする方法もよく利用されます。 設計段階で可視化の方法をプログラムに作り込んでおくと、デバッグもやりやすくなりますし、品質の高いプログラムにする事ができます。
まとめ
見えない物は、プログラミングに限らずよくわからないので、問題を難しくしたり不安の原因になります。 これが見えるようになるだけで、状況は大きく変わります。見えるようになると、いろいろな事がわかるようになるため、問題は一気に簡単になります。
良い、プログラムの作り方は、予めみるための方法を用意しておく事です。これがあると問題が起きた時も素早く可視化が可能で素早く対処できるようになります!