問題タブ [web-application-design]
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.
tomcat - 戦争のない jar ベースの展開
今回は一種の理論的な質問があります。今日、かなり大きな会社で働いている SW 開発者の 1 人が、アプリケーションの展開に war ファイルを使用していないことを教えてくれました。彼らの SW アーキテクトは、war ファイルは悪であると信じています。なぜなら、war ファイルを使用していないクラスの展開は、運用グループの従業員がサーバーで遊んでいることが原因で発生する可能性がある損害に関して十分に安全ではないからです。私が理解している限り、彼らの解決策は、アプリケーションを jar にパックし、それを空の webapp スタイル ツリーの WEB-INF/lib フォルダーに追加することです。また、server.xml を編集してアプリのコンテキスト /docbase を追加し、使用するパスで有効にするためにも使用されます。私はこの説明に本当に戸惑いました。このようなものは今まで見たことがありません。個人的には、「運用担当者の問題」全体がパラノイアのように聞こえると思いますが、それでも、そのようなソリューションの長所と短所を判断するのは難しいです。どう思いますか?奇妙または素晴らしい?
ありがとう。
asp.net-mvc - MVCデザイン-レコードを保存する前にファイルのアップロードを処理する
クレーム管理ウィザードを備えたMVCWebアプリがあります(通常の注文入力に似ています)。クレームには複数のアイテムを含めることができ、各アイテムにはそれに関連する複数のファイルを含めることができます。
クレーム->アイテム->ファイル
新しいクレームを追加する際に、ユーザーが1つ以上のアイテムを追加できるようにし、それらのアイテムのファイルのアップロードも許可したいと考えています。ただし、クレームが実際に保存されるまですべてをメモリに保持する必要があります。これにより、ユーザーがクレームエントリを完了しないか破棄した場合でも、データベースとのやり取りは行われません。
セッションを介してデータレベルのメモリ内管理を処理できます。セッションでClaimオブジェクト(Claim.Itemsプロパティも含む)をシリアル化します。しかし、ファイルを管理する方法は?
<ClaimID> \ <ItemID>フォルダーにファイルを保存しますが、新しいクレームをメモリに作成している間、レコードがデータベースに保存されるまでIDはありません(どちらも自動インクリメントintです)。
今のところ、クレームが保存されるまで、ユーザーがファイルをアップロードすることを制限する必要があります。
.net - ビジネス値を .NET に保存する場所 - SQL Server アプリケーション
これは開発者の間で常に鶏が先か卵が先かの問題でした。アプリケーション ルール内で使用されるビジネス値をどこに保存しますか。(ASP.NET、ウィンドウ フォーム、またはデータ駆動型アプリケーションのいずれか)
テキストと値の表現を格納するテーブルを作成し、コード内でこれらのレコードを (ID またはテキスト名で) リンクする人を見てきました。私にとって、それは可能な限り最悪の方法です:
- テーブルを維持し、それぞれの管理モジュールを作成する必要があります
- ビジネス価値にアクセスする必要があるたびに表を読んだ
- データベースが事前に入力されていないと、アプリケーションは機能しません -
そして、ほとんどの開発者は、これを「ベスト プラクティス」と言っています。これは、次のようにビジネスの価値をアプリケーションに直接配置するアプローチよりもメリットがないため、購入していません。
次に、データ オブジェクトの Enum に直接キャストするデータベースとの間の [Column] で整数を使用するため、ロジックは次のように直接言うことができます。
これにより、上記の問題はすべて解決されますが、アプリケーション外のデータベースでレポートを実行する場合、これらの値を SQL で変換する必要があります。
そのため、開発者が使用する別の「より良い」ソリューションまたはパターンがあるかどうかはまだ疑問に思っています。つまり、すべてのデータ駆動型アプリケーションには、最初から存在していたこの問題へのアプローチ/設計が必要です。
php - データベースからコメント/クエリを取得して表示する
私はphp/sqlで、ユーザーが販売したいアイテムを投稿できるWebアプリケーションを開発しています(ebayのようなものです)。非会員がアイテムについてコメントしたり、アイテムについて質問したりできるようにしたい.
私の問題は、Facebook の壁が機能するのと同じように、各アイテムとそのアイテムに関するコメント/クエリを表示したいということです。
各項目に「コメントを追加」(もしあれば) したい。コメント テーブルは、列 item_id を介してアイテム テーブルにリンクされています。そして、items テーブルは列 user_id を介して users テーブルにリンクされています。アイテムの詳細を表示するアイテム テーブルと結合されたユーザー テーブルを残しました。結合された 3 つのテーブルがあるように、コメント テーブルも結合しようとしました。
各テーブルに複数のエントリがあるにもかかわらず、コメントが表示されず、1 つの項目しか表示されないため、これは失敗します。これが私が使用しているコードです。
jsp - jspとサーブレットでファイル共有WebアプリケーションのWebアプリケーションセットアップを設計しますか?
私はファイル共有Webアプリケーションに取り組んでいます。このアプリケーションは、jspとサーブレット、MySql、Apache tomcat 6.0 Webサーバー、およびEclipseJunoIDEを使用して開発されています。私の専門家レベルは、これらの特定のテクノロジーの初心者です。
このアプリケーションには、ファイルアップロードユーティリティがあります。このユーティリティの下で、ユーザーはファイルに関するいくつかの基本情報をHTML形式で入力し、参照ボタンを使用してローカルマシン上のファイルへのパスを指定します。ユーザーが[送信]ボタンをクリックすると、フォームのデータがデータベースに保存され、ファイルがサーバーのアプリケーションで指定された共通の場所にアップロードされます。サーバーにファイルをアップロードしている間、このユーティリティは指定された修正共通の場所にディレクトリを作成し、この作成されたディレクトリにファイルをアップロードします。
専門家からの指導と解決策が欲しいという質問と疑問があります。
現在、同じマシン上にWebサーバーとデータベースサーバーがあり、アップロードされたファイルもアプリケーションディレクトリの同じWebサーバー上にあります。アップロードしたファイルを非常に安全にしたいと思います。この種のセットアップが正しいかどうか、または同じ状況で他に安全で完璧なセットアップ設計があるかどうかを専門家に尋ねたいと思います。
アプリケーションにログインするユーザーの数はまだ決まっていませんが、数人から数千人になる可能性があります。アップロードファイルの数に制限はありません。 したがって、最終的に、すべてのユーザーが共通の場所にアップロードするファイルの合計サイズは、GB単位または数TB単位になる可能性があります。現在、必要なディスク容量に関する問題はありませんが、これに関する提案とガイダンスはいつでも歓迎します。
上記のプロセスとして、特定の修正共通の場所にディレクトリを作成する必要があります。サーバーまたはサーバー上の他のセキュリティアプリケーションで、共通の場所を修正するディレクトリをオンザフライで作成できるようになるかどうか。
アップロードしたファイルを独自のWebアプリケーションフォルダーに配置することをお勧めしますか?
ありがとう!
web-applications - 注釈 / Web フォームのコメント / wysiwyg エディター
ユーザーが記事を書くことができる Web アプリケーションを構築しています。PHP/mySQL で書かれています。
現時点では、ユーザーがコンテンツを書き込める単純なテキスト フォームを使用しています。書式設定は、後で XML エクスポート/レイアウト アプリケーションで行います。
BUT: ユーザーはお互いにコメントを共有したいと考えています。理解するには: Microsoft Word には便利なコメント機能があります。すべてのユーザーからのコメント付きの吹き出しがあります。現時点では、ユーザーは自分のコンテンツを Word 文書で作成し、電子メールで相互に送信しています。
現在: 「MarkItUp!」のような WYSIWYG エディターでのコメント/注釈の解決策を知っている人はいますか? またはTinyMCE。現時点では WYSIWIG を使用していないので、どれでも実装できます。または、これを行う他の方法...
1 つのアイデアは、追加のテキスト ボックスとしてコメント機能を実装することでしたが、それでは個々の単語や文にコメントを付けることができません。
http://www.youtube.com/watch?v=WzaCj6KGvWsを見つけましたが、ダウンロード用のプラグインが見つかりません。
アイデアをありがとう。シルヴァン
database-design - 買い手と売り手のバッジ割り当てモジュールデータベースの設計
私はB2B取引アプリケーションを開発しています。これには、さまざまな製品のバイヤーとサプライヤーがいます。
検証、売買の強さ、+ veフィードバックなどに応じて、管理パネルを介してバイヤーとサプライヤーにバッジを割り当てるために使用される「バッジ割り当てモジュール」を開発しようとしています。ユーザーは1つ以上のバッジを獲得できます。
割り当てられたバッジには有効期限が必要です。データベース設計を手伝ってください-必要なテーブルと列は何ですか?
同じロジックを実装しているオープンソース/スターターキットアプリケーションがasp.netにあるかどうかを提案してください。
asp.net - ウェブサイトで多くのファイルをダウンロードするための最良の方法
ユーザーがローカル フォルダーをオンライン フォルダー (ドロップボックスのようなもの) に同期できるようにする Web サイトを設計しています。
ダウンロードと同期を行うためのローカル ツールの開発を回避する方法を見つけようとしています。そして、オンラインでなんとかしてください。
特定のディレクトリ ツリーで複数のファイルをダウンロードすることはできますか? Web サイトは、ローカル ディレクトリへの書き込みアクセスを自由に持つことができますか?
ファイル バッチがかなり大きくなる可能性があるため、zip ファイルはオプションではありません。
編集: 同期は定期的に行われるべきではありません。ユーザーがウェブサイトにログインしたとき。
mongodb - パーソナライズされた類似/非類似ロジック - ビュー、データ、またはサービス層にプッシュする必要がありますか?
クライアントビューまたはデータベースクエリで、いいね/アンいいねボタンを表示するためのロジックが保持される場所についてコンセンサスがあるかどうかを確認したかった. ロジックをクエリ自体にプッシュすると、クリーンで一貫性が保たれますが、投稿のホームページ リストのすべてのクエリをパーソナライズする必要があり、そのリクエストのキャッシュは許可されません。
セットアップ: MongoDb データベース (場合によっては neo4j)、node.js API とアプリケーション サーバー、iOS モバイル クライアントと Web サイト。ほとんどの投稿には 10 程度のいいねが付けられますが、数百のいいねが付けられる投稿もあります。ほとんどのユーザーは 50 ~ 300 件の投稿を気に入り、少数のユーザーは数千件の投稿を気に入っています。
私のユースケース: ユーザーが最近人気のある投稿のリストを閲覧すると、その投稿が既に気に入ったかどうかに基づいて、各投稿の横に「いいね」または「いいね!」ボタンが表示されます。
解決-
アプローチ 1: クエリでユーザー ID をデータベースに渡し、クエリで計算された isLiked プロパティを使用して最も人気のある投稿のリストを返します。
アプローチ 2: クライアント アプリはそのユーザーの高評価 ID をフェッチして同期を維持し、ビューは投稿の特定のリストに対して「いいね」ボタンまたは「いいね」ボタンを表示するかどうかを決定します。投稿のリストは、サーバーまたは cdn にキャッシュでき、パーソナライズは必要ありません。
アプローチ3?残りのAPIサービスレイヤーでそれを行うより効率的な方法はありますか?
java - struts ActionError validation() メソッドで入力ページへの転送に失敗しました
struts-config.xml で:
PackageForm.java (ActionForm クラスを拡張する) 内
私は何を期待しています:
エラーが発生すると、「/packages/pUF.jsp」ページにリダイレクトされます。
何が起こっている:
HTTP エラー 500 が発生しています。
注:私のコントローラーでは、プロパティ「inputForward」の値を設定しています。