はじめに
プログラマーが、「よく、遭遇する不具合」の一覧を作り、それらの解決内容と合わせ、メモしておきます。
Webページを作成していると、様々な問題に遭遇します。
しばらくすると、解決方法を忘れて、同じ道をだどるのは、時間の無駄です。
そのための、一種の備忘録かもしれません。この備忘録が問題です。中々、一元管理ができません。
どこへしまったかも忘れています。あっちこっちのメモ切れに書いてあります。開発ノートも何十冊書きましたが、後で読み返しても読めません。なぐり書きのため、なんて書いてあるのかがわかりません。全く、役立たずのノートです。そのため、捨てています。
やはり、「ノウハウは頭の中」に残っています。忘れているのもほとんどです。
不具合の洗い出し(サンプル)
大雑把ですが、これまでの不具合を簡単に洗い出してみました。
・動的プログラミングを書くと動かない。
・イベントリスナーが動かない。
・画像などのイメージがあると、リスナーが効かない。
・同期/非同期処理(async/await)がうまく動作しない。
・html表示が、
・ボタンなどで、イベントが入らない。
・デバッガーのブレークポイントで止まらない。
・ドラッグしない。
・jqueryが効いていない。
・リストのエントリーにリスナーが効かない。
・キャンセルボタンが効かない。
・MYSQLのinsertが動作しない。
・phpが動かない。
・拡張機能で、cotent.js,background.jsが動かない。
・イベントの競合問題で、
・どのタイミングで、リスナーを登録すべきかが、
・規約書がわかりずらい。
・
やはり、動的処理のイベントリスナーが多いです。
一過性の問題ではなく、繰り返される問題
これは、理解が不十分の場合に起こります。動いたから、それでいいと、それで終わりにする癖がよくありません。しかし、改めて規約書などの資料を読む気にもなりません。覚えることが多すぎます。
当面の問題以外の規定が多すぎて、本当に覚える必要があるのか疑問です。そのため、規約書は必要の都度、読むとかでもいいと思います。別に、規約書づくりをしているわけではありません。
よく、詰まる問題は
これまでの経験から、よく、詰まることがあります。それは何かといえば、あるイベントリスナーを登録したいと思う時です。そのイベントは'click'、'keydown'、'keyup'、'mouseenter'などはよく使かいますが、あっちこっちで、似たようなイベントリスナーを生成しています。
その整理が大変で、うかつに登録してしまうと、イベントの競合が発生するかもしれません。
イベントリスナーをどのタイミングで、どこで登録したらいいのかが、悩みの種です。
下手に登録すると、タイミング的に、セレクターがまだ、表示されてないのに登録していることもあります。これがほとんどと言ってもいいくらいです。
デバッガで、ワンステップづつ、実行すると、きちんと表示されているのですが、ブレークポイントを取るとまだ、表示されてなく、リスナーは効きません。このタイミングなのか、場所の問題かを特定するのも大変です。
利用できるソースコード
プログラミングは、一から作るものではなく、すでにあるものを利用することがほとんどです。オープンソースというものがあります。優れたソースコードがたくさん利用できます。それらは、著作権なしで利用できます。API、ライブラリーなどがあります。
数あるそれらの中から、どれを利用するかが問題です。それらも常に進化しています。いつまでも古いバージョンを使用することはよくありません。中には、サポートを終了しているコードもあります。
それらに、気を配ることも必要です。
ソースコードの管理ツール、システムの利用
それらの利用方法を覚えるのが面倒ということもあります。
GitHubとか。
統合開発環境の選択問題
どのIDEを使用するかを決めなければなりません。一度、選択してしまうと、途中では変更しにくくなります。自分は、Apache Netbeans IDEを使用しています。Netbeansは8.2.2の頃から、もう、15年ぐらい使用しています。
不具合対策は
コツは、粘り強く、あきらめないで継続すること。プログラマーの特性は、粘り強さです。試行錯誤の連続ですが、必ず、解決できると信じ込むことです。これは、今までの経験から学んだことです。
よく、言われることは、「なぜ、なぜを5回繰り返す」ということです。
あとがき
この問題解決には、「王道(近道)はなし」ということに尽きます。
最近は、AIアシスタントが助けにはなっています。
どんな立派な書籍があっても、それを読破できる頭(能力)が無ければ、「無用の長物」です。普段から頭を鍛えることが大切ですが、「カンと経験」も必要です。
発明、発見の陰にも、この「カンと経験」があると思います。
そのカンは、経験から裏付けられたものです。経験があって、「カン」が養われます。
はやり、「失敗」を多くすることが、必要です。失敗から学ぶことができます。失敗せずに、成功してしまうと、結局、何も学習していないことになります。そのため、応用が利かなく、その後は何をしてもうまく行きません。
失敗は、優秀な先生です。いろいろなことを教えてくれます。
結論は、「失敗、転じて福となす。」です。
頭が疲れたときは、このサイトで音楽を聴きます。
Tiny♪Playerリンク