問題タブ [rationale]
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.
cakephp - なぜ CakePHP は異なる複数形/単数形の命名規則を使用するのですか?
誰かがおそらくここで説明できますか? CakePHP には、db テーブルとコントローラーには複数名を使用し、モデルには単数名を使用するという規則があるのはなぜですか? 常に単数形や複数形を使用しないのはなぜですか? 私にとって、「ここで複数形と単数形のどちらを使用するべきか?」と常に考えなければならないのは混乱しているように思えます。(または、覚える簡単な方法はありますか??) そして、両方の組み合わせを使用する結合テーブルがあります!
どこかに正当な理由があると思いますが、それを見つけられませんでした。
(Ruby-on-Rails がそのように動作するという理由だけではないことを願っています。)
サイモン。
python - Python 変数スコープ
私は自分のpythonを教えていて、いくつかのサンプルコードをこれに翻訳していました
これは、ほとんど私の意図したクラス定義です
メイン メソッドの後半で、インスタンスを作成して呼び出しますa
a
それが、で宣言された変数がmain
メソッドで使用可能であることを確認する方法average
であり、そのメソッドを機能させるには、 self.a + self.b + self.c
代わりに入力する必要があります
これの根拠は何ですか?
関連する質問を見つけましたが、それらがほぼ同じかどうかはよくわかりません
c++ - 複数行のconstexpr関数を持つのはなぜ形式が悪いのですか?
Generalized Constant Expressions—Revision 5によると、以下は違法です。
これは、すべての 'constexpr' 関数が の形式である必要があるため{ return expression; }
です。これがそうである必要がある理由はわかりません。
私の考えでは、本当に必要な唯一のことは、外部状態情報が読み書きされず、渡されるパラメーターも「constexpr」ステートメントであることです。これは、同じパラメーターを使用して関数を呼び出しても同じ結果が返されることを意味するため、コンパイル時に「知る」ことができます。
これに関する私の主な問題は、ループの実際のラウンドアバウト形式を強制し、コンパイラがそれを最適化して、非 constexpr 呼び出しと同じくらい高速になることを望んでいるように見えることです。
constexpr
上記の例に有効なコードを記述するには、次のようにします。
しかし、これは理解するのがはるかに難しく、 の要件に違反するパラメーターを使用して呼び出すときに、コンパイラーが末尾再帰を処理することを期待する必要がありますconst-expr
。
c++ - C++ でネストされた名前空間宣言が許可されない特定の理由はありますか?
標準では、次のようなコードは許可されていません。
代わりに
根拠は何ですか?これは単にその時点では考えられていなかったのでしょうか、それとも含まれていない特別な理由があるのでしょうか?
最初の構文は、宣言が後のコードでの名前空間の実際の使用を模倣しているため、名前空間がどの名前空間にあると想定されているかをより直接的に表現しているようです。また、不幸にも「ばかげた」ブラケット カウント インデント ツールを使用している場合、インデントが少なくなります。
c++ - C ++ 0xスマートポインターの比較:一貫性がない、理由は何ですか?
C ++ 0x(n3126)では、スマートポインターを、関係的にも同等性についても比較できます。しかし、これが行われる方法は私には一貫していないようです。
たとえば、shared_ptr
defineはoperator<
次と同等です。
を使用std::less
すると、指定されていないバニラリレーショナルポインタ比較とは異なり、ポインタ値に関する全順序付けが提供されます。
ただし、unique_ptr
次と同じ演算子を定義します。
また、同様の方法で他の関係演算子を定義しました。
なぜ方法と「完全性」の変更?つまり、ビルトインを使用しながら使用するのshared_ptr
はstd::less
なぜですか?そして、なぜ他の関係演算子も提供しないのですか?unique_ptr
operator<
shared_ptr
unique_ptr
私はどちらの選択の背後にある理論的根拠を理解することができます:
- メソッドに関して:これはポインターを表すため、組み込みのポインター演算子を使用するだけですが、連想コンテナー内で使用できる必要があるため、全順序付けを提供します(バニラポインターがデフォルトの
std::less
述語テンプレート引数で取得されるように) - 完全性に関して:それはポインターを表すので、ポインターとすべて同じ比較を提供しますが、それはクラスタイプであり、連想コンテナーで使用されるのに匹敵するよりも少ない必要があるだけなので、その要件のみを提供します
しかし、スマートポインタの種類によって選択が変わる理由はわかりません。私は何が欠けていますか?
ボーナス/関連:std::shared_ptr
から続いているようboost::shared_ptr
で、後者は「設計上」他の関係演算子を省略してstd::shared_ptr
います(同様に)。どうしてこれなの?
java - XMLをチャンクしてリレーショナルテーブルにロードする
私は信用組合で働いています(約60Kのアカウント)。ステートメントプロセスは70年代のものであり、データをレイアウトに緊密に結合しました。つまり、ジョブを実行すると、各アカウントのステートメントを含むテキストファイルが生成されます。メインフレームの構成を変更しましたが、テキストを出力する代わりに、次のようなXMLを取得します。
リレーショナルテーブルからデータをプルし、iTextを使用してその場でPDFを作成するJavaコードを作成しました。ステートメントに表示されるデータの一部は、XMLのデータから計算されます。たとえば、XMLには共有上のすべてのトランザクションが含まれています。明細書には、貸方の数と借方の数を示したいと思います。DBに読み込まれると、ビューを使用してこれらの値をその場で計算し、データをJavaアプリに提供できます。
このXMLファイルは最大900MBであり、メンバーを追加するにつれて大きくなります。
xmlを一度に1つの「ステートメント」で処理したいと思います。 http://mrico.eu/entry/parsing_chunks_of_xml_documents
個別のステートメントを作成したら、そのシェア(小切手、普通預金、ビザなど)を対応するDBテーブルにロードします。
これを実現する最も簡単な方法は、ステートメントをPOJOにバインドしてから、POJOの複雑な要素(共有、トランザクション、またはローン)ごとに挿入を実行することです。
パーサー/バインダー/永続化ツールのどの組み合わせをお勧めしますか?
個人的には、生のJDBCインサートを好むので、パーサーとバインダーの問題がより重要です。
注:XMLのスキーマを作成することもできますが、メインフレームがXMLファイルを作成する方法が原因で壊れやすい可能性があります。FiservのSpectrumソフトウェアを使用している人は誰でも、私の痛みを感じます。
.net - DBNullのポイントは何ですか?
.NETにはnull
、オブジェクト参照が空であることを示すためにどこでも使用される参照があります。次に、DBNull
データベースドライバー(および他のいくつか)によって使用される参照があります...ほとんど同じことを示します。当然、これは多くの混乱を引き起こし、変換ルーチンを解き放つ必要があります。
では、なぜ元の.NET作成者がこれを作成することにしたのでしょうか。私にはそれは意味がありません。彼らのドキュメントも意味がありません:
DBNullクラスは、存在しない値を表します。たとえば、データベースでは、テーブルの行の列にデータがまったく含まれていない場合があります。つまり、列は単に値を持たないのではなく、まったく存在しないと見なされます。DBNullオブジェクトは、存在しない列を表します。さらに、COM相互運用機能はDBNullクラスを使用して、存在しない値を示すVT_NULLバリアントと、指定されていない値を示すVT_EMPTYバリアントを区別します。
「列が存在しない」についてのこのがらくたは何ですか?列が存在しますが、特定の行の値がありません。存在しなかった場合、DBNull
!ではなく、特定のセルにアクセスしようとすると例外が発生します。VT_NULL
とを区別する必要があることは理解できますが、代わりにクラスをVT_EMPTY
作成してみませんか?COMEmpty
これは、.NETFramework全体に非常にうまく適合します。
私は何かが足りないのですか?なぜDBNull
発明されたのか、それがどのような問題を解決するのに役立つのか、誰かが光を当てることができますか?
c++ - Koenig ルックアップの根拠
Koenigルックアップの理論的根拠は何ですか?
コードを読みにくくし、より不安定にする何かのように考えることは避けられません。
特定のケース (つまり、非メンバー演算子) または明示的に必要な場合にのみ機能するように、Koenig ルックアップを定義できませんでしたか?
c++ - What exactly was the rationale behind introducing references in c++?
From the discussion that has happened in my recent question (Why is a c++ reference considered safer than a pointer?), it raises another question in my mind: What exactly was the rationale behind introducing references in c++?
c++ - C ++:ルールを隠すことの背後にある理論的根拠
C ++の非表示ルールの背後にある理論的根拠は何ですか?
それが意味のある機能であれば、同じ名前の新しい関数を定義せずに関数を非表示にすることも可能であると思います。次のようなものです。
しかし、これは不可能です。
ディレクティブを明示的に使用する場合、コンパイラはとにかく関数を再表示できなければならないため、コンパイラの作業が単純化されるとは思いません。
/li>using
では、なぜ隠蔽ルールがあるのでしょうか。
ふむ、3つの答えはすべて良いようで、隠蔽ルールのさまざまな根拠を示しています。どの答えを受け入れるべきかわかりません。