問題タブ [design-decisions]
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# - .Net で ThreadPool を使用してはいけない場合は?
.Net で ThreadPool を使用してはいけない場合は?
最良のオプションは ThreadPool を使用することのようですが、その場合、それが唯一のオプションではないのはなぜですか?
これについてあなたの経験は何ですか?
.net - IdbConnectionとSqlConnection
アプリを作成するときは、System.Dataインターフェイス(IDbConnection、IDbCommand、IDataReader、IDbDataParameterなど)を使用します。これは、ベンダーの依存関係を減らすために行います。簡単なテストアプリをやっていない限り、相談するときは倫理的なことのように思えます。
ただし、表示されるすべてのコードは、System.Data.SqlClient名前空間クラスまたは他のベンダー固有のクラスを使用しているようです。雑誌や本では、これをMicrosoftの影響力と、SQLServerに対してのみプログラムするためのマーケティングスピンに簡単に当てはめることができます。しかし、私が見るほとんどすべての.NETコードがSQLServer固有のクラスを使用しているように見えます。
ベンダー固有のクラスにはより多くの機能があることに気付きました。たとえば、SqlCommandオブジェクトにパラメーターを追加するのは1つのメソッドですが、IDbCommandにパラメーターを追加するのは4行以上のコードです。しかし、再び; これらの制限のために少しヘルパークラスを書くのはとても簡単です。
また、SQLServerが現在のターゲットクライアントである場合のインターフェイスに対するプログラミングは、すぐには必要ないため、過剰に設計されているのではないかと思いました。しかし、インターフェイスに対するプログラミングのコストが非常に低いためだとは思いませんが、ベンダーの依存関係を減らすことで大きなメリットが得られます。
ベンダー固有のデータクラスまたはインターフェイスを使用していますか?
編集:以下の答えのいくつかを要約し、それらを読んでいる間に私が持っていたいくつかの考えを投げ入れます。
ベンダーの中立性のためにインターフェースを使用する際に考えられる落とし穴:
- SELECTステートメントに埋め込まれたベンダー固有のキーワード(私のins、upd、delはすべてprocにあるので、問題ありません)
- データベースを直接バインドすると、おそらく問題が発生します。
- 接続のインスタンス化が一元化されていない限り、とにかくベンダー固有のクラスを呼び出す必要があります。
インターフェースを使用する前向きな理由:
- 私の経験では、(行使されていなくても)別のベンダーに移動する能力は、常に顧客から高く評価されてきました。
- 再利用可能なコードライブラリのインターフェイスを使用する
.net - EpiServer CMS 5 R2: カスタム ページ プロバイダー - 正しい選択?
新しいプロジェクトで EpiServer CMS 5R2 を使用しています。私は、私たちが制御できない既存のバックエンド ストアにリンクする CustomPageProvider を作成する任務を負っています。ただし、サンプル プロバイダー (XmlPageProvider) を見ると、たとえば (examples.xml ドキュメントから) EpiServer が必要とするメタ情報をプロバイダーが管理しているように見えます。
EpiServer がこれを処理してくれることを望んでいるので、私はこれについて少し心配しています。これは大量の Web サイトであり、この情報を維持するためにサービスに余分なデータ ストアを含める必要がなければいいのですが、控えめに言ってもキャッシュ可能性の問題があります。
だから、質問:
カスタム ページ プロバイダーは、その仕事に適したツールですか?
もしそうなら、この責任を EpiServer に戻す方法はありますか?
そうでない場合は、このデータを保存するための最善の方法についてアドバイスをいただけますか? 以上のことから、データ ソースから何が得られるかを説明します。
とても有難い!
ロバート・スティーブンソン・レゲット
desktop - Web vs デスクトップ開発 (オンライン vs. スマートクライアント)
私は SAP に多額の投資を行っている会社で働いており、多数の大規模な .Net システム (主にエンジニアリング システム用の内部) と Java プラットフォーム (主に外部 Web アプリケーション用) を所有しています。そのため、ABAP、C#、および Java EE に関する大規模な開発ショップがあります。
どのドメインでどのプラットフォームを使用するかについては適切な基準がありますが、いつ Web UI を使用し、いつデスクトップ UI を使用するかについてはあまり明確ではありません。
過去にこのトピックに関する優れた研究を見たことがありますが (このように)、もう少し構造化されたものが欲しいです
この質問を解決するために、ベスト プラクティスに基づいて意思決定ツリーを作成したいと思います。
私が過去に見た基準には次のようなものがあります。
- アプリケーションは、異なる OS 構成を持つユーザーを対象としていますか?
- アプリケーションは、データの並べ替えと編集に OS タイプの機能を必要としますか? (AJAX / 非同期 JS によって、デスクトップに似たより豊富な機能が Web アプリケーションに可能になったことは知っていますが、この分野ではデスクトップがまだ王様であると主張する人もいます)
- Web アプリケーションは、デスクトップ アプリケーションで提供できる可用性、応答性、明快さ、およびユーティリティを提供できますか?
perl - Perlで使用されなくなったオブジェクトをどうすればよいですか?
外部リソースにリンクされているクラスを書いています。メソッドの1つは、外部リソースを破棄するdeleteメソッドです。そのオブジェクトに対してそれ以上のメソッド呼び出しを行うべきではありません。フラグを設定して、フラグが設定されている場合はすべてのメソッドの内部で死ぬことを考えていましたが、より良い、より簡単な方法はありますか?多分破壊を含む何か?
これまでのところ、私はAxemanの提案が本当に好きですが、すべてのメソッドを再作成するには怠惰すぎるため、AUTOLOADを使用しています。
ruby-on-rails - コードの一部に別のコントローラーをいつ使用するか、また使用するかどうかをどのように知ることができますか?
そのため、特定のコードに対して個別のコントローラーを使用するかどうかを決定する必要がある状況にあります。サイトの他の部分のハブのように機能するホームページがあります。このページには、すべてのユーザーがアクセスできます(ログインしている場合とログインしていない場合)。home
私は別のコントローラーとして、と呼ばれるアクションを持つことを考えていましたindex
。このような状況を考えて、この面でルールやガイドラインがあるのではないかと思い始めました。
私の認識では、コードがエンティティを中心に展開する場合は、分離が必要です。(RESTガイドラインと同様)エンティティが名詞の場合は、コントローラーである必要があります。エンティティが動詞である場合、それはおそらくアクションであり、動詞が参照する名詞の名前と同じ名前のコントローラーに存在する必要があります。一部の同僚は、これは1つのアクションであるため、既存のコントローラーに常駐し、という名前を付ける必要があると提案しましhome
た。私は強く反対しましたが、これを裏付ける信頼できる情報源を見つけることができませんでした。
あなたの考えを知りたいです。
c# - 配列を必要とする可変個引数関数の設計上の決定はどのようなものでしたか?
私は興味があり、うまくいけば誰かがこれに光を当てることができます-しかし、なぜ「params」を取るC#関数は配列でなければならないのですか?
パラメータリストのオブジェクトが配列に入力されていることはわかりましたが、未定義の数の配列オブジェクトを受け取る可変引数関数を作成したい場合はどうすればよいでしょうか?
たとえば、この機能を...
非常に簡単ですが、さまざまな量の数値を受け取ることができます-たとえば...
ここで、さまざまな量の整数配列を取り、すべての数値を合計する関数を作成したいとします。私の知る限り、ボクシングを検討する必要があります...
これは次のように使用できます...
この背後にある理由は何でしたか? なぜこれが単一の非配列変数として実装されなかったのですか? のようなparams Int32
?
orm - 主キー-ネイティブキー、シーケンスキー、またはGUIDキー?
これとこれを読んでからこれを読んで(皮肉なことに他の2つを参照しています)、このトピックの議論がどれほど大きいのか疑問に思いますか?私はSQLServerの担当者なので、intの形式で自動生成されるIDを使用する傾向があります。ただし、サーバーとサーバー間の何らかの形式のレプリケーション、またはクライアントとサーバー間の同期が必要になることがわかっている場合は、GUIDをキーとして使用する傾向があります。
質問: 将来この可能性のあるスケーラビリティが必要になる可能性がある場合に備えて、すべてのテーブルで常にGUIDを主キーとして使用する必要がありますか?これにより、スキーマをプラットフォーム間でいつでも移行できるという点で、スキーマがより柔軟になりますか?これは、プラットフォーム固有の機能を埋め込まないことで、(フレーバーに関係なく)ORMの柔軟性を維持するのに役立ちますか?
反応:
@David Archer:あなたのコメントに従って、「自然キー」と言わないように投稿を更新しました。自然キーがそのように定義されているという点で、あなたは正しいです。訂正していただきありがとうございます。
user-interface - このユーザーの決定で予想される動作はどうあるべきですか?
ユーザーがテキストファイルを変更できるこのアプリケーションがあり、保存を忘れると、変更が保存されていないことを通知する小さなメッセージがポップアップ表示され、2つのボタン「はい」で変更を保存するかどうかを尋ねられます。と「いいえ」。また、「この警告を無効にする」という小さなチェックボックスがあります。また、同じように、ユーザーがチェックすると、テキストファイルに未保存の変更があった場合に、メッセージが再度ポップアップ表示されることはありません。
いくつかの質問:
1)ユーザーが「はい」のみを選択した場合、「いいえ」のみを選択した場合、またはそれらのいずれかを選択した場合、チェックボックスの値(チェックボックスがオンになっている場合)を覚えておく必要がありますか?
2)ユーザーがチェックボックスをオンにしたと仮定して、保存されていない変更について再度警告されないようにします。次にユーザーが変更を保存するのを忘れたときに予想される動作はどうなりますか?
ユーザーが警告を無効にした後、常にデフォルトのアクション(yes:変更を保存、no:変更を破棄)を想定する必要がありますか?もしそうなら、どのアクション?
または、警告を無効にした直後の最後のユーザーアクションに応じて、常に変更を保存するか、常に変更を破棄する必要がありますか?
content-management-system - Joomlaの用途は何ですか?
Joomlaで構築され始めたサイトの開発を引き継ぎました。これまでのところ、静的ページとユーザー登録はほんのわずかです。仕様では、基本的にファイル共有Webサイトになると記載されています。管理者(および管理者のみ)がファイルを追加し、ユーザーはそれらのファイルの一部をメンバーエリアから(現在の日付に基づいて)ダウンロードできるようになります。
過去数時間のJoomlaでの限られた経験から、Joomlaは、技術者以外の管理者がコンテンツを追加/編集できる半静的なWebサイトを持つのに適しているように見えますが、カスタマイズされた動的なものを追加できるのは良くないようです。コンテンツ(データベースにアクセスできる新しいページを追加する方法をまだ理解できていません)。
現在のJoomlaサイトをスクラッチして、代わりにPHPフレームワークでやり直して、カスタマイズできるようにすることを考えています。Joomlaの私の理解は正しいですか?