問題タブ [architecture]
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.
asp.net - ASP.NET のメンバーシップに使用するもの
私は ASP.NET の使用経験はあまりありませんが、単純な WebForms アプリケーション用に組み込みのメンバーシップ プロバイダーを使用しており、それらの機能を拡張しようとしたときに PITA を見つけました (いくつかのフィールドを追加/削除し、それに応じてコントロールをやり直しました)。 . 現在、MVC (ASP.NET MVC またはモノレール ベース) プロジェクトの準備をしています。ユーザーを処理するためのより良い方法はありますか? ログイン/ログアウトして、特定のユーザーがサイトの特定の部分を利用できるようにします (ログインしているユーザー、または多くのソーシャル ネットワーキング サイトの「これを友達と共有する」機能に似た機能で、アクセスできるユーザーを指定できます)。適切に拡張できる方法でこれを達成するにはどうすればよいでしょうか?
私はそれについて明確ではなかったと思います。私の質問を言い換えると、Web 向けアプリに標準の ASP.NET メンバーシップ プロバイダーを使用しますか?
architecture - XP/SCRUM には大きすぎますか?
新しいシステムの開発を計画する初期段階では、どの開発モデルに従うかが最重要のようです。私は常に、クラシック ウォーターフォール (またはハイブリッド ウォーターフォール/反復プロトタイピング) が中規模から大規模のプロジェクトに最適なアプローチであると信じてきました。プロジェクトが一定の規模になると、アジャイル/XP/スクラムのパラダイムでは、複雑な要件、大規模なチーム、複数のサブシステム間の複雑さ、ドキュメントの必要性、人事異動などを説明できなくなります。等
システムのサイズ、チームのサイズ、LOC などに関して、このようなアジャイル方法論の限界は何ですか?
architecture - アプリケーションのスケーリング
スケーリングする必要のあるアプリケーション(IP会議サービス)があります。さまざまな言語(主にC ++とPHP、一部のPerl)で記述された、かなりの数の独立したコンポーネント/アプリケーションがあります。現在、1台のインストールが5台のマシンで実行され、1〜2台のコンポーネントが1つのボックスを共有しています。したがって、各ボックスの構成は異なるため、メンテナンスはもちろん、全体をスケーリングするのは面倒です。
個々のコンポーネントはメディアプロキシからメッセージプロキシやデータベースまでさまざまであるため、負荷は均等ではありません。
ある種のロードバランサーを前に置いて、すべてのコンポーネントを1台のマシンに配置し、ボックスを追加することを考えていました。他の人は私に別の方法でスケーリングするようにアドバイスしました-アプリの負荷が高くなる場所に専用のボックスを追加します-しかしこれはメンテナンスの悪夢に戻ります。
私がどこから始めるべきかリソースを知っていますか?理想的には、パフォーマンスの観点からどちらのアプローチが優れているか、いくつかのベンチマークが必要ですか?(声を出して考えると、Xの負荷とYのメモリと処理能力がある場合、どのように割り当てるかは重要ですか?)
architecture - ソフトウェアアーキテクトはアジャイル、特に役割を持っていますか? スクラム?
Marc と Laura Sewell による「The Software Architect's Profession」という本 ( Amazon リンク) を読んでいて、ソフトウェア アーキテクトが古い非アジャイル BDUF アプローチの一部であるかどうか疑問に思いました。
アジャイルアプローチにおいて、ソフトウェアアーキテクトの居場所はありますか? 特にスクラムに興味があります。
ところで、私は現在、大手企業の Unix アプリケーション アーキテクトです。
乾杯、
ロブ
language-agnostic - 一連のビュー以外に、アーキテクチャ ドキュメントを提示するにはどうすればよいでしょうか。
私が見た (そして開発した) アーキテクチャ ドキュメントのすべてではないにしても、ほとんどは一連のビュー (論理、物理、ユース ケースなど) として提示されています。これは好ましいレイアウトですか?他にどんなスタイルがありますか?
model-view-controller - 新しいWebアプリケーションはMVCまたはMVPパターンに従う必要がありますか?
どちらを選択するか(MVCまたはMVP)を尋ねているのではなく、2つのうちの1つをWebアプリケーションに使用する必要があるかどうかを尋ねていることに注意してください。
古いアプリケーションを現在の設計からMVCまたはMVPパターンに変換するのは大変な作業かもしれないことを私は理解しています。しかし、新しいアプリはどうですか?これらは最も人気のあるアーキテクチャパターンのようですが、そのうちの1つを選択する必要がありますか?そうでない場合、他にどのようなパターンがありますか?
MVCやMVPに精通していない場合は、「MVPとMVCとは何ですか、違いは何ですか?」を確認することをお勧めします。。それぞれを分解するさまざまなウェブサイトへのリンクを含む、多くの良い答えがあります。
c# - 静的オブジェクトの初期化 - コード設計に関する質問
コアクラス ライブラリ (ビジネス ロジック、データ レイヤー、およびいくつかのユーティリティ クラスを含む)、Windows サービス プロジェクト、Web サービス プロジェクト、および Web サイト プロジェクトで構成される私の Web アプリケーション (C#、.Net 3.5) には、他のすべてのプロジェクトで使用されるコアライブラリのいくつかの静的クラス。これらのクラス (たとえば、Logクラス) は、使用できるように設定するために、いくつかの初期化 ( Initializeメソッドがあります) が必要です。例として、LogクラスのInitializeメソッドには、ログ ファイルの保存先をLogに伝えるディレクトリ パス パラメーターがあります。または、ログの「設定」をロードすることを考えていました静的コンストラクターの構成ファイルからのクラス。欠点は、単体テストと本番コードで異なる設定が必要なことです。
これを設計するより良い方法はありますか?このアプローチの欠点は、静的クラスのすべてのコンシューマーが Initialize を呼び出そうとすることです。初期化されると、メソッドは Initialize コードを再度実行する代わりにすぐに戻るため、これは実際には問題ではありませんが、設計が少し奇妙に思えます。
私の英語が私が求めているものを説明するのに十分であることを願っています. 質問が十分に明確でない場合は、遠慮なく質問してください。
architecture - Web 開発のための最も柔軟なフレームワーク アーキテクチャ?
編集、2020/09: 誰かが不思議に思っているなら、12 年後、はい、私たちは今では JSON と Kubernetes に移行しています。原文が続きます。
明らかに、すべての人のニーズを満たす単一のソリューションはありません。アーキテクチャは常にトレードオフです。もともと Web ゲームの RAD を対象としたフレームワークを作成したいと考えています。ターゲット言語は PHP ですが、アーキテクチャは広く適用できる必要があります。
このフレームワークの目標は次のとおりです。結果を達成できる方法の柔軟性。開発者にとって最大限の快適さ。LEGO® ブロックのようなモジュールの接続。多くのタイプの入力、多くのタイプの出力、処理のための 1 つのフォーマット。
優先事項ではない目標は、速度、企業での使用、および収益です。オープンソースプロジェクトのはずです。
この設計の要は、変換前のすべてのコンテンツが XML で処理されることです (アイデアは、私が使用した EAI システム eGate に基づいています)。データ抽象化レイヤー (できればスマートな ORM) は、現在は重要ではありません。出力は、XSLT またはその他のカスタム モジュールを使用して生成されます。事実上すべてのクライアント (古いブラウザー用の HTML、最新のブラウザー用の XHTML/HTML5、モバイル クライアント用のシンプルな HTML、AJAX/XMLRPC 用の XML など) に対応します。
XML を使用する主な理由は次のとおりです。
- 有名な規格です
- コンテンツをナビゲートおよび変更するための XPath、SimpleXML、および DOM などの既存のツール
- コードを任意のタグ スープに変換するための強力で統一された方法を提供する XSLT
- XML マークアップは非常に読みやすいので、JSON や YAML の利点がここで違いを生むとは思いません。
- コンテンツは簡単に積み重ねることができ、XSLT で正しく変換されている限り、コンテンツの順序は重要ではありません。
ページ生成プロセスは、次のフェーズで構成されます。
- 前処理: モジュールの初期化、GPCS データの処理、デフォルトの [XML] テンプレートの適用
- 処理/生成: ビジネス ロジックの主要部分であり、肥大化した XML を最大限のデータで生成します (バラストを生成しないように最適化されていることを願っています)。
- 処理: いくつかの追加のビジネス ロジック。たとえば、マークアップの一部の削減、変換の準備、レポート、統計など。
- 後処理: 変換エンジン (ほとんどの場合 XSLT) を介して XML を解析し、出力します。
コンテンツは大量のメタデータ (タグ、権限、重要性、必要性、目的の出力タイプなど) を使用して生成され、後処理中に取り除かれます。
それで、私の質問は次のとおりです。速度を除いて、このソリューションの欠点は何ですか? フレームワークの開発/保守とそのアプリケーションの両方で、どこで問題が発生する可能性がありますか? このアーキテクチャの欠点は何ですか?
.net - 複数のアプリケーションにわたる構成
winforms ソリューションで関連する複数のアプリケーション間で構成データを共有するには、何が推奨されますか? 私が想定している 2 つの解決策は、machine.config (?) ファイルのカスタム セクションを使用することです。もう 1 つは、Properties クラスを介して設定を維持し、これらの設定に対する get および set 要求を処理する追加の構成サービス アプリケーションを作成することです。他のすべてのアプリケーション。
c# - 販売するWebベースのアプリケーションを開発する際に考慮すべきいくつかの一般的な事柄は何ですか
私は内部顧客向けのアプリケーションを開発しています。要件の1つは、他の組織に販売される可能性があるような方法で開発されることです。このアプリケーションは、寄付、寄付者、参加者、イベントを管理する資金調達組織向けの追跡アプリケーションです。認証用のプラグインアーキテクチャを開発し(承認は内部で処理されます)、外部ディレクトリから人口統計データを取得する必要があることはすでに知っています。
アプリケーションはASP.NET/C#/ Linq /SQLServer上に構築されます。現時点では、代替データベースをサポートすることに積極的ではありませんが、将来、必要に応じて、さまざまなLinqドライバーを介してこれをサポートできると考えています。
これまでに作成したすべてのWebアプリケーションはカスタム実装であるため、プラグインや構成アイテムを介して対処する必要がある他の事項があるかどうかを知りたいと思います。任意の入力が役立ちます。
ありがとう。