0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

よく、遭遇する不具合は、悩みの種ですが、これはチャンスです。

0
Last updated at Posted at 2025-12-13

はじめに

プログラマーが、「よく、遭遇する不具合」の一覧を作り、それらの解決内容と合わせ、メモしておきます。

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リンク

年下の男の子(キャンディーズ)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?