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

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

4
TDD-アウトサイドインとインサイドアウト
アプリケーションをOutside Inで構築することとTDDを使用してInside Outで構築することの違いは何ですか? これらはTDDとユニットテストについて読んだ本です: テスト駆動開発:例による テスト駆動開発:実用ガイド:実用ガイドMicrosoftでの 高品質PHPフレームワークとアプリケーションの開発のための実世界ソリューション NET xUnitテストパターン:テストコード のリファクタリングユニットテストの技術:.Net Growing Object-Oriented Softwareでの例、テストによるガイド ---> JAVAは私の主要言語ではないため、これを理解するのは非常に困難でした:) それらのほぼすべてがTDDの基本と単体テストを一般的に説明しましたが、アプリケーションを構築するさまざまな方法についてはほとんど言及しませんでした。 もう1つ気づいたのは、これらの書籍のほとんど(すべてではないにしても)が、アプリケーションの作成時に設計段階を無視していることです。彼らは、テストケースを迅速に記述し、設計を単独で出現させることに重点を置いています。 しかし、私は人々がTDDにアプローチする方法を議論したxUnitテストパターンのパラグラフに出会いました。Outside InとInside Outの 2つの学校があります。 悲しいことに、この本はこの点について詳しく説明していません。これら2つのケースの主な違いは何かを知りたいです。 それらのそれぞれをいつ使用する必要がありますか? 握りやすいTDD初心者には? 各方法の欠点は何ですか? このトピックを具体的に説明している資料はありますか?

19
大規模サイトでのバックグラウンドタスクのサービス
StackOverflowの興味深い問題を扱っています。 私たちには、「すぐにやる必要がある」小さなタスクがたくさんあります。例は、「関連する質問」リストの更新です。過去に行ったことは、これらのタスクを一部のユーザーのページロードにピギーバックすることです。 これは決して理想的ではありませんでしたが、それほど目立ちませんでした。SOが1,000,000の疑問符を通過したので、それらの不運なユーザーはそれを感じ始めています。 自然な解決策は、これらのタスクを実際にバックグラウンドにプッシュすることです。私が検討しているこれを行うには2つの広い方法があります。 1. IISでカスタムスレッドプール/ワークキューとして 基本的に、IISに干渉しないようにいくつかのスレッド(非ThreadPool)をスピンアップし、Funcsを入れているコレクションにサービスを提供します。 ここでの大きな利点はシンプルです。マーシャリングについて心配する必要も、外部サービスが起動して応答することを確認する必要もありません。 また、すべての共通コードにアクセスできます。 欠点は、バックグラウンドスレッドを使用しないことです。私が知っている異議はすべて、IISの飢star(ThreadPoolを使用している場合)とスレッドのランダムな消滅(AppPoolのリサイクルのため)に集中しています。 ランダムスレッドデスを非問題にするための既存のインフラストラクチャがあり(基本的にタスクの検出は中止されています)、スレッド数の制限(および非スレッドプールスレッドの使用)も難しくありません。 IISプロセスのスレッドプーリング/ワークキューに他の異議がありませんか? ここでは実際には対処されなかったため、StackOverflowに移動しました。 2.サービスとして サードパーティのソリューション、またはカスタムソリューションのいずれか。 基本的に、プロセスの境界を越えて何らかのサービスにタスクをマーシャリングし、それを忘れます。おそらく、生のSQL +接続文字列の一部のコードをリンクしている、または制限しているのでしょう。 プロは、これを行うための「正しい方法」であるということです。 短所は、できることが非常に制限されているか、このサービスをコードベースと同期させるために何らかのシステムを作成する必要があることです。また、監視とエラーログのすべてをなんらかの方法で接続する必要があります。これは、「IIS内」オプションで無料で取得できます。 サービスアプローチには他の利点や問題がありますか? 簡単に言えば、アプローチ#1を実行不可能にする予測不可能で克服できない問題がありますか。もしそうなら、アプローチ#2を検討する必要がある優れたサードパーティサービスはありますか。

