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

Web開発は、World Wide Webまたはイントラネット用のWebサイトの開発に関連する作業の広義の用語です。

2
CookieベースのWeb認証のベストプラクティスは何ですか?
私はCGIとPythonを使用して小さなサイドプロジェクトに取り組んでいます(スケーラビリティは問題ではなく、非常にシンプルなシステムである必要があります)。 クッキーを使用して認証を実装することを考えていて、確立されたベストプラクティスがあるかどうか疑問に思っていました。 ユーザーが正常に認証されたら、Cookieを使用して、誰がログオンしているかを判断します。ベストプラクティスによれば、このようなCookieには何を保存する必要がありますか?


3
JavaScriptとWebプログラミングのパラダイムシフト
私の記憶が正しければ、Web開発にJavaScriptを使用することが非常に嫌われる時期がありました。とりわけ、それはユーザーにとってプライバシーとセキュリティの懸念であり、一部の人々はそれをやめたためです。 最近では、JavaScriptを使用しない主要なWebサイトはほとんど見られなくなり、多くのWebサイトはJSなしでは完全に機能しなくなります。それか、SEサイトのように、使いやすさがひどく影響を受けます。 JavaScriptがWeb開発で事実上ユビキタスになった当時と現在で何が変わったのですか?それとも、JSは私の想像の虚構に眉をひそめられ、それはいつもそうだったという私の主張ですか?

4
SVNからWebアプリケーションを実稼働環境に直接展開することは許容されますか
質問 SVNを運用展開に使用しない正当な理由がありますか、それとも単に個人的な好みのケースであり、SVNに対する実際のケースはありませんか? バックグラウンド 私の職場には、SVNでリリースにタグを付けてから、それらのリリースをさまざまなWebサーバーに直接デプロイするsvn coかsvn switch、本番環境に直接組み込むという文化があります。 ビルドおよびデプロイスクリプトまたは何らかのフォームまたは自動デプロイを使用しないと、ドキュメント化されていないため統合環境設定が失われると考えているため、個人的にこれに問題があります。しかし、それ以上に、見過ごされていること、そのheadい頭をまだ育てていないことをすることには隠れた危険があるかもしれないという直感を持っています。 私は、さまざまな環境(ステージング、プリプロダクション、プロダクション)などにコードをデプロイする責任がある運用スタッフに懸念を提起しました。 編集: ビルドとデプロイの意味: たとえば、開発者が特定の環境にweb.config設定を追加する必要がある場合。通常、Web.configはsvnに保持されないため、これらのファイルは、自動ビルドスクリプトの形式なしで手動で更新されます。そのため、それらが失われたり、OPSがリリースのweb.configにフィールドを追加するのを忘れると、問題が発生します。 XMLPokeを使用して特定の環境に適したweb.configを自動的に生成するというビルドスクリプトは、各環境に必要なすべての変更を文書化するバージョン管理可能なスクリプトがあるという点で理想的です。 現在のビルドおよびデプロイ方法 問題のプロジェクトの場合、開発者は手動でリリースをビルドしますが、他のプロジェクトではビルド手順がNANTまたはMSBuildで自動化されています。 ほとんどのプロジェクトのデータベース移行は、DBスクリプト、移行スクリプト(Migrator.NET)、またはCMSパッケージを介して行われます。 CIは通常、チェックインごとにTeam Cityによって行われます。すべてのチケットはブランチで行われ、トランクにチェックインする前に検証と正確性/品質についてピアレビューされるコードレビュープロセスがあります(うまく機能します)。 ただし、実際のコードの展開は、タグ付きリリースのチェックアウトまたはより一般的にはSVNスイッチのいずれかを介して、ほとんど常にSVNを介して行われます。これは、リポジトリをデプロイプロセスの一部として使用しているという点で奇妙に思えます。 通常、構成はあまり頻繁に変更されず、構成ファイルに含まれるのは環境固有の情報のみです。それ以外はすべてデータベースにあります。 これがうまくいくと誤解しないでください。ただし、自動化されたビルドとデプロイを試してみてください。これをRailsとCapistranoで使用し、Cygwin、Nant、SSHを使用した個人プロジェクトにも使用しました。 さらに重要なことは、自動化されたビルドとデプロイを使用するように同僚を変更するには、非常に具体的な有効な引数が必要だということです。 それとも、SVNを使用して本番環境にデプロイすることに対して実際に有効な引数はありませんか?


