問題タブ [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.
c# - NotOfTypeを実装するにはどうすればよいですかLINQでは、呼び出し構文が優れていますか?
NotOfType
読み取り可能な呼び出し構文を持つの実装を考え出そうとしています。NotOfType
を補完する必要があり、その結果、タイプではないOfType<T>
すべての要素が生成されますT
OfType<T>
私の目標は、このスニペットの最後の行のように、のように呼び出されるメソッドを実装することでした。
ただし、その特定の呼び出し構文をサポートする実装を思い付くことができません。
これは私がこれまでに試したことです:
これらのメソッドの呼び出しは次のようになります。
と
これらの両方の呼び出しのスタイルには大きな欠点があると思います。最初のものは冗長な「タイプ/タイプの」構造に悩まされており、2番目のものはまったく意味がありません(動物でもキリンでもない動物のリストが必要ですか?)。
それで、私が望むことを達成する方法はありますか?そうでない場合、言語の将来のバージョンで可能でしょうか?(いつの日か、型引数に名前を付けるか、推論できない型引数を明示的に指定するだけでよいと思いますか?)
それとも私はばかげているだけですか?
c# - C# でこの If を書き換える最も適切な/最も慣用的な方法
私が望むことを行うこのif-else
ステートメントがあります。あなたが言うことができるように、それがしていることは非常に簡単です。
言及されているのenum
は:
これは非常に簡単ですが、これを表現するもっと簡潔で読みやすい方法があると確信しています。
NB VS がデフォルトで課すばかげた「1 行に 1 つのブレース」ルールがなければ、おそらくそれほど気にならなかったでしょう。たとえば、VB では、このコード ブロックから約 10 行を失う可能性があります。(余談ですが何か考えはありますか?)
coding-style - コード構造: 可読性を高めるために多くの関数を使用する必要がありますか?
私の質問は Bash と PowerShell スクリプトを念頭に置いていますが、他の言語にも当てはまると思います。
関数の目的は、同じ (または非常に類似した) タスクを複数回実行することだと理解しています。これにより、スクリプト内のコードの量が減り、保守も容易になります。
それを念頭に置いて、スクリプトが関数を 1 回だけ呼び出すことがわかった場合、その関数が functionとして存在する理由はありません。代わりに、関数のコードを取得して、その関数が呼び出されている場所に配置する必要があります。
それをすべて言ったので、ここに私の質問があります:
複雑なスクリプトがある場合、各関数が 1 回しか呼び出されない場合でも、コードの各セクションを独自の関数に移動する必要がありますか? これにより、スクリプトの読みやすさが大幅に向上します。これは、そのロジック (関数) がすべてスクリプトの上部にあり、実行の流れがスクリプトの下部にあるためです。50 行のコードが 1 行で表されるため、スクリプトが何を行っているかを理解しやすくなります。
他の人はこれをしますか?このアプローチには欠点がありますか?
c - 多くのif-elseチェックを避けてください
3つの異なる排他的条件の処理を行う必要がある適度に大きなCファイルに取り組んでいます。(条件1が存在する場合はこれを実行し、2が存在する場合は他のことを実行します)。したがって、そのファイルの多くの場所で、if/elseチェックを実行する必要があります-これは汚れているように見えます。これらのチェックを行っている場所は約50か所あります。
コードをよりきれいに見せるためのより良い方法はありますか?
c# - .NETアプリケーションのよく知られたコーディング標準?
私はSilverlight、WCF、EFを使用したイントラネットアプリケーションに取り組んでいます。
将来の開発者がコードを簡単に保守できるようにするには、どのような基準に従う必要がありますか?
c# - どちらが速いですか: クエリ構文とループ
次のコードは、合計が 100 未満の整数のペアを生成する 2 つのアプローチを提供し、それらは (0,0) からの距離に基づいて降順に並べられます。
このコードは Bill Wagner 著『Effective C#』の項目 8 から引用したものです。この記事全体で、著者はコードの構文、コンパクトさ、読みやすさに重点を置いていますが、パフォーマンスにはほとんど注意を払っていません。議論しなかった。
だから私は基本的に知りたいのですが、どちらのアプローチが速いですか? 通常、(一般的に) パフォーマンスが優れているのはどれですか: クエリ構文または手動ループ?
参考文献があれば、それらについて詳しく説明してください。:-)
ruby-on-rails - Ruby on Railsでは、falseを使用してDBルックアップを行わないことを示し、nilを使用してルックアップしてもよいことを示すのはどのようなデザインパターンですか?
Restful Authenticationでは、がfalseに設定されているcurrent_user
場合@current_user
、(通常はDBから)ユーザーを再度検索しないことを意味しますが、それは問題ないことを意味し、DBで再度nil
検索できることを意味します。
の8行目lib/authenticated_system.rb
複雑なことは、などからDBを検索しようとしてそれlogin_from_session
が見つからない場合、割り当てられる最終値@current_user
はnil
であり、メソッドはnil
(メソッドで最後に評価された値)を返します。@current_user
コード内に実際にfalseに設定できる場所が他に2つあり、それによってがトリガーされunless
、ステートメント全体が。のままでnil
、メソッドが...を返す場合を除きます。@current_user
false
nil
コードがこれらの複雑な事実に依存することについて、私はほとんど言葉を失いました。 false
は特別な意味をnil
持ち、コードでは特別な意味を持ちますが、文書化もコメントもされておらず、であり続けることができcurrent_user
ます。それは実際にはデザインパターンなので、人々はそれをよく知っていて、よく知っていますか?nil
@current_user
false
python - 複数行の「if」ステートメントのインデントのコードスタイル?
長い if 条件をインデントする場合、通常は次のようにします (実際、PyDev はこのようにインデントします)。
ただし、これにより、if ステートメントによって開始されるブロックが if 条件の最後の部分と同じインデント レベルに配置され、ブロックの開始場所がすぐにわからないため、私の意見では非常に見苦しく/読みにくくなります。
私が考えた他のいくつかのスタイル:
2 行目が最初の行よりもはるかにインデントされているため、これはかなり矛盾しているように見えますが、読みやすいです。
これも最初の例より読みやすくなっていますが、インデントが 4 の倍数ではなくなっていることに加えて、最初の行の条件の開始よりも 2 行目のインデントが少ないため、正しく見えません。
したがって、私の主な質問は次のとおりです。過度に長い行を必要としないような場合 (つまり、単一行の状態) に推奨されるインデント スタイルはありますか? そうでない場合、そのような場合に何を好みますか?
c# - C# を使用して、コレクション内の 2 番目のテーブルから始まる DataSet の DataTables を列挙する方法
インデックス 1 から始まる for ループは、明らかな答えです。これを行うには他にも多くの方法があると確信しています。しかし、最も読みやすい方法は何ですか?
質問はC# 4.0を使用しています。LINQ はオプションです。
database - Perl でハッシュ データを外部に保存する
私は現在、スクリプトの先頭で初期化される 3 つのハッシュ (単純なハッシュ) に依存するスクリプトのリファクタリングに取り組んでいます。これらのハッシュ値は、合計でスクリプト内の 100 行以上を占めます。コードの全体的な読みやすさと簡潔さを向上させるために、この情報をスクリプトの外部に保存し、最初に情報を読み込む必要がありますか? データ自体はほとんど静的である必要があります (個々のエントリは時々変更する必要がある場合があります)。
はいの場合、データベース/推奨されるストレージ メディアに保存するにはどうすればよいですか? (SQLに関しては、私は初心者です)。