6
パフォーマンスを偽る隠されたAJAXリクエストはどれほど安全ですか?
隠されたAJAXリクエストとは何ですか? ユーザーのアクションがすぐに発生するように見えるように設計された非表示のAJAXリクエストの使用が増加していることに気付きました。このタイプのAJAXリクエストを非ブロッキングと呼びます。これは、ユーザーに発生を認識せずに行われたAJAXリクエストであり、バックグラウンドで実行され、操作はサイレントです(AJAX呼び出しが正常に完了したことを示す詳細はありません)。目標は、操作が実際に終了していないときにすぐに発生したように見えるようにすることです。 ノンブロッキングAJAXリクエストの例を次に示します。 ユーザーがメールのコレクションで[削除]をクリックします。アイテムは受信トレイからすぐに消え、他の操作を続行できます。一方、AJAXリクエストはバックグラウンドでアイテムの削除を処理しています。 ユーザーが新しいレコードのフォームに入力します。保存をクリックします。新しいアイテムがリストにすぐに表示されます。ユーザーは引き続き新しいレコードを追加できます。 明確にするために、AJAX要求をブロックする例を次に示します。 ユーザーがメールのコレクションで[削除]をクリックします。砂時計カーソルが表示されます。AJAX要求が行われ、応答すると砂時計カーソルがオフになります。ユーザーは、操作が完了するまで1秒待つ必要があります。 ユーザーが新しいレコードのフォームに入力します。保存をクリックします。AJAXローダーをアニメーション化すると、フォームが灰色に変わります。「データが保存されました」というメッセージが表示され、新しいレコードがリストに表示されます。 上記の2つのシナリオの違いは、非ブロッキングAJAXセットアップでは動作のフィードバックが提供されないことと、ブロッキングAJAXセットアップでは提供されることです。 隠されたAJAXリクエストのリスク このスタイルのAJAX要求の最大のリスクは、AJAX要求が失敗したときにWebアプリケーションがまったく異なる状態になる可能性があることです。 たとえば、非ブロッキングの例。 ユーザーは多数のメールを選択します。削除ボタンをクリックします。操作はすぐに行われるように見えます(項目はリストから消えます)。次に、ユーザーは[作成]ボタンをクリックして、新しいメールの入力を開始します。この時点で、JavaScriptコードがAJAXリクエストが失敗したことを発見します。スクリプトはエラーメッセージを表示する可能性がありますが、現時点では本当に意味がありません。 または、ブロッキングの例。 ユーザーは多数のメールを選択します。削除ボタンをクリックします。砂時計が見えますが、操作は失敗します。「error。blah blah blah」というエラーメッセージが表示されます。それらは電子メールのリストに戻り、削除したい電子メールが選択されたままです。彼らは再びそれらを削除しようとする可能性があります。 ノンブロッキングAJAXリクエストを実行するための他の技術的リスクもあります。ユーザーはブラウザを閉じ、別のWebサイトに移動し、現在のWebの別の場所に移動して、エラー応答のコンテキストを無意味にすることができます。 それで、なぜそんなに人気が出るのでしょうか? Facebook、Google、Microsoftなど。これらの大規模なドメインはすべて、非ブロッキングAJAXリクエストを使用して、操作が即座に実行されているように見せるようになっています。また、保存ボタンや送信ボタンのないフォームエディタが増えています。フィールドを出るかEnterキーを押すとすぐに。値が保存されます。プロフィールが更新されたというメッセージや保存手順はありません。 AJAXリクエストは確実ではなく、完了するまで成功として扱われるべきではありませんが、多くの主要なWebアプリケーションはそのように動作しています。 ノンブロッキングAJAX呼び出しを使用するこれらのWebサイトは、レスポンシブアプリケーションをシミュレートし、高速に表示されるという犠牲を払って不要なリスクを冒していますか? これは、競争力を維持するために私たち全員が従うべき設計パターンですか?

9
ウェブサイトが使用しているプログラミング言語を知ることは可能ですか?
たとえばstackexchange.com、サイト所有者やGoogleにウェブサイトの開発に関する情報を尋ねずに、バックエンドで使用されている言語を知ることは可能ですか? ウェブサイトには.extensionバーがありません。たとえば.php、で開発されていることを示すことができますPHPが、拡張子がなければ、それをどのように知ることができますか?