4
理想的なHTML5 Webアプリケーションの制限はありますか
次の2つの仮定が真であると仮定しましょう。 ユーザーベース全体がどこからでもブロードバンドにアクセスできます HTML5およびWHATWGグループのドラフト仕様全体を一貫して実装する架空のブラウザーXがあり、すべてのユーザーがブラウザーXを使用しています。 商用パブリックデスクトップアプリケーションが必要な商用パブリックHTML5 Webアプリケーションの本質的な制限は何ですか? 追加機能をFlash / Java / SilverLight / etcブリッジに依存せず、追加機能をブラウザプラグインに依存しないプラグインレスWebアプリケーションの制限に興味があります。 適用されない可能性のある制限: データベース?WebSQLとindexedDBがあります。 ファイルIO?読み取りと書き込みの両方を行うHTML5 File APIがあります。 速度?最近のJavaScriptエンジンの競合により、ブラウザーの速度は遅くなりません。ネイティブC ++は、ChromeのV8エンジンよりもわずか3倍高速です。 開発ツール?Webは成熟しており、リストするには数が多すぎるツールが利用できます。 クローズドソース?はい、すべてのコードはオープンソースです。これは両刃の剣であり、クローズドソースまたはオープンソースコードの使用について多くの意見があります。個人的には、オープンソースコードの利点が欠点を上回ると考えています。 JavaScript / HTML5?「私は個人的にHTML5とEcmaScriptは恐ろしい開発プラットフォームだと思う」などの議論は数えません。 既知の制限: リアルタイム/セキュリティ(極秘)の重要なコードはWebにも属していません。CやC ++などの低レベルで高度に制御可能な言語で作成する必要があります。 コンピューターに接続されている外国のサードパーティ製ハードウェアとやり取りする必要があるツールは、Webアプリケーションと通信するのに苦労します。 Webに属さないプログラムのスイートもあります。オペレーションシステム、ドライバー、サーバーソフトウェア、低レベルAPI。私はそれを承知していますが、それらを「商用公開」アプリケーションとして分類していません。これらはコンピューターにプリインストールできるソフトウェアのタイプです。 余談ですが、2つの仮定は恐ろしく非現実的ですが、5/10/20/30年でそれらを達成するかもしれません。私は、アプリケーションのタイプと、それらがWebと完全に非互換になるアプリケーションの機能に興味があります。 動機: Googleアプリケーション Microsoft Office365 Webアプリケーションリスト Adobe Aviary ポイント: デスクトップアプリケーションが有効なソリューションである一連の問題を考えます。 Webアプリケーションが有効なソリューションではないのはなぜですか? Webアプリケーションをソリューションとして使用できるかどうかを確認するにはどうすればよいですか。 私は、Webアプリケーション(インターネット接続とブラウザーサポート)の主な問題を、それらが存在しないと断言することで除去しようとしました。 余談ですが、HTML5オフラインアプリケーションとModernizrは、これら両方の問題の解決に向けて順調に進んでいます。 Webアプリケーション開発のその他の困難は何ですか?

5
Web用のPHPで開発する場合、Linuxにはどのような利点がありますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 私は友人と大きなPHPプロジェクトを始めようとしています。PHPを使用するのは初めてで、とても人気があるのでLinuxでの開発を試してみるべきかどうか疑問に思っています。 私はLinuxで過去の経験があり、vimを知っているのでエディターの選択は難しくありません(VS.PHPを見て、変更から私を元に戻しています)。 PHP(または任意のWeb言語)を開発するときにLinuxを使用すると、利点がありますか?

5
RESTfulデザインをWebサイト全体に適用していますか?
これらはすべて非常に新しいものに出くわすかもしれませんが、完全にRESTfulなWebサイトの設計に頭を包もうとしています。私は、ユーザー、写真、ブログ投稿などのようなものにRESTfulデザインを適用することを理解しています。なぜなら、それらは「オブジェクト」のようなものだと思うからです。 しかし、「私たちについて」ページについてはどうでしょう。それはどのようなリソースですか?それは言葉のRESTfulな意味でのリソースでもありますか?また、「http://www.example.com/」というURLにアクセスするとします。どのリソースを要求していますか?インデックスリソース?

6
再現性のない/ランダムに発生するバグを修正するにはどうすればよいですか?
数日前にバグが発見された多言語のウェブサイトがあります。他の言語のデータを他の言語で表示し、英語などのデータの混合も選択されていましたが、ページにも他の言語のデータが表示されていました。それはまれですが、ウェブサイトに存在します。これは常に発生するわけではないため、コードを調べても役に立ちません。 問題をタイムリーに見つけるための提案はありますか?ここで戦略を求めています。

