タグ付けされた質問 「web-applications」

Webアプリケーションとは、インターネットまたは内部ネットワーク(イントラネット)を意味する「Web」を介してアクセスされるアプリケーションです。

14
Webアプリケーションをバージョン管理する必要がありますか?
最近、Webアプリケーションのバージョン管理について同僚と話し合いました。 私はあなたがそれを全く必要とは思わない、そしてあなたがあなたの最新リリースがライブであることを確認するために健全性チェックが欲しいだけなら、私はおそらく日付(YYMMDD)で十分だと思う。 私は基地を離れていますか?ポイントが足りませんか?Webアプリケーションのバージョン番号を使用する必要がありますか

14
ネイティブJavaScript開発にはどのような利点がありますか?[閉まっている]
ネイティブJavaScriptと比較した場合、jQueryの開発がどれほど簡単かを考えると、jQueryのようなライブラリを完全に見捨てる理由は何ですか? これは、jQueryに制限があるのか​​、遅いのですか?つまり、jQueryがネイティブjavascriptと比べて非常に簡単な場合、人々はまだ純粋なjavascriptを使用しなければならない理由は何ですか?

4
MVC / RESTは、他のユーザーに属するリソースに対して403または404を返す必要がありますか?
リソースベースのサイト(MVCアプリケーションやRESTサービスなど)で作業する場合、クライアントGETがアクセスできないリソースをクライアントが試行する場合、主に2つのオプションがあります。 403、クライアントが無許可であると言う; または 404は、リソースが存在しない(または見つからなかった)ことを示します。 一般的な知恵と慣習は真実で応答することであるようです-つまり、403。しかし、私はこれが実際に正しいことかどうか疑問に思っています。 安全なログインシステムは、ログイン失敗の理由を決して知らせません。つまり、クライアントに関する限り、存在しないユーザー名と誤ったパスワードの間に検出可能な違いはありません。これの目的は、ユーザーID(またはさらに悪いことに、電子メールアドレス)を検出できないようにすることです。 プライバシーの観点からは、どのリソース誰かが伝えを見て、リアリティショー(サバイバーが、私は思う)の受賞者を出した前記私は事件を思い出してる404を返すように多くの方が安全と思われるしなかっ上に存在しますサイトvs. 403がシリアル番号やアカウント番号などの機密情報を提供する可能性があることを心配しています。 404を返さない説得力のある理由はありますか?404ポリシーは他の場所でマイナスの副作用を引き起こす可能性がありますか?そうでない場合、その慣行はより一般的ではないのはなぜですか?

6
なぜ人々はDBALではなくREST APIを行うのですか?
過去2つの会社では、Webアプリを介してデータを照会するためにREST APIを使用していました。すなわち。Webアプリに直接SQLを実行させる代わりに、REST APIを呼び出し、SQLを実行して結果を返します。 私の質問は...なぜこれが行われるのですか? 第三者にさらされるとしたら、理解できました。完全なDBよりも制限されたREST APIを公開する方が適切です。しかし、これらの企業の両方ではそうではありません。 これらのREST APIを使用すると、DBMSを簡単に切り替えることができるようになりました。しかし、それはデータベース抽象化レイヤー(DBAL)のポイントではありませんか?ORMをDBALとして使用するか、生のSQLを記述し、必要に応じてDBALにDB固有のものを変換させることができます(たとえば、MySQLのLIMITをMSSQLのTOPに変換します)。 いずれにせよ、それは私には不要のようです。また、問題の診断も難しくなると思います。Webアプリのレポートが間違った数値を提供している場合、SQLクエリをダンプすることはできません。RESTURLをダンプしてから、REST APIとして機能するプロジェクトに移動して、そこからSQLを取り出す必要があります。そのため、診断プロセスの速度を低下させる間接的な余分なレイヤーです。

5
中央データベースなし
非常に機密性の高いデータ(銀行/カードの詳細よりも機密性の高いデータ)を扱うWebサイト/モバイルアプリ/デスクトップアプリを構築しようとしているクライアントがいます。データは機密性が高いため、中央のデータベースに保存したくありませんが、アプリの同期が必要です(モバイルアプリにデータを追加して、デスクトップアプリと同じデータを参照してください)。 これを行うための良い、信頼できる方法を考えることはできませんし、1つあるかどうかはわかりません。それが私がここにいる理由です。誰も私がこのデータをどのように扱うことができるか知っていますか? 私が考えていた解決策の1つは、アプリ間で何らかの形で同期するクライアント側のデータベースを各アプリに持たせることでした。