6
PythonをゼロからWeb開発まで学ぶにはどうすればよいですか?[閉まっている]
私は、Web開発のためのPythonの学習を検討しています。 すでにJava(JSP /サーブレット)の基本的なWeb開発経験があると仮定すると、Webデザイン(HTML、CSS、JS)、基本的なプログラミングの概念に精通しており、Pythonを初めて使用する場合、どうすればよいですか構造化された方法でPythonを学習し、最終的にはPythonとDjangoを使用したWeb開発につながりますか? PythonでWebアプリケーションを作成するのが急いでいないので、PythonでのWeb開発に関連する技術の知識にギャップを残さないように、徹底的に学びたいと思います。私の努力に役立つ本、リソース、またはテクニックはありますか?それらをどの順番で読むべきですか? 更新: 構造化された方法で学習するということは、基本から始めて、Pythonが提供する重要な詳細/機能の一部を残さずに高度なものを学習することを意味します。プログラミングで既に知っていることをPythonに適用する方法を知りたいです。

5
PHPまたはASP.NETを使用する場合 [閉まっている]
私はPHPとASP.NETを使用してWebアプリケーションの開発に幅広く取り組んできましたが、顧客からよく聞かれる質問の1つは、PHP Webサイトとasp.net Webサイトのどちらに進むかです。 したがって、最初に頭に浮かぶのは、次のような質問に答えることです。 PHPはオープンソースであり、ASP.NETはMicrosoft製です。 通常、そのような何かが言われた後、顧客はそこに空白の外観を持っています。明らかに、一方がオープンソースであり、もう一方がオープンソースではないという事実は、実際にそれらをazeしていません。そして、正当な理由で、私が最初にそれを聞いたとき、それは本当に私に多くを語らないからです。 両方で作業して、ウェブサイトの開発に関してはそれぞれに違いがあることを知っています。 私の質問は、ASP.NETとPHPの違いは何ですか 特徴 セキュリティ 拡張性 フレームワーク 平均開発時間 適切な開発プラットフォームで十分な情報に基づいて選択できるように、顧客と比較できるように、事実のリストを編集しようとしています。

6
サーバー側プログラミング言語へのアクセス方法の説明
Webサイトのサーバー側開発には、あらゆる汎用プログラミング言語を使用できることを理解しています。 サーバーとプログラミング言語を連携させるために、サーバーにはCGIなどのインターフェイスが必要だと思いますか?もしそうなら、なぜいくつかのプログラミング言語(phpなど)が他の言語よりも人気があるのですか?

3
MVCデザインのどこにビジネスロジックを配置しますか?
データフォームを介してデータベースにレコードを追加する簡単なMVC Javaアプリケーションを作成しました。 私のアプリはデータを収集し、検証して保存します。これは、データがさまざまなユーザーからオンラインで調達されているためです。データは本質的にほとんど数値です。 データベース(SQLサーバー)に格納されている数値データで、計算を実行して結果を表示するアプリを作成します。ユーザーは計算の実行方法に関心がないため、カプセル化する必要があります。ユーザーは、単純な計算データ(たとえば、A列データからB列データをC列データで除算したもの)のみを表示できる必要があります。同じストアドプロシージャを記述する方法は知っていますが、3層アプリが必要です。 データベースにレコードとして入れて、計算を実行して処理したデータが必要です。元のデータは影響を受けないまま、計算後の新しいデータは新しいエンティティレコードとしてデータベースに保存する必要があります。 このバックグラウンド計算用のコードはどこに書くべきですか?ルールとビジネスロジックなので、新しいJavaBeansファイルに入れる必要がありますか?

7
面接中に候補者のHtml / CSSの知識を評価するにはどうすればよいですか?[閉まっている]
私はHtml / CSSの仕事に来る人々の能力を評価するためにいくつかの良いインタビューの質問を決定しようとしていますが、そのトピックは非常に広範であり、誰かのHTML / CSSの知識。 面接中に候補者のHtml / CSS能力を評価するには、どのような質問をすればよいですか? 理想的には、いくつかの質問をしてから、実際の生活シナリオを提示して戦いたいと思います。