4
どのJavaベースのWeb UIフレームワークを使用しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 改札 クリック GWT ヴァーディン 私が理解しているように、これらのフレームワークはすべて、多くのhtml / javascriptを実行することなく、java(すべての利点)を使用してguiコンポーネントを作成できるようにします。 技術的な要因を考慮するだけでなく、急速に人気を集めているものがあるかどうかも聞きたいです。特定のフレームワークがパックのリーダーになりつつありますが、これも決定に影響します。

2
パンくずリストは、WebサイトやWebアプリをナビゲートするための実行可能な方法ですか?
現在、次の種類のWebサイトとアプリに取り組んでいます。 Amazonのようなeコマース 予約システム(部屋の空室状況をチェックするホテルの受付係を考えてください) Freshbookのような請求書管理 アマゾンでは、パンくずリストに気づかず、左パネルのファセットだけに気付きました。ただし、neweggはブレッドクラムとファセットの両方を使用しています。 ホテル予約や請求書管理などの管理システムでは、通常、システム全体で検索する一意の予約番号または顧客番号があります。各予約は、たとえば次のようにさらにセクションに展開できます。 Reservations > Reservation #123456 > Guests > Room > Airport pickup > Payment 一意の予約ページごとに、パンくずリストを使用して、サイトに対する現在のページの位置を示しています。それはそのような情報を提示するのに良い方法ですか?タブやその他のテクニックを使用する必要がありますか?

7
不信のクライアントと連携することは可能ですか[非公開]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 私たちのジュニア開発者の1人に新しいクライアントが割り当てられています(まだクライアントを持っていませんが、彼のニーズを満たすことができるかどうかを確認するために彼とまだ協力しています)サーバーにアクセスせずにプロジェクトで作業を行う。 私は、彼が外部委託したいくつかのオフショア会社によって以前に彼のコードが盗まれたことが判明したクライアントと直接話をしました。これは私をより共感しましたが、私はまだこれについて複雑な感情を持っています。 一方で、私たちはすべてが悪いリンゴではないことをクライアントに証明したいと思います。また、彼と良い仕事をすれば、彼のすべてのプロジェクトのために私たちを雇う忠実なクライアントを得ることができます。これは以前に聞いたことはありませんが、私たち全員が認めたいと思うよりも頻繁に起こると思います。 一方、私は彼と一緒に仕事をすることをためらっています。なぜなら、展開の時間は悪夢であり、私のキャリアや教育のどこでも彼のようなクライアントと仕事をする方法を教えてくれた場所はないからです。私(または後輩の開発者)は、ソースを展開するためにソースをどう処理するかについて詳細な説明を書く必要があります。これは、1時間ですべてを展開してテストすることができて面倒な負担です。 私が言ったように、私は以前これに対処する必要はありませんでした(私たちは非公開に署名していますが、明らかにオフショア会社も私たちの前に署名しました)。私たちは完全に予約されていないので、すぐに代わりになるわけではありませんが、仕事を求めているわけでもありません。 もう1つの側面は、エクスペリエンス自体が私たちにとってやりがいのあるものになる可能性があることですが、すぐに同様のクライアントを獲得する可能性すらあるので、経験する価値があるということです。そのようなクライアントに準拠することさえ期待されていますか? それで、私はこれについて直接の経験がなく、それが学校で確実にカバーされなかったので、クライアントとのより長い経験を持つ人々は、このような不信のクライアントにどのように対処しますか?あなたも仕事を受け入れますか?