4
Webアプリケーションで競合状態を防ぐ方法
アリスとボブが両方とも商品リストを編集しているeコマースサイトを考えてみましょう。アリスは説明を改善し、ボブは価格を更新しています。同時にAcme Wonderウィジェットの編集を開始します。ボブは最初に終了し、製品を新しい価格で保存します。アリスは説明を更新するのに少し時間がかかり、完了すると、新しい説明で製品を保存します。残念ながら、彼女は価格を古い価格で上書きしますが、これは意図していませんでした。 私の経験では、これらの問題はWebアプリでは非常に一般的です。一部のソフトウェア(Wikiソフトウェアなど)にはこれに対する保護があります-通常、2番目の保存は「編集中にページが更新されました」で失敗します。しかし、ほとんどのWebサイトにはこの保護がありません。 コントローラーメソッド自体がスレッドセーフであることに注意してください。通常、データベーストランザクションを使用します。これにより、アリスとボブがまったく同じ瞬間に保存しようとしても、破損を引き起こさないという意味で安全になります。競合状態は、アリスまたはボブがブラウザに古いデータを持っていることから生じます。 このような競合状態をどのように防ぐことができますか?特に、私は知りたい: 使用できるテクニックは何ですか?たとえば、最終変更時刻の追跡。それぞれの長所と短所は何ですか。 役立つユーザーエクスペリエンスとは何ですか? この保護はどのフレームワークに組み込まれていますか?

7
ビジネスロジックがビューに忍び寄らないようにすることは可能ですか?
私は過去3年間、個人および職場の両方でいくつかのWebアプリケーションプロジェクトを開発してきましたが、少なくとも一部のビジネスロジックがアプリケーションのビューレイヤーで終了する可能性があるかどうかはわかりません。 ほとんどの場合、「ユーザーがオプションxを選択した場合、アプリケーションはユーザーがyの情報を提供できるようにする必要があり、そうでない場合は情報zを提供する必要がある」などの問題があります。または、モデルにいくつかの変更を適用する必要がありますが、ユーザーが明示的に要求するまでコミットしないAJAX操作を実行します。これらは私が遭遇した最も単純な問題の一部であり、ビュー内の複雑なロジックを回避する方法がわかりません。 MVCについて説明した本のほとんどは、通常、サーバー上のデータを更新して表示するCRUD操作など、非常に簡単な例を示していますが、CRUDはほとんどのリッチアプリケーションには当てはまりません。 ビジネスロジックをまったく持たないビューを実現することは可能ですか?

4
Amazonのような会社は、データベースレイヤーへのアクセスのボトルネックをどのように回避しますか?
Amazon(または他の大規模なeコマースWebアプリケーション)のような大規模なオンラインストアを運営しており、倉庫内の物理的なアイテムの量が限られている会社を想像すると、どのように最適化できますか?単一のボトルネック?もちろん、レプリケーションを備えた多数のデータベースと、負荷を個別に処理している多くのサーバーが必要です。ただし、複数のユーザーが別々のサーバーでサービスを提供しており、両方が同じアイテムをカートに追加しようとする場合、残りのアイテムは1つだけであるため、そのアイテムの数量には「真実の源」が必要です。これは、少なくとも、単一のアイテムの製品情報にアクセスするすべてのユーザーが、同じデータベースにシリアルでクエリを実行する必要があるという意味ではないでしょうか? 分散コンピューティングを使用して大規模なストアを運営し、インベントリ情報を含む単一のDBに大きなボトルネックを作成しない方法を理解したいと思います。

