問題タブ [conventions]
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.
refactoring - クラス内のメソッドの順序
私はまだプログラミングに非常に慣れていないので、可能な限りクリーンなコードを書きたいと思っています。
これはばかげた質問のように聞こえるかもしれませんが、メソッドをどの順序で配置すればよいでしょうか? 機能的にはもちろん問題ありませんが、レイアウトによって大きな違いが生じます。たとえば、1 つのクラスに次のコードがあるとします。
メソッドは呼び出された順に並んでいますか? クラス内の 2 つの場所からメソッドが呼び出された場合はどうなるでしょうか。
このコード スニペットは、私には完全に混乱しているように見えます。非常に単純なフローとは何かを把握するためだけに、これだけスキップしなければならないのは非常に混乱します。
メソッドのどの順序がより理にかなっていますか?
assembly - アセンブリのコード規約(主にPIC)はありますか?
アセンブリのコード規約(主にPIC)はありますか?
fluent-nhibernate - Fluent NHibernate には多対多の規約に関する質問があります
私は流暢な nhibernate と nhibernate を初めて使用します。エンティティの多対多マッピングの作成を処理する流暢な nhibernate 自動永続化規則を作成したいと考えています。
これは私が今持っているものです:
うまくいくように見えますが、これを行うためのより良い方法があると感じています。
今私の質問:
- これを行うためのより良い方法はありますか?
- 通常、ここでカスケード動作が必要ですか?
- この関連付けの両側が同じテーブル名になることを確認する以外に、何か心配する必要はありますか?
c# - どのスタイルの返品を使用すればよいですか?
これは、C# で使用される規則に関連しています。
2 つのパラメーター (X 座標と Y 座標) を持つメソッドがあります。これらの座標は、「タイル」が存在する位置を表します。タイルがこれらの座標に存在する場合、メソッドはその番号を返します。これらの座標にタイルが存在しない場合、メソッドがどのように動作するのか疑問に思っています。
次の 3 つのオプションが表示されます。
- 例外を使用します。メソッドがタイルを見つけられないたびに、例外を発生させることがあります。ただし、このような状況はまれではないため、このオプションは最悪のオプションです。
- 昔ながらの C++ の方法で行い、タイルがない場合は -1 を返します。
- タイル番号を参照パラメーターにし、メソッドの戻り値の型を boolean に変更して、タイルの有無を示します。しかし、これは私には少し複雑に思えます。
それで、私は何をすべきですか?
c# - オブジェクトをパラメーターとして受け入れることは許容されますか?
社会保障番号を要求するテキストボックスまたはその他の形式の入力があるとします。SSN は、私が現時点で単純に考えた純粋な例であることに注意してください。この入力は当然、最初は文字列として保存されます。
SSN を検証するメソッドが必要であり、コード全体であらゆる場所で使用される可能性があるとします。一体、ユーザー入力によって決定されていない変数でメソッドを呼び出すことさえあります。
これは受け入れられますか?
または、特定のデータ型を要求するように主張しますか?
そのため、メソッドを呼び出す前に、入力を正しいデータ型に変換する必要があります。
ところで:私は適切な IsValidSSN コードを実行する方法を尋ねているわけではありません:)私が言ったときの意味の例を挙げたかっただけです:オブジェクトデータ型をパラメーターとして受け入れることができますか、それとも回避する必要がありますか?
language-agnostic - 関数/クラス コメントの書式規則
最も読みやすく、便利な関数/クラスのコメント規則を持っているのは誰ですか? ドキュメントを生成するものを探しているわけではありませんが、すべての情報がそこにあるため、JavaDoc のようなものを採用することを検討しています。
または他の手作りのもの?
複数行に対する単一行のコメントに対する合理的な議論はありますか?
私が使用するすべての言語に規則を適用したいので、言語固有または言語にとらわれない規則を共有してください。
python - 内部関数をインポートするのはpythonicですか?
PEP 8によると:
- インポートは、モジュールのコメントとdocstringの直後、モジュールのグローバル変数と定数の前に、常にファイルの先頭に配置されます。
時々、私はPEP 8に違反します。時々、関数内に何かをインポートします。原則として、単一の関数内でのみ使用されるインポートがある場合にこれを行います。
何か意見はありますか?
編集(関数にインポートするのは良い考えだと思う理由):
主な理由:コードをより明確にすることができます。
- 関数のコードを見ると、「関数/クラスxxxとは何ですか?」と自問するかもしれません。(関数内で使用されているxxx)。モジュールの上部にすべてのインポートがある場合は、そこを調べてxxxが何であるかを判断する必要があります。これは、を使用する場合の問題
from m import xxx
です。関数を見るm.xxx
と、おそらくもっとわかります。何であるかに応じてm
:それはよく知られているトップレベルのモジュール/パッケージ(import m
)ですか?それともサブモジュール/パッケージ(from a.b.c import m
)ですか? - 場合によっては、xxxが使用されている場所の近くにその追加情報(「xxxとは何ですか?」)があると、関数が理解しやすくなります。
php - PHP フレームワークの URL 規則
多くのフレームワークは URL 規則を使用し/controller/action/{id}
ていますが、それ以上の構成が必要な場合は、独自のルートを作成する必要があります。
/users/{id}/friends
バックエンドのような URL をどのように処理しますか? (ユーザーのすべての友達を一覧表示するため)
コントローラーでは、次のようなものが適切だと考えています。
次に、次のマップが表示されます。
Friend クラスを User クラス内に配置したかったのですが、明らかに PHP ではそれができないため、これが最善の方法です。考え?
友達のリストを編集するには、どの URL を使用しますか? /users/{id}/friends/edit
動作する可能性はありますが、他の人の友達リストを編集するべきではないため、適切ではないようです。/account/friends/edit
より良い選択でしょうか?それに対応するコードをどこに配置しますか? フレンド コントローラー、ユーザー コントローラー、または特殊なアカウント コントローラーでしょうか?
おまけの質問: どちらが好きですか? /photos/delete/{id}
また/photos/{id}/delete
回答:
だから、私が答えから集めたのは、「もの」が複雑(「友達」のように)であるが、独自のコントローラーを持っていない場合は、モデルなしでコントローラーを与えることができるか、そうでない場合は、それが最も密接に関連しているものは何でも詰め込んでください。URL は、コードを配置する場所に影響を与えるべきではありません。ほとんどの人は/controller/action/{id}
、人々が慣れ親しんでいるものなので、可能な限りそれに固執するべきだと考えているようです.
「ぎこちない」と言う以外に、拡張クラスについて実際にコメントした人は誰もいませんでした。その場合、本当に分離したいのであれば、おそらく FriendList がより適切なクラスだったでしょう。
すべての答えをありがとう:)
asp.net-mvc - MVC のコンテンツ フォルダー規則
ASP.NET MVC プロジェクトの /contents フォルダーの規則の背後にある歴史は何だろうと思っています。それがどこで発生したか; そしてその背後にある理由。
私たちのチームは、プロジェクト内のフォルダー レベルを下げるために、/images と /styles を /contents から移動することを検討しています。そもそもなぜ大会が開催されたのかを知ることは素晴らしいことです.
math - なぜx、Yではなくatan2 Y、Xへの引数があるのですか?
Cでは、atan2関数には次のシグネチャがあります。
他の言語もこれを行います。これは私が知っている唯一の関数であり、引数をX、Yの順序ではなく、Y、Xの順序で取ります。座標を考えるとき、(X、Y)と思うので、定期的に失敗します。
atan2の引数の順序の規則がこのようになっている理由を誰かが知っていますか?