5
ソフトウェアが「オープンソース」ではなく「利用可能なソース」であることはあなたにとって重要ですか
おそらく、OSIによって公式に承認されたオープンソースライセンスのリストをご存知でしょう。最も注目すべきは、GPL、MIT、[お気に入りのライセンスをここに挿入]だと思います。 私は最近、オープンソース(作成者がすべてのソースコードを利用可能にしました)であるが、それらの公式ライセンスの1つでは公式にオープンソースではないプロジェクトに出会いました。 ソースをリリースしましたが、将来ソースをリリースする約束はしませんでした。 変更の提案は許可されていましたが、パッチを受け入れることは約束されておらず、外部からパッチを当てたバージョンの外部配布は許可されていませんでした。 商用プロジェクトまたは有料プロジェクトでのソフトウェアの使用は許可されていましたが、ソフトウェア自体の販売は許可されていませんでした。 私たちはそれを考えるのが好きなので、オープンソースではなく「利用可能なソース」と呼ぶことができると思います。 会社の経営陣がこのソフトウェアでビジネスをしたくない理由を私は見ることができます。彼らはそれをフォークすることも、販売することも、ソフトウェアの独自のバージョンを作成し、配布または販売することもできません。 しかし、このソフトウェアを使用しているソフトウェアエンジニアリングチームの一員として、あなたにとって重要なことでしょうか?私はまだそれで仕事を終わらせることができます、私は私が支払われているプロジェクトでそれを使用できます(しかし、私はソフトウェア自体を販売することはできません、とにかくすることのビジネスではありません)、そして私はできますコードに変更を加えて、ニーズに応じて異なる動作をするようにします(ただし、それらの変更を公開することはできません)。また、それらの変更を公式に他の人が利用できるようにしたい場合、承認はプロジェクト自体に委ねられ、それらを公式リリースに組み込むかどうか。 したがって、この「利用可能なソース」ソフトウェアに基づいてビジネスを行いたい企業はそれができないことを知っていますが、ソフトウェアエンジニアリングチームの誰かとして、それらの違いはあなたにとって重要ですか、それとも関連性が低いと思われますか? 他の人がこれについてどう思うか興味があります。

2
価格設定製品のデータベーススキーマ(パッケージ、プロモーション、数量ベース、期間限定オファー…)
製品ミックスによって価格が異なる会社の新しいPOSに取り組んでいます。 すべての製品に基本価格があります。 私の問題を説明するために、私は次の情報を使用します: Product Category Price A 1 45 B 1 70 Q 2 20 R 2 27 S 2 15 X 3 17 Y 3 22 Z 3 16 会社にはパッケージがあります(パッケージ「コンボ」など)。製品AまたはBの場合、QまたはRのいずれかを選択し、X、Y、またはZのいずれかを選択すると、20ドルの割引が適用されます。 ケースA:注文時にベース商品に追加する場合があります。たとえば、商品Aではなく、商品Qと商品Pを追加して、割引価格のパッケージを作成します。次に、1つのRと1つのZを持つ1つの製品Bが必要であると追加します。 ケースB: 1 Aと2 B、2 Q、1 S、2 Xと1 Zを追加する場合があります。「コンボ」パッケージで規定されているルールに従って、Sはコンボアイテムではないため、2つのコンボのみが適用されます。 その他のプロモーションは数量に依存するため、Bを2つ購入すると20%オフまたは時間に依存し、午後5時以降または午前10時前の場合は10%オフ前にのみ有効です。別のプロモーションは、最後の購入がいつ行われたか、またはY期間に$ Xを超えて購入したかどうかによって異なります。 私の問題: 1)さまざまな要件を持つさまざまなタイプのプロモーションを追加するのに非常に柔軟な方法で、さまざまなパッケージまたはプロモーションを作成できるように、テーブルをどのように構成しますか? 2)ケースB(またはケースAとケースBの組み合わせ)のように注文した場合、クエリを構造化して、注文に含まれる製品の組み合わせを確認し、それに応じて価格/説明を更新する方法?最終的に、このクエリの最良の結果は、どのパッケージとプロモーションが要件を満たし、その順に顧客に最もメリットがあるかを返します(つまり、注文したものがプロモーション1と3の要件を満たしますが、プロモーション3の方が安価です)。複数のプロモーションで機能する必要があります)。 助けてくれてありがとう! アップデート#1 目前の問題をよりよく説明し、これまでに行った作業を更新して問題を解決するために、問題に影響を与えるエンティティと属性に限定された製品モデルのERDを含めています(つまり、ここでは在庫が機能していないため、在庫はありません)エンティティが存在します)。 この質問に影響を与えるエンティティと属性からのサンプルデータも含めています(データの読み取りを簡単にするために、外部キーの代わりに名前/説明を入れています)。 これは、コンボの例を示すフローチャートへのリンクであり、テーブル構造を理解するための高速で視覚的な方法です。 …