7
非リアルタイムWebアプリのnode.jsを避ける正当な理由はありますか?
Node.jsがリアルタイムWebアプリにどれほど優れているか、ソケット、Comet、AJAXの重い通信などを必要とするものについて、多くの話を見てきました。イベント駆動、非同期、スレッド駆動のモデルは、オーバーヘッドの少ない同時実行にも適していることを知っています。 また、Node.jsのチュートリアルでは、より単純で「伝統的な」非リアルタイムアプリ(たとえば、アプリ開発を学ぶ人にとって標準的な「Hello World」と思われる標準的なブログの例)を見ました。また、node-staticを使用すると、静的アセットを提供できることも知っています。 私の質問は次のとおりです。クラシファイド、フォーラム、前述のブログの例、または社内ビジネスアプリケーション用に作成するCRUDアプリなど、従来のWebアプリでNode.jsを使用しない理由はありますか。ファンキーなリアルタイムのものに優れているからといって、より安定した使用を禁じているのでしょうか? 私が考えることができるのは、最初のうちは、成熟したライブラリの不足です(ただし、変化しています)。 (私が求めている理由は、ほとんどの言語の切り替えのインピーダンス不整合を乗り越えるために、私はNode.jsのためにPHPを捨てる検討しているということですが、また、私は検証コードやその他もろもろを再利用することができるように。私の超自我のために私を訓戒選びます仕事に最適なツールですが、包括的な兵器庫を得るために15の言語とそのすべてのユーザーランドライブラリを学ぶ時間はあまりありません。また、Node.jsがPHP /将来的には、大量のトラフィックについて考え始めなければならないApache。 [編集]これまでの回答に感謝します。答えを選択する前に、他の誰かが体重を測定するかどうかを見たいだけです。@Raynosからの回答は私が考えていることを確認し、コメンターからのリンクは思考のための良い食べ物を提供しましたが、「ノードXを問題に使用しないでください」など、ノード固有の回答があるかどうかを確認したいです'。(CPUの高いタスクに加えて、私はすでにそれを知っています:-)

3
単一ページアプリでのブラウザーキャッシュの処理
単一ページアプリのWebブラウザキャッシュを適切に処理する方法を見つけようとしています。 私はかなり典型的なデザインを持っています:SPAを実装するいくつかのHTML、JS、CSSファイル、およびSPAによって消費されるJSONデータの束。更新をプッシュするときに問題が発生します:サイトの静的部分とJSONを生成するコードを同時に更新しますが、クライアントブラウザーには静的部分がキャッシュされていることが多いため、古いコードは新しいデータを処理しようとし、 (行われた変更に応じて)問題が発生する場合があります。(特に、IEは、再検証せずにキャッシュされたJSを使用することについて、ChromeまたはFirefoxよりも積極的です。) これを処理する最良の方法は何ですか? JSONの変更に後方互換性があることを確認し、妥当な時間内にブラウザーのキャッシュが期限切れになると仮定します。 静的JSとJSONの両方に何らかのバージョン番号を埋め込み、window.location.reload(true);一致しない場合は実行します。 ヘッダーの適切な組み合わせ(must-revalidateまたはno-cache何でも; ソース はこれを行う方法によって異なります)を把握して、サイトをロードするための余分な往復を意味する場合でも、ブラウザーがすべてのロードで常にすべてのリソースを再検証するようにします。 更新をプッシュするときに静的コンテンツが期限切れになるように、キャッシュコントロールと期限切れヘッダーをマイクロ管理します。 他に何か?

3
WADLを使用してRESTful APIを記述する必要がありますか?
適切にRESTfulなアプローチを広範に使用するプロジェクトに着手しようとしています。つまり、HATEOASを使用し、クライアントによる一般的な調査を可能にする方法でリソースを提供します。 クライアントアプリケーションをさまざまな言語で自動的に生成できるように、エンドポイントの説明を確実に提供したいと思います。SOAPベースのWebサービスにはWSDLを使用できること、およびRESTで使用されているHTTP動詞の定義を強化するWSDL2があるようです。しかし、その有用性をめぐって多くの記事が行き来しています。 したがって、外部コードジェネレーターがWebアプリケーション用のクライアントを迅速に構築できるようにWADLを使用する必要がありますか、それとも期待されるより良い標準がありますか?

6
IT要件を提案するのは開発者の仕事ですか?
私は、終わりに近づいているWebアプリケーションに取り組んでいる唯一の開発者です。現在、2、3か月後にライブにすることを検討しています。 これは非IT企業向けのWebアプリケーションです。彼らは独自の社内ITチームを持っていますが、ライブサーバーのハードウェア要件はどうなるかを尋ねられました。RAM、32ビットまたは64ビット。 社内のITチームがこれを行うべきではありませんか、それともプロジェクトに取り組んでいるのは私だけなので、プロジェクトのパフォーマンスに影響を与える可能性のある特定のハードウェア要件を彼らに知らせるのは私の責任ですか? 私がこの質問をしているのは、これをやったことがないからです。私はいつもサーバーを与えられ、その上にアプリを展開するように頼まれました。サーバーの構成などを心配することはありませんでした。

4
webappで同じデータを編集している複数のユーザーをどのように処理しますか?
私が取り組んでいるプロジェクトは、複数のユーザー間でタスクリストを管理するWebアプリケーションを作成することです。これは、承認されたユーザーによってタスクアイテムが配布されるマスタータスクリストです。各ユーザーは、割り当てられたタスクにログインして表示するための独自のアカウントを持っています。複数のユーザーが単一のタスクを共有することは可能です。 次の状況を処理する方法の全体的な概念にさらに取り組んでいるので、プロジェクトの詳細をここから省こうとしていますが、それが役立つ場合は、RequestFactoryを実装したJava、EclipseLink、GWTを使用しています。データベースはPostgreSQLです。 したがって、私が調整しようとしている概念的な問題は次のとおりです。 複数のユーザーに共通の単一のタスクが何らかの方法で変更された場合(タスクの完了、削除など)、このタスクを持つすべてのユーザーのタスクリストが更新されます。この機能の実装を支援する設計パターンはありますか? 私が調べたパターンには、ObserverとMediatorがあります。これらについて検討すべき他のパターンはありますか? 2人のユーザーが同じタスクを同時に変更しているとします。 まず、そのような状況が発生するのを許可する必要がありますか、それとも誰かが変更を行うまでロックする必要がありますか? 次に、ロックをかけない場合、どの変更を受け入れるかを調整するにはどうすればよいですか?これには、ユーザー1がデータを送信でき、ユーザー2が更新されたデータを受信する前に、先に進んで変更を送信した可能性があるため、1の状況が含まれます。 このWebアプリの複数のインスタンス間でデータを適切に同期する方法について提供できるガイドポイント、アドバイス、またはヒントを本当に探しています。とても感謝しています!

4
APIを作成するとき、小さな関数と多くの呼び出し、またはいくつかの呼び出しと大きな関数に固執する必要がありますか?
私が管理しているRailsプラットフォームがあります。その上に構築された多くの異なるWebアプリケーションがあります。ただし、現在、クライアントは、ユーザーがサイトにアクセスできるようにするためにAPIを要求していますが、自動化されたタスクの一部を利用しています。 このプラットフォームは、保険アプリケーションを構築するために使用され、オンラインでの購入を可能にし、保険契約に関連するドキュメントをダウンロードする方法を提供します。 APIを構築するときの私の質問は次のとおりです。 私は多くのことをしなければならない場合は、のようなvalidate、作成user、user profileおよびpolicy、ほとんど同時に。4つの別々のAPI呼び出しを行い、クライアントに4つの呼び出しをビルドさせる必要があります。または、多くのパラメータを除いて、クライアントを検証し、これらの3つすべてを同時に作成し、クライアントの物事を単純化する1つの呼び出しが必要ですか? この場合、クライアントは必要な情報をすべて同時に取得するため、アプリケーションに自然なフローがあり、一時停止してプラットフォームにAPI呼び出しを行うことができないようです。 以前は多くのAPIを使用してクライアント側にいたことがありますが、私の直感は、クライアントにとってできるだけ単純にし、1回だけ呼び出しを行うことです。ただしfunctions、これによりAPI がかなり大きくなり、私もどちらのファンでもありません。 私はこれに取り組むことをどのように提案しますか? 注として、私はクライアント側で複雑なAPIを実装する能力にあまり自信がありません。

4
体系的にプログラミング言語を選択する[非公開]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 言語を選択するための方法論を探しています。私は言語について意見を求めているのではありません。私は、ショップの現在の言語を他の利用可能な言語と比較するプロセスを任されました。弊社はウェブ開発ショップです。 当社のCEOは、利用可能なすべてのWebベースの言語、それらが派生した親言語(たとえば、jspはjavaから、c / c ++から)についての完全なホワイトペーパーを求めています。特定の言語のすべての重要な要素とその特定の言語の欠点を含むマトリックスを作成する必要があります。言語はプラットフォームによって制限されていますか、関数型プログラミング、手続き型またはオブジェクト指向向けに設計されていますか?または、プログラミングパラダイムで使用できますか? また、特定の言語の人材プールのサイズや、そのプールの給与の中央値など、技術的ではない情報も必要です。マーケットプレイスは私たちの選択をどのように見ますか? これらすべてを理解するのに役立つコンサルタントを探し始めましたが、ほとんどのコンサルタントは開発のバックグラウンドから来ていることがわかりました。多くの場合、答えは「xxxは最高の言語だからです。過去n年間で最も多く使用してきましたが、私を失望させたことはありません。フロントエンドにyyyを追加し、zzzライブラリを使用できます」 私はこのタスクに圧倒されており、CEOが求めているものを考えると、学界の世界を見て、実際の開発経験のない教授を雇って私たちを「教える」ことが最善の行動であると感じていますすべての可能な言語について。 他の誰かがこの演習を行わなければなりませんでしたか?持っている場合、プロセスを実行するために使用した手順や方法論を共有できますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.