13
候補者にリンクリストの実装を作成させるのは面接の習慣として悪いですか?[閉まっている]
このサイトを読んで、候補者がリンクリストを最初から実装しなければならないと言ったインタビューの質問と回答の多くの物語を見てきました。通常、これはFizzBu​​zzを書くようなロール候補者をプログラミングするための「ギミー」演習です。候補者がこれを行うことができない場合、彼らはプログラムすることができず、ほぼすぐに拒否されるべきであるという考えです。 ただし、次の理由から、これは悪い練習になると思わずにはいられません。 C#やPythonなどの最新の高レベル言語は、ネイティブでリストを広く使用しています。独自のリンクリストオブジェクトの作成は、通常とは異なる状況でのみ必要であり、それでもおそらく不適切です。 C ++のような低レベル言語には、イテレータ/リストコンテナとオブジェクトを備えた標準ライブラリがあります。 最初の2つのポイントに照らして、コーダーはリスト(リンク、二重リンクなど)を実装することさえ考えずに何年も行くことができます。大学時代からそのようなものを見ることさえない人もいます。 コンピューティング能力も数年前の要因ではないため、ポインターを介した効率は以前の問題ではありません(一般的に)。 「リンクリストの例」のような単純なWeb検索では、多くのコード例が表示されますが、それらは暗記し、吐き出すだけで、申請者の真の能力を示すものではありません。 リンクされたリストを使用して、自由回答形式の質問/候補者の問題解決/批判的思考能力の議論につながることは、ほとんどの場合、非常に優れた面接の練習です。面接担当者は、応募者がどのようなもので、どのように考えると非常に有益であるかを実際に見ることができます。 デスクトップまたはWebアプリケーションで作業するプログラマーのための「リンクリストコードも仕事もない」というこのバイナリアプローチは少し時代遅れだと思います。また、非常に有害な場合もあります。リストの先頭で適切に作業する方法を覚えていない候補者は、そうでなければ優れたコーダーおよび同僚であり、ミックスで失われる可能性があります。考え? 編集:これが尋ねるべき良い質問か悪い質問かは、仕事の文脈に依存することを示唆する多くの(良い)コメントがあります。私は強く同意するので、この質問を言い換えてみましょう:リンクリストの実装は、FizzBu​​zzや階乗を計算するための再帰関数を書くような質問に似た、幅広いコーディングジョブの一般的なインタビューの質問です。この質問には、プログラミングの候補を全面的に評価するために一般的に使用するのに十分なユーティリティがありますか?または、「シニア開発者、埋め込みリンクリストチーム」の職を除いて、尋ねるべき悪い質問を検討すべきですか?

