問題タブ [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.

0 投票する
20 に答える
888 参照

language-agnostic - 単一の決定およびアクションステートメントに適したスタイルは何ですか?

次の例のように、括弧なしで単一の決定とアクションをサポートする言語の場合:

これを書くための好ましい方法は何ですか?ブラケットは常に使用する必要がありますか、それとも個々の開発者の好みとして使用を残す必要がありますか?さらに、この方法は、次の例のように、コードブロックのサイズに依存しますか?

0 投票する
13 に答える
1070 参照

readability - コードを書いたことのない人でも簡単に読めるコードを書くにはどうすればよいでしょうか?

他の人が簡単に読めるコードを書くにはどうすればよいでしょうか。

0 投票する
7 に答える
2956 参照

python - Python の可読性を向上させるには?

最近、Python プログラミングをとても楽しんでいます。私は、C ベースのコーディングが大好きな背景から来ています。C ベースのコーディングでは、すべてが必要以上に複雑になっている可能性があります (ただし、少なくとも胸が苦しくなります)。したがって、大量の速度を必要としないより複雑なことのために C から Python に切り替えることは、プロジェクトを作成する上で、災難というよりもむしろ恩恵でした。

しかし、肉眼で見る限り括弧と括弧と構造体のこの土地から来ると、小さな問題に出くわします: Python は読みにくいと思います。

たとえば、次のテキスト ブロックは、凝視しない限り解読するのが困難です (これは嫌いです)。

問題はその if ブロックの最後で発生します。すべてのタブ移動と突然耳障りなブロックに戻るのは、ほとんど邪魔に感じます。解決策として、次のように Python のコーディングを開始しました。

そして、これにより、何らかの奇妙な理由で、自分のコードをより読みやすくなります。しかし、私は興味があります: 私の奇妙な問題を抱えている他の誰かが、タブアウトされたコードをより読みやすくする簡単な方法を見つけましたか? これが私の大きな習慣になる前に、これを行うためのより良い方法があるかどうかを知りたい.

0 投票する
22 に答える
1224 参照

language-agnostic - 生成されたコードは人間が読める必要がありますか?

インターフェイスとそのインターフェイスを実装するいくつかのクラスのソース コードを生成するツールに取り組んでいます。私の出力は特に複雑ではないので、出力を通常のコード形式の標準に準拠させることは難しくありません。

しかし、これは私に考えさせました:自動生成されたコードは人間が読める程度である必要がありますか? 生成されたコードを人間が簡単に読み取って理解できるようにするために、いつ余分な努力を払う必要がありますか?

私の場合、生成しているクラスは基本的に、ビルドの別の部分に関連するデータのコンテナであり、データを取得するメソッドを備えています。クラス自体のコードを見る必要はありません。クラスが提供するさまざまな getter を呼び出すだけで済みます。したがって、コードが「クリーン」で、適切にフォーマットされていて、人間が簡単に読み取れるかどうかは、おそらくそれほど重要ではありません。

しかし、単純なロジックが少量以上含まれるコードを生成するとどうなるでしょうか?

0 投票する
2 に答える
769 参照

coding-style - コードの可読性を向上させるために、Cockburn スタイルのテキスト UML ユース ケース コンテンツをコード ベースに埋め込むことは可能ですか?

コードでCockburnのユースケースを試す

複雑な UI コードを書いていました。私は、魚、凧、および海面 (Martin Fowler の著書「UML Distilled」で説明) を使用した Cockburn の使用例を採用することにしました。UI ワークフローのステップを表す静的定数に対して論理条件をテストできるように、Cockburn のユース ケースを静的 C# オブジェクトでラップしました。ラップされたオブジェクトとそのパブリック コンタントが名前空間を介して英語のユース ケースを提供するため、コードを読んで、それが何をしているかを知ることができるという考えでした。

また、リフレクションを使用して、説明したユース ケースを含むエラー メッセージを送り出すつもりでした。アイデアは、スタック トレースにいくつかの UI ユース ケースの手順を英語で含めることができるということです....DSL コンパイラを作成する必要なく、ミニで疑似軽量のドメイン言語を実現する楽しい方法であることが判明しました。だから私の質問は、これがこれを行う良い方法であるかどうかです? 誰かが同じようなことをしたことがありますか?


c# の例のスニペットが続きます

3 つのユーザー コントロール (多数のクリック可能な要素) を持つ aspx ページがあるとします。ユーザーは 1 つの特定のユーザー コントロール内のものをクリックする必要があり (おそらく何らかの選択を行う)、UI は選択が成功したことをユーザーに視覚的に知らせる必要があります。ここで、その項目が選択されている間、ユーザーはグリッドビューを参照して他のユーザー コントロールのいずれかで項目を見つけ、何かを選択する必要があります。これは簡単に管理できるように思えますが、コードが見苦しくなります。

私の場合、ユーザーは、メイン ページによってキャプチャされたすべての送信済みイベント メッセージを制御します。このようにして、ページは UI イベントの中央プロセッサのように機能し、ユーザーがクリックしたときに何が起こるかを追跡できました。

そのため、メインの aspx ページで、最初のユーザー コントロールのイベントをキャプチャします。

したがって、MyCompany.MyApp.Web.UseCases 名前空間には、次のようなコードが含まれている可能性があります。

クラスに埋め込まれたワークフローのユース ケースは、内部クラス、静的メソッド、列挙型など、最もクリーンな名前空間を提供するものであれば何でもかまいません。最初に何をしたか覚えていませんが、写真はわかります。

0 投票する
6 に答える
56664 参照

python - Pythonでのジェネリック例外処理の「正しい方法」

次のようないくつかのシーケンシャルコマンドを実行したい状況に陥ることがあります。

これと同じパターンは、例外を単に無視する必要がある場合に発生します。

これは冗長であると感じ、過度の構文により、コードを読み取るときに驚くほど追跡が困難になります。

Cでは、このタイプの問題をマクロで簡単に解決できたはずですが、残念ながら、これはストレートPythonでは実行できません。

質問:このパターンに遭遇したときに、コードのフットプリントを減らし、コードの可読性を高めるにはどうすればよいですか?

0 投票する
3 に答える
4578 参照

c++ - VS 2008 内の C++ でスコープのような折りたたみ可能な #Region を作成できますか?

私はそれがとても恋しいです(C#でよく使われました)。C++でできますか?

0 投票する
9 に答える
5696 参照

php - PHP配列への入力:最初にインデックスを確認しますか?

私がループの巣の奥深くにいる場合、これらのどれがより効率的であるか疑問に思います:

また

読み取り可能なコードに関する限り、2番目の形式の方がはるかに望ましいです。実際には、名前は長く、配列は多次元です。したがって、最初のフォームは、私のプログラムではかなりぎこちなく見えてしまいます。

しかし、2番目の形式の方が遅いのではないかと思います。コードはプログラムで最も頻繁に実行される関数の1つであるため、より高速な形式を使用したいと思います。

一般的に、このコードは同じ値の「$key」で何度も実行されます。したがって、ほとんどの場合、$ array [$ key]はすでに設定されており、isset()はFALSEを返します。

私が同一でないコードを同一であるかのように扱っていることを恐れる人々のために明確にするために:プログラムのこの部分に関する限り、$valは定数です。実行時まではわかりませんが、プログラムの早い段階で設定されており、ここでは変更されません。したがって、どちらの形式でも同じ結果が得られます。そして、これは$valで取得するのに最も便利な場所です。

0 投票する
39 に答える
42925 参照

performance - for ループで < または <= を使用する必要があります

ループを 7 回繰り返す必要がある場合は、次のようにします。

また:

次の 2 つの考慮事項があります。

  • パフォーマンス
  • 可読性

パフォーマンスのために、Java または C# を想定しています。「未満」または「以下」が使用されているかどうかは重要ですか? 別の言語についての洞察がある場合は、それを示してください。

読みやすくするために、0 ベースの配列を想定しています。

UPD: 0 から始まる配列についての私の言及は、物事を混乱させた可能性があります。配列要素を繰り返し処理することについて話しているのではありません。単なる一般的なループ。

このマジック ナンバーが何であるかを説明する定数の使用について、以下に良い点があります。もし私が " int NUMBER_OF_THINGS = 7" を持っていたら " i <= NUMBER_OF_THINGS - 1" は奇妙に見えるでしょうね。

0 投票する
35 に答える
13729 参照

performance - 開発者は読みやすさとパフォーマンスのどちらを優先すべきですか?

多くの場合、開発者は問題を解決するための 2 つの方法のいずれかを選択する必要があります。たとえば、C ベースの言語では、数値を 2 で乗算する方法が 2 つあります。

最初のバージョンは、技術者と非技術者の両方にとってより簡単に理解できますが、ビットシフトは乗算よりも簡単な操作であるため、2 番目のバージョンの方がパフォーマンスが向上する可能性があります。(ここでは、コンパイラのオプティマイザがこれを検出して最適化しないと仮定しましょう。ただし、これも考慮事項です)。

開発者として、最初の試みとしてどちらが良いでしょうか?