あるオッサンのブログ

単なるオッサンの足跡です。

うん十年ぶりのプログラミング!

何回か、昔話をしてきたんですがちょっと飽きてきたので一時中断して全く別の話をします。こういうのっていいですね。勝手に方向修正が効くのって。

 

実は今年に入ってからプログラミングを始めたんです。とは言ってもアセンブラではなく今時のPHPとか言うサーバ上で動かして端末のブラウザと通信して、最終的に端末のブラウザ上でHTMLに展開されて動くっていうものです。

 

幸いにして今担当している仕事の中で、特に私の担当ということではなかったんですけど、比較的手が空いていたということ、それと今後の事を考えるとプログラミング言語1つでもできるようにしておいた方がいいんじゃないかとの考えもあり、半ば無理くりやらせてもらう事にしたんです。具体的なことは話せないですが、サーバ内のSQLにあるデータを検索して表示させるという恐らく、慣れている人が書けば1週間くらいでできてしまうであろうレベルのものだと思いますが、数十年ぶりに書く私にとっては、大変でしたよ、それは。

 

超入門クラスの本を買ってきて読みました。読んでいるうちにHTMLも知っていなければできないということを知り、同様レベルのHTMLの本を買ってきて、これも一通り読みました。

 

読んだはいいけど、何をどう書き始めたらいいのか、分からない、ということで、今度は、自分がこれからやろうとしていることに多少、触れている本格的な入門クラスのPHPの本をまた買ってきました。そして、そこに書かれているプログラム例を参考にしながら、少しずつ継ぎ足してプログラムを書き始めていきました。

 

きっかけができて書き始めたはいいんですが、次から次へと疑問が生まれてくるんですね、これが。本当に次から次へですね。ほとんど、本には書かれていなかったですね。

 

いくつか思い出せるレベルで例を挙げると以下のようなことがありました。以下、ちょっと、テクニカルな内容を書きますので、興味がない人は読み飛ばしてください。

 

1.プログラムの動作確認、デバッグ方法が分からない。

2.ボタンを押した後のプログラムの流れが分からない。

3.スタイルシートCSSを修正しても、画面に反映されない。

f:id:hirocyan32:20210914191122j:plain

近所のテニスコート

 

1.ですが、PHPは先の通りサーバ上で動くソフトですので、本来はサーバを用意する必要があるのですが、そうしなくても開発できる仮想環境を提供してくれる開発キット(ソフトウェア群)があります。MAMP https://www.mamp.info/en/windows/

と呼ばれるものでこの中に、Apache ServerMySQLPHPがオールインワンで含まれています。この環境で開発を行った後に、開発を終えたソフトウェアをサーバに載せるだけで、そっくりそのまま、ソフトウェアが動きます。厳密にはソフトウェアの格納先を指定するURLの変更とSQLを使う場合は、SQLのアクセス先を変えるだけで使えるということを知りました。

 

デバッグPHPフォルダ以下のphp.iniという設定ファイルの中の設定でdisplay_errors = onとすれば、エラーメッセージを出力してくれるのでこれを見ながらデバッグします。逆に=offとすればエラー出力を抑制することができます。

デバッグのもう一つの道具は、プログラムの中にデバッグ用の表示出力を仕込んでおくという方法です。以下の3つの方法を知っていれば完璧です。

①現在のファイル名と行番号表示する

echo "ファイル名:".__FILE__." 行番号:".__LINE__."<br />";

②変数の中身を表示する

var_dump(変数名);

③改行 echo "<br/>\n";

私の知ってるマイコンソフト開発では、ブレークポイントとかステップ実行などの手段が用意されていて、デバッグしたんですけど今は違うんですね。そんなに便利じゃありませんけど、お金をかけなくてもできちゃうんですね。

 

2.ですけどHTMLの記述で、キーを押した場合のアクションの記述ですが

  <form method="POST" action="遷移先ファイル" >

とか書きますが、結局、「遷移先ファイル」を指定すれば、そのファイルの頭に飛びますけど、何も書かないと結局自分自身(今、動いているファイル)の一番頭に飛ぶんです。自分自身の頭に飛ぶと、設定した変数値は全て初期化されてしまうんです。このことを知らずに苦労しました。こんなこと、本には書かれてないですから。

 

3.も訳が分かりませんでした。何度CSSの設定変更をやっても、一向に表示が変化しないってどうして? 「chrome 設定変更が画面に反映されない」と入力してネットで検索したら一発でした。chromeは設定内容を内部に保存していて、保存内容をクリアしてやらないと表示が変わらないことがあるらしいのです。

 

ブラウザ画面でマウス右クリック→プルダウンメニューから「検証」選択→開発者モードが表示される→画面上のリロードボタン(丸に矢印がついてるボタン)を右クリック→プルダウンメニューから「キャッシュの消去とハード再読み込み」で解決。

 

ちなみにIEインターネットエクスプローラ)の場合はCSSを修正するとちゃんとそれを反映してくれるということを後から知りました。

 

課題が発生しては、潰して次に進めるの繰り返しでした。その中でプログラミングの進め方は、小さく作って動作確認してOKなら正式に取り込むを繰り返すことによって徐々にやりたいことを実現していくというアプローチなんだということです。結構、肝になることなんじゃないかなって勝手に思いましたね。

 

また、今回のプログラミングを通して学んだことは「今の世の中、ネットから情報を引き出せば大方の事は解決できる」ということです。しかし、そのレベルに到達するまでの土台となる知識が必要なので、私の場合、本を必要としました。

 

というわけで何はともあれ一通り動かすことができました。

5月のゴールデンウィークから始めて、プログラミングを開始したのが7月、まともに動き出したのが8月、一通りできたのが8月末って感じです。プログラミングまで2か月、プログラミングで2か月、合計4ヶ月って感じです。