7
外部JavaScriptの参照と自分のコピーのホスト
jQueryを使用するWebアプリがあるとします。必要なjavascriptファイルをWebサイトのファイルと一緒に自分のサーバーでホストするか、jQueryのCDN(例:http : //code.jquery.com/jquery-1.7.1.min.js)で参照することをお勧めします? 私は両方の長所を見ることができます: サーバー上にある場合、外部依存関係は1つ少なくなります。jQueryがダウンしたり、ホスティング構造などを変更した場合、私のアプリは壊れます。しかし、私はそのようなことはあまり起こらないと感じています。これを行う多くの小規模なサイトが必要であり、jQueryチームはそれらを壊さないようにしたいと思うでしょう。 それが私のサーバー上にある場合、それは誰かがセキュリティの問題を呼び出すことができる1つ少ない外部参照です 外部で参照されている場合、ファイルを提供するための帯域幅を心配する必要はありません(それほど多くないことは知っていますが)。 外部で参照されており、すべてのファイルの独自のコピーを必要とする多くのサーバーにこのWebサイトを展開している場合、コピー/更新する必要があるファイルは1つ少なくなります。

6
グラフィックデザイナーと仕事をする正しい方法は何ですか?[閉まっている]
最近、グラフィックデザイナー(クライアントが手配)と協力して、作成したDjango + Bootstrapアプリケーションのスキンを提供しました。デザイナーは、いくつかの技術的属性(フォントサイズ、色、いくつかの寸法など)を説明するドキュメントとともに、新しいレイアウトの一連の静的画像を提供しました。 これを実装するには非常に時間がかかることが判明しました。サイト全体は基本的にフロントページ、インデックスページ、および6つの詳細ページでしたが、CSSとHTMLの変更を実装するだけで少なくとも5日間を費やしました。それで、私は手足に出て、これを間違った方法と呼びます。 私の基本的なアプローチは: 静的な画像と現在のレンダリングを比較して、違いに注目してください。 CSS / HTMLでどのような変更が必要かを推測します その変更を行う 手順1に進みます。 特定の問題のいくつかは、デザインに8列から12列への変更が含まれていることを理解していないことでした。ピクセルパーフェクトレンダリングなどを実現するために通常のCSSレスリングを使用します。また、特定の動作を得るために、HTMLテンプレートを再編成しなければならない場合がありました。 正しい方法は何ですか?

3
今日の(複雑な)Web環境向けにジュニアプログラマをトレーニングするにはどうすればよいですか?
現在、当社は、ほとんどの場合、Ruby on Rails WebサーバーとJavaのキオスクシステムからC / C ++の組み込みデバイス(標準Webブラウザーのインターフェースを含む)までのさまざまなRESTクライアントで構成されるアプリケーションを開発しています。チームを拡大する必要があり、優秀なシニアプログラマを見つけることができなかったため、会社とともに成長するジュニアプログラマのトレーニングに力を入れることにしました。 すでにRubyとRailsの本をいくつか提供し、いくつかのおもちゃプログラムを作成するように依頼しましたが、現在のWebプログラミングの学習曲線がいかに急勾配であるかを理解しています。 15年前にプログラミングを始めたとき、DelphiとSource Safeのみを使用し、使用可能なソフトウェアを最初から作成することができました。どちらもシンプルなツールであり、環境の内部構造を掘り下げるのは簡単でした。ゆっくりとサードパーティのフレームワークの使用を開始し、CVS、SVN、そして最終的にGitに切り替えて、HTTP、JavaScript、CSS、RESTなどの今日のWebを構成する要素を学びました。今日、長年の経験の後でも、 Delphiについて過去に行ったようにRuby on Railsが内部でどのように機能するかについても重要であり、私にとって重要なことは、基本的な学習ブロックを使用しているツールに接続できることです。 私が雇っているプログラマーは、チームと統合して使用可能なものを作成するのに長い時間がかかるようです。なぜなら、単一のフレームワーク(レール)を使用することを学ぶことはたくさんあるからです:Ruby、HTML、CSS、JavaScript、 REST、テストケース、データベースアクセス(フレームワーク内に魔法のように構築されたSQLを使用!)、MVC、3つの異なるパッケージマネージャー(Ubuntuに最適、Rubyにgemとbundler)、ssh、git、Apache、Phusion Passengerのデプロイなど ジュニアプログラマーと直接やり取りする必要があるのは初めてなので、私は迷っています。非常に多くの選択肢がある場合に、Web開発の今日のベストプラクティスについてジュニアプログラマーを訓練する最良の方法は何ですか?

4
ログイン試行の失敗をログに記録するとパスワードが公開されます
次のようなメッセージで、失敗したログイン試行をWebサイトに記録し始めました Failed login attempt by qntmfred これらのログの一部が次のように見えることに気づきました Failed login attempt by qntmfredmypassword ユーザー名フィールドにユーザー名とパスワードを入力したためにログインに失敗した人もいると思います。パスワードはデータベース内でハッシュ化されますが、何らかの理由でdbが危険にさらされた場合、これらのログメッセージは、攻撃者がこのようなログインに失敗する少数の人々のパスワードを把握する方法になる可能性があります。 これを処理するより良い方法はありますか?この可能性についても心配する必要がありますか?

12
仲間のプログラマーが最悪のプログラミング手法を使用した
言うのは奇妙に思えますが、職場の仲間のプログラマーは故意にいくつかの悪いプログラミング慣行を意図的に使用しました!説明します。まず、彼は知的な男であり、ほとんどの場合、彼はわかりやすいコードを書いていると言いましょう。 彼は、Javaで書かれたWebアプリケーションプロジェクトにライセンスを実装するよう求められました。Javaなので、本当に必要な場合は、おそらくjarファイルをハックして、内部に記述されたクラスとメソッドの名前を読み取ることができます。この問題に対する彼の解決策は、文字通り、新しいクラスを生成するのではなく、変数とメソッドをわかりにくい名前で不自然に呼び出し、すでに混雑しているクラス内にそれらを植え付けることでした。 彼の正当化は、ハッカーがライセンスチェックをバイパスするために特定のクラスを切り替えたい(したがって、製品の無料コピーを取得したい)場合、どの方法が明らかでない場合、それははるかに困難な時間になるだろうということでしたこれらの特定のタスクを実行します。彼がそれを行って初めて、私は彼に立ち向かったので、良いプログラミングの実践を維持しながら、何らかの難読化ライブラリを購入してそれを行うことができるかもしれないと示唆しました。彼は、その種のソリューションを検索する時間やリソースがなかったと主張しています。 ..私はジレンマに陥ります。Javaで難読化ライブラリを探して、彼の古いコードを修正します(彼のコードを改造するのは少し面倒かもしれません)か、それをそのままにしておきますか?

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