4
SaaSアプリでのユーザーセッションタイムアウトの処理-いくつかのアプローチの説明
これは重複としてマークされる可能性が高いことを知っていますが、探しているものを正確に見つけることができませんでした これは一般的な問題であり、明確に定義されたベストプラクティスソリューションがあるはずです。 バックグラウンド 単一ページのSaaSアプリ、ドラッグアンドドロップがたくさんあり、ユーザーは一定期間サーバー通信がなくてもアプリを操作できます サーバーセッションは、非永続的なセッションCookieを使用して、ユーザーオブジェクトのみを保持します X時間後にサーバーでセッションが期限切れになる ログイン時にのみ読み込まれるもの 問題 ユーザーはアプリで作業し、完了してもログアウトせず、ブラウザーを開いたままにします ユーザーがX時間を超えて戻ってきた(セッションがサーバーで無効になっている) ユーザーはサーバー接続を必要とせずにアプリと対話します(ドラッグアンドドロップ、テキスト編集など) 次のサーバーとの対話時のみ(自動保存がないと仮定)、ユーザーはログインページにスローされ、一部の作業が失われます 可能な解決策 私が考えているいくつかの解決策があります。他に解決策があるかどうか、そして根本的に何か問題があるかどうかを聞きたいです。 1.ユーザーをログアウトしないでください どうやって?長いセッションを維持する、永続的なcookieを維持する、またはjavaScriptの「キープアライブ」ping 長所:ユーザーは何も心配する必要がなく、問題を修正します 短所:PCIに準拠せず、安全ではなく、開発の変更が必要です。たとえば、ユーザーのログイン時にのみセッションに読み込まれるものは、pubサブモデル(イベントの変更をリッスンする)に移動するか、キャッシュタイムアウトを持つ必要があります。 2.ローカルストレージ どうやって?ログアウトした場合、新しいローカルストレージを使用して状態を一時的に保存し、ログインページにリダイレクトし、ログイン後も保持する 長所:セッションタイムアウトの処理だけでなく、「オフライン作業」サポートのベース 短所:実装が難しく、データツリーの状態マージを行う必要がある、すべてのブラウザがサポートするわけではない 3.自動保存 モデルを変更するすべてのユーザーアクションは、すぐに(またはクライアント側のキューを介して)永続化する必要があります。たとえば、ユーザーがチェックボックスをオンにしたり、テキストフィールドを変更したり、何かをドラッグアンドドロップしたりすると、変更が永続化されます。 どうやって?MV **フレームワーク(Backbone.js / Knockout.js / Ember.js / Angular.jsなど)を使用してモデルをバインドし、変更を維持します。 長所:クリーンなソリューションのようです。ユーザーがアクティブである限りセッションはアクティブであり、永続化せずにクライアント側の作業は行われません。 短所:セッションタイムアウトが失われた後、ユーザーが最後に行ったアクション。 4.セッションの有効期限が切れた後、ユーザーをログアウトします これにはいくつかのアプローチがあります サーバーに「セッションの期限が切れています」と尋ねます。これは、サーバーへの単なる質問がセッションを延長する(タイムアウトを再開する)ため、ちょっとしたキャッチ22 /シュレディンガーの猫です。 どうやって?そのような質問をサポートするサーバーを持っているか(私は知りませんが、Javaランドから来ます)、またはセッションIDのテーブルと最終アクセス時間を手動で保持し、セッションを渡すことによってサーバーに問い合わせることができますCookieの代わりにパラメーターとしてIDを使用します。これが可能かどうかはわかりませんが、危険で、安全でなく、設計が間違っているようです。 長所:サーバーにそのようなネイティブサポートがあった場合、クリーンで正当な質問のように聞こえます(ユーザーXがまだセッションを持っているかどうかを尋ねます) 短所:サーバーがそれをサポートしていない場合(そして、サーバーやフレームワークにこの機能があるかどうかはわかりません)、回避策には潜在的に大きなセキュリティリスクがあります。 私が聞いた1つの回避策は、サーバー側での短いセッションと、最大数のpingを持つキープアライブクライアント側のpingです。 どうやって?サーバー上の短いセッション、クライアントはすべてのsessionTimeOut / 2にpingを実行し、最大再試行回数はYです。 長所:問題の修正の種類、迅速で汚い 短所:サーバーに任せるのではなく、自分でセッションの更新を処理するハックのように感じる クライアント側タイマー どうやって?クライアント側にタイマーを設定し、すべてのリクエストで再起動してサーバーのタイマーと同期させ、最大サーバーセッションタイムアウトからパディングを差し引いた値に等しくします。ユーザーがサーバーにリクエストを送信していない後、UIに「セッションは間もなくタイムアウトします。続けますか?」(あなたがオンラインバンキングに持っているように) 長所:問題を修正します …

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