問題タブ [code-readability]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
coding-style - 複数の出口点を持つ関数:それは良い方法ですか?
VBScriptを使用したプログラミング中、関数がアクションを開始する前に、関数に多くのエラーチェックコードを記述します。したがって、いくつかの前提条件が満たされない場合は、「ExitFunction」を実行します。したがって、たとえば:
だから、私は複数のポイントで機能を終了することができます。これは良い方法ですか?この場合、ifステートメントのelseブランチが長くなります
多分それは書く方が良いです:
あなたの考えを共有してください。
c# - マジック ナンバーを使用しない IComparable.Compare の操作
私はIComparerを扱うのが本当に嫌いです。何年も .Net を使ってきた今でも、1 と -1 でよく混乱します。
Compare呼び出しのたびに出力整数を別のものにキャストすることなく、 Compare結果値を自明の名前に置き換えることはできますか?
次のような列挙型を定義しようとしました:
しかし、もちろん、キャストなしではコンパイルできません。
もちろん、これはIComparable.CompareToにも当てはまります。
アイデアをありがとう
java - 一度だけ呼び出されるコードのチャンク-独自のメソッドに値する?
さまざまなAndroidアプリケーション(私が作成したものではない)のソースコードを観察したところ、特定のコードを独自のメソッドに配置するパターンに気付きましたが、実際にはコードの再利用はありません。これらのメソッドは全体で1回しか呼び出されないためです。応用。
これまで私は、コードの一部がアプリケーションコードで2回以上使用される場合、単にコードの冗長性を排除するという理由で、独自の方法に値するという経験則を持っていました。
しかし、それらのコードのチャンクが独自のメソッド(および独自のメソッド呼び出しオーバーヘッド)にきちんと分割されているのを見て、私は何かが欠けているのではないかと思い始めています。
文書化の目的以外に、4行のコード(一度だけ呼び出される!)を独自のメソッドに入れることを正当化できる他の理由は何ですか?
javascript - Javascript ラムダ スコープとコード ファクタリング
これらの関数のいくつかに簡単に使用できる API を作成したいのですが、関数を新しいスコープ IE にバインドすることはできません。クレイジーな eval ナンセンス以外の方法や、これを使ってクレイジーなことをする方法がわかりません。これにより、物事がはるかに混乱します。
フィルターパラメーターは完了コールバックのコンテキストで実行する必要があるため、概念的には気が狂っています。それは私の問題だと思いますが、フィルターパラメーターはコールバックではなく、パラメーターであり、定義されている場所ではなく、実行されている場所のスコープを持つ必要があります。
ばかげた何かが欠けているだけだと誰かが教えてください。
ラムダのスコープを定義された場所ではなく、呼び出された場所にバインドすることをサポートする言語はありますか?
php - 読みやすさを改善するために MySQL クエリをきれいに書くための推奨される方法は何ですか?
しばらくの間、私は常にクエリを 1 行にまとめていました。
を使用しないように何度も言われた*
ので、より長いクエリを読みやすくする方法を見つけようとしています。これまでのところ、次のようなものがあります。
これは問題ないように思えますが、確認すべきベスト プラクティスはありますか?
私の MySQL は、PHP のコンテキスト内で行われます。
c - インライン関数でいっぱいのヘッダーですが、コードをヘッダーファイルの外に移動しても、すべてをインライン化できますか?
多くのコンパイルユニットにインクルードするヘッダーファイルに多くの小さなインライン関数を入れるのをやめました。コードはコンパイラーによって正しくインライン化され、プログラムは魅力のように機能します。
しかし、今ではヘッダーファイルは(ヘッダーファイルであるために)非常に珍しいものになっています。読みやすくするために、次のようなことを考えました。
ファイルmy_header.inline.c
は次のようになります。
次に、これらの関数が必要な場合は、ヘッダーファイルをインクルードするだけです。
私の質問は次のとおりです。ヘッダーファイルに大量のコードを入力せずにこれを実現するためのより良い方法はありますか?または私はこれを行うことができ、他の開発者が問題なくこのコードを理解することを期待できますか?
clojure - clojure で括弧の数を管理する
私は clojure が初めてで、主に苦労しているのは読みやすいコードを書くことです。私はしばしば以下のような関数で終わります。
エンドブラケットのビルドアップがたくさんあります。これを減らす、または欠落している括弧を見つけやすくする方法でフォーマットする最良の方法は何ですか?
javascript - JavaScript イベント コードのコールバックとパラメーターに名前付き関数の代わりに匿名関数を使用する利点は何ですか?
私はJavaScriptが初めてです。私は言語の概念の多くを理解しており、プロトタイプの継承モデルを読み進めてきました。また、ますますインタラクティブなフロントエンドのもので口笛を吹いています。これは興味深い言語ですが、多くの重要な対話モデルに典型的なコールバック スパゲッティに、私はいつも少しうんざりしています。
私にはいつも奇妙に思えますが、これは JavaScript のネストされたコールバックの入れ子であり、可読性の悪夢であるにもかかわらず、多くの例やチュートリアルでめったに見られないことの 1 つは、定義済みの名前付き関数をコールバック引数として使用していることです。私は日々 Java プログラマーであり、コード単位の Enterprise-y 名に関するステレオタイプのジャブを破棄します。機能豊富な IDE の強力な選択を備えた言語で作業することについて私が楽しむようになったものの 1 つは、意味のある、名前が長い場合、実際の生産性を低下させることなく、コードの意図と意味をより明確にすることができます。では、JavaScript コードを記述するときに同じアプローチを使用してみませんか?
考えてみると、このアイデアに賛成でも反対でもある議論を思いつくことができますが、私の素朴さと言語への新しさにより、なぜこれが技術的なレベルで良いのかについての結論に達することができません.
長所:
- 柔軟性。コールバック パラメーターを持つ非同期関数は、多くの異なるコード パスの 1 つによって到達される可能性があり、考えられるすべてのエッジ ケースを説明するために名前付き関数を記述するのが面倒になる可能性があります。
- スピード。それはハッカーの考え方に大きく影響します。動作するまでボルトで固定します。
- 他はみんなやってる
- たとえ些細なことであっても、ファイルサイズは小さくなりますが、すべてのビットが Web でカウントされます。
- より単純な AST? 匿名関数は実行時に生成されるため、JIT は名前を命令にマッピングすることはありませんが、この時点では推測しているだけです。
- 発送が早い?これについてもよくわかりません。もう一度推測します。
短所:
- むずかしくて読めない
- コールバックの沼地の奥深くに入れ子になっていると、混乱が増します (公平を期すために、最初から不十分に構築されたコードを書いている可能性がありますが、これは非常に一般的なことです)。
- 機能的なバックグラウンドのない人にとって、理解するのは奇妙な概念になる可能性があります
非常に多くの最近のブラウザーが JavaScript コードを以前よりもはるかに高速に実行できることを示しているため、匿名コールバックを使用して得られる些細なパフォーマンスの向上がどのように必要になるかを理解できていません。名前付き関数を使用できる状況 (予測可能な動作と実行パス) にある場合は、そうしない理由はないようです。
それで、私が気付いていない技術的な理由や落とし穴があり、それが理由でこの慣習が非常に一般的になっていますか?
css - modernizr を使用する場合、特定の機能に賛成または反対するなど、さまざまな手法を混在させるのは悪い習慣ですか?
私はmodernizrを試しています。同じスタイルシートで「さまざまな機能の賛成/反対」を混在させても問題ありませんか?もしそうなら、それらを混在させる方法に関する一般的なルールはありますか?
たとえば、これは問題ないですか、それとも悪い習慣ですか。規則を混在させると混乱が生じるのではないかと思います。また、必要な場合にのみ例外を使用して、一般的に 1 つの規則に固執する方がよいのではないかと考えています。または、すべての例外を回避するような方法でプログラムすることが重要かどうか。
jquery - このjQueryコードをリファクタリングできますか
私はjQueryスキルを向上させようとしていますが、このコードがあります。基本的な目的は、背景のサイズとサイズを変更して、レスポンシブスライダーと同じ高さに保ち、ウィンドウのサイズと一致させることです。ユーザーがサイズを変更した場合はそれを追跡します。
それはより良くリファクタリングされるのでしょうか、それともそのままで良いのでしょうか。