スレッドやタイマーなどのドラッグ アンド ドロップ コントロールに我慢できません。これらのコントロールは、その存在の実際の本質からかけ離れているように感じます。スレッドをドラッグ アンド ドロップしますか? ドラッグ アンド ドロッパーが、隠れて何が起こっているのかを理解する前に理解してくれることを願っています。
これらの抽象化は金属から離れすぎていませんか? 彼らはプログラマーを助けていますか、それとも傷つけていますか?
スレッドやタイマーなどのドラッグ アンド ドロップ コントロールに我慢できません。これらのコントロールは、その存在の実際の本質からかけ離れているように感じます。スレッドをドラッグ アンド ドロップしますか? ドラッグ アンド ドロッパーが、隠れて何が起こっているのかを理解する前に理解してくれることを願っています。
これらの抽象化は金属から離れすぎていませんか? 彼らはプログラマーを助けていますか、それとも傷つけていますか?
私は彼らが悪だとは思わない。フォームにコントロールをドロップすることは、「new Thread()」または「newTimer()」を表す別の言い方ですが、多くのプログラマーはどちらも実際には理解していません。
単純なソリューションは必ずしもニーズに合うとは限りませんが、そうする場合、それらを使用することの何が問題になっていますか?
ただし、ドラッグアンドドロップを使用することがプログラマーが物事を行う方法を知っている唯一の方法である場合、それはあまり優れたプログラマーではありません。
彼らはプログラマーを傷つけていると思います。ドラッグ アンド ドロップはプログラミングではありません。
私は広い筆で描いているかもしれませんが、私が出会ったほとんどの Web アプリケーション開発者 (特に .NET WebForm 開発者) が、HTTP モデル、POST やGET は、彼らが遭遇した抽象化のために理解できません。
この記事は非常に興味深い読み物であり、私の感情を完全に反映しています。
個人的には、大学でマルチスレッド プログラミングを学びましたが、キャリアの中でマルチスレッド プログラミングを使用する理由はありませんでした。そのため、単純な機能を実行するためだけに .NET でマルチスレッド プログラミングを行う方法を学ぶ必要がなかったので、Timer コントロールは特に私にとって大きな助けになりました。
BackgroundWorker は真の価値をもたらします。デリゲート呼び出しを使用して手動でスレッド化を行い、次に Control.Invoke を使用して結果を UI スレッドにマーシャリングするよりも、(イベント モデルを使用して) よりクリーンなコードを生成します。
Control.IsHandleCreated もテストせずに Control.InvokeRequired をテストすることで、私はやけどを負いました。Control.InvokeRequired は、コードが UI スレッドで既に実行されている場合だけでなく、コントロールが存在しない場合にも false を返します。BackgroudWorker を使用していれば、おそらくこの問題は発生しなかったでしょう。
「ドラッグ アンド ドロップ」とは、IDE の WYSIWYG 部分を使用することを意味しますか?
私は VB6 と Dreamweaver のコードに取り組んで育ったので、その場合は「はい」と答えます。
基本的な長時間の操作について考えます。または、1回限りの状況では、バックグラウンドワーカーの制御がこれらの状況に最適です。それよりも高度なことをしている場合は、スレッドおよびマルチスレッド設計の高度な使用法を研究する必要があります。
したがって、スレッドをすばやく実行する方法としては、問題はありません。しかし、それをスレッド化を行う唯一の方法として使用すると、プログラマーは間違いなく傷つきます。
そのUIの比喩です。
ドラッグアンドドロップするものは、ファイル、ドキュメント、またはコンテナ、ビン、シュレッダー、プリンタなどの別の「何か」への「何か」である必要があります。
スレッド/タスクをタイマーにドラッグアンドドロップすると、基本的なマタフォアが失われ、気分が悪くなります。
右クリックとプルダウンは、「タイマーの開始」などの「動詞」に適しています。
幸いなことに、.NET 以降、ドラッグ アンド ドロップ コントロールをドラップ アンド ドロップ スタイルで使用する必要はありません。個人的には、プロトタイピングにはドラッグ アンド ドロップで問題ありませんが、要件が複雑になればなるほど、デザイナーが制限的で邪魔になる可能性が高くなるという意見があります。これの簡単な例は、含まれているウィンドウのサイズを変更すると拡大する必要があるフォームです。あまりにも多くのコードを書いていることにすぐに気がつくので、デザイナーを完全に捨てた方がよいでしょう。
そして、それは、たとえばすべてのイベントを削除するなど、デザイナーのバグについて説明する前です...