ソフトウェア工学

システム開発ライフサイクル内で働く専門家、学者、学生向けのQ&A

5
プロジェクト開始時のアジャイルメソッドとデータベース
アジャイルは初めてで、どのように始めればいいのかわかりません。アイデアは、スプリントでプロジェクトの小さな部分を作成することです。しかし、私が取り組んでいるプロジェクトにはデータベースが必要であり、データベースはプロジェクトで何でもできるようにほぼ機能している必要があります。 それでは、アジャイルプロジェクトはこれをどのように処理しますか、データベースを作成することから始めますか? たとえば、Scrumを使用している場合、ユーザーストーリーをどのように行い、データベースをテストしますか。 コードを必要とするストーリーの中で、dbの一部を実行したいですか。 「ユーザーとして登録する必要があります...」というストーリーがあるとします。このストーリーの一部としてデータベースにユーザーテーブルを作成しますか? アジャイルは、データベースの設計にどのように役立ちますか?

4
.Netカスタムメンバーシッププロバイダーを使用/作成することの短所は何ですか?
最近、私はSOに次の質問を投稿しました:https : //stackoverflow.com/questions/7197337/using-asp-net-membership-provider-with-an-existing-user-database お気づきかもしれませんが、「カスタムメンバーシッププロバイダー」を作成/実装することが道であるように見えたという自分自身の質問に答えることになりました。 文字通り、数分後、私はこの質問に出くわしました:https : //stackoverflow.com/questions/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407 私は、.Netメンバーシッププロバイダーが「多くのレベルでひどい」と答え、コメントを返そうとします。認めますが、これはメンバーシッププロバイダーを使用するのはこれが初めてですが、確かに滑らかに見えました。 「ひどい」主張を裏付けるものは見たことがありませんので、「ひどい」何かを実装する前に、コミュニティからフィードバックをもらいたいと思っていました。


5
すべてのブラウザが同じ標準をサポートすることを期待するのはなぜ非現実的ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 理想的には、同じ標準と同じコードをサポートする異なるブラウザがあり、すべてのブラウザで同じ結果が得られるようにします。 それはまだ起こっていません。理由は何ですか?

6
無効なユーザー入力をどのように処理すればよいですか?
私はしばらくこの問題について考えていましたが、他の開発者から意見を聞きたいと思います。 私は非常に防御的なスタイルのプログラミングをする傾向があります。私の典型的なブロックまたはメソッドは次のようになります。 T foo(par1, par2, par3, ...) { // Check that all parameters are correct, return undefined (null) // or throw exception if this is not the case. // Compute and (possibly) return result. } また、計算中に、参照解除する前にすべてのポインターをチェックします。私の考えは、バグがあり、どこかにNULLポインターが表示される場合、私のプログラムはこれをうまく処理し、単純に計算の継続を拒否するということです。もちろん、ログまたはその他のメカニズムのエラーメッセージで問題を通知できます。 もっと抽象的に言えば、私のアプローチは if all input is OK --> compute result else --> do not compute …

11
開発者は、Excelマクロによって実行されるワークロードの見積もりを受け入れる必要がありますか?
新しいプロジェクトでは、友人がテストを作成する必要がありました。テストの作成に必要な時間は、開発者以外のマネージャーが作成したExcelマクロによって計算されました。 そのような状況では、開発者は計算された時間内にテストを記述して実行する責任を受け入れる必要がありますか?これらのテストの結果は信頼できるものですか? 情報については、私の友人は、自分が行っていない推定に対する責任を拒否し、別のプロジェクトで成功するように頼み、経験の浅い学校外のイエスに置き換えられました。

4
低ポーズGCの背後にあるアルゴリズムは何ですか?
いくつかの言語は、javaの例のために、低休止GCを導入しました。 これらのGCは、全世界を一時停止することなく、ほとんどの作業を実行できます。これは明らかに非常に難しい問題です。スレッドが変更しているときにメモリを分析する必要があるため、プロセスの開始時に使用でき、終了時には使用できなくなったデータや、ゴミのように見えるデータ参照はメモリ内で移動され、GCが探している場所には表示されませんでした。 基本的に、その背後にあるアルゴリズムは何ですか? このトピックは本当に技術的であるため、研究論文または本当に技術的な記事のリンクは有効な回答と見なされます。

2
オープンソースプロジェクトへの貢献は、所有者によってどのように管理されるべきですか?
(GitHubなどのサービスを使用して)オープンソースプロジェクトを管理する場合、次のように対応します。 誰かが新しい機能を追加したり、問題に対処するためのパッチを親切に提出してくれました。次のいずれかの状況が発生します。 ソースコードが1つまたは複数の命名規則などを満たしていません。 ソースコードは特定の方法で改善できると思います。おそらく、はるかに単純なソースで同じ効果を達成できるか、または別の有用な機能が必要になるでしょう。 Q1。提出されたソースを変更することは受け入れられますか?(これはGitHubで可能ですか?) Q2。そのような提出はすべて、提出ガイドラインに従って拒否されるべきですか? Q3。Q2が「はい」の場合、実装が不十分な、本当にすてきなアイデアはどうでしょうか。先に進んで自分で作成しても構いませんか? 私は貢献を奨励したいのですが、同時に特定の基準を維持することが重要です。

12
顧客からの「もう少しフィールドを追加できます」タイプのリクエストを処理する方法は?
非常に一般的には、1人の顧客のみが必要とするフィールドの機能要求があります。これは、せいぜい、アプリケーションのコードを乱雑にします。多くの場合、フィールドを追加してから数か月後にデータベースを調べると、実際には余分なフィールドさえ使用していないことがわかります。また、非常に古いアプリケーションであるため、単一のフィールドを追加するには、複数のコード変更、レポートの変更、およびフィールドを表示する必要のない他の顧客に影響を与えないようにする必要があります。 顧客がこれらの機能要求を実際に必要としていることをどのように確認できますか? 「本当に必要ない」と丁寧に言うには? 現在、特定の機能のリクエストに対して課金を開始しています。(以前は、機能要求は通常無料でした)他にできることはありますか?

3
より高いレベルの関数型プログラミングに進む方法[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 これがこの質問にふさわしくない場合はまずおaび申し上げますが、th.CSはStackOverflowでもふさわしくないのではないかと思います。 私は関数型プログラミングが大好きで、F#の中級レベルの人間であり、Haskellの基本概念をかなりよく理解していると思います。 今、私は本当にこれを次のレベルに持っていき、ファンクターやものについてのすべての話が何であるかを理解したいです。どこから始めればいいのかわかりません。 ラムダ計算について何かお読みになりましたか?カテゴリー理論?私は少し知っていますが、これが正しい/最も早い啓発方法だとは思いません。 たぶん、あなたは私にそれについていくつかのヒントを与えることができます。 PS:私は数学を恐れず、練習問題に簡単にイライラすることはありませんが、この方法でフィードバックをすぐに得ることができるので、コードを置くことができるイントロ/テキストを好むでしょう。

3
資産とリソースの違いは何ですか?
いくつかのIDEを使用し、いくつかのデフォルトプロジェクトを作成しました。作成時に、私のために作成されたフォルダー構造が見つかります。時にはResourcesフォルダー、Assetsフォルダー、時には両方が表示されます。実際に(標準の)違いはありますか?

3
リフレクションを通じてプライベートメソッドが呼び出される状況に対処する必要がありますか?
ライブラリを作成するとき、同じクラスの他のメソッドではなく、リフレクションを通じて別のライブラリによって呼び出されたときに、プライベートメソッドが期待どおりに動作することを確認する必要がありますか? たとえば、プライベートメソッドが以下をprivate DoSomething(int number)期待している場合: number は、ゼロ以外の正の整数であり、次のとおりです。 プライベート変数string abcはnullではなく、空の文字列でもありません。 そして、完全に、これらの2つの条件が一致しない場合、い失敗します。クラスのすべてのメソッドが常に空でない値を割り当てて、をabc呼び出す前にこれらの失敗を処理する必要がありDoSomething、これに正の非ゼロ整数を渡します方法? 言い換えると、リフレクションによる安全でない呼び出しから保護されていないコードは低品質コードと見なすことができますか、それともリフレクションを使用して呼び出しが何も中断しないことを保証する呼び出し元に属しますか? 注:私の質問は、ライブラリの標準セットのみを対象としています。これは、高度に安全でなければならないコード(つまり、予期しない動作やクラッシュをさせるためにリフレクションを使用することに興味がある場合)をカバーしません。 ¹他の開発者がこのメソッドを壊さないようにするための十分な単体テストがあるため、クラスが正しく文書化されているため

4
ユーザーの意図的な不正行為を考慮した場合、私はオーバーエンジニアリングしますか?
ユーザーが意図した不正行為(軽度に言えば)に対する保護を追加すると、ユーザーが被る可能性のある害がコードに関連していない場合、過剰なエンジニアリングになりますか? 明確にするために、次のような単純なJSON RESTfulサービスを公開しています。 GET /items - to retrieve list of user's items PUT /items/id - to modify an item POST /items - to add a new item サービス自体はブラウザで使用するためのものではなく、ユーザーが制御するサードパーティ製アプリケーション(電話アプリ、デスクトップアプリなど)からのみ使用するものです。また、サービス自体はステートレス(つまり、セッションレス)でなければなりません。 認証は、SSL経由の基本認証で行われます。 私は、次のような1つの可能な「有害な」動作について話しています。 ユーザーはブラウザにGET URLを入力します(理由はありませんが...)。ブラウザは基本認証を要求し、それを処理し、現在のブラウジングセッションの認証を保存します。ブラウザを閉じずに、ユーザーは悪意のあるWebサイトにアクセスします。このWebサイトには、サービスへのPOSTを作成する悪意のあるCSRF / XSRF javascriptがあります。 上記のシナリオは非常にまれであり、ビジネスの観点からはあまり心配するべきではないことを知っています。しかし、状況を改善するために、JSON POSTデータでもユーザー名/パスワードが必要な場合に役立つと思いますか? または、基本認証を完全に削除し、GETを削除して、認証情報を含むPOST / PUTのみを使用する必要がありますか?GETを介して取得された情報は機密性が高い場合もあります。 一方、カスタムヘッダーの使用は純粋なREST実装と見なされますか?基本認証を削除し、カスタムヘッダーを使用できます。そうすれば、少なくともブラウザーからのCSRF攻撃を回避でき、サービスを使用するアプリケーションはカスタムヘザーでユーザー名/パスワードを設定します。このアプローチの欠点は、ブラウザからサービスを使用できないことです。

8
HTMLを知らなくても、エディターだけで質の高いWebサイトを構築することは可能でしょうか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 AppleからMicrosoft、Googleまで、多くの大企業が、誰もがWYSIWYGエディターを使用してWebサイトを作成できるツールを作成するために、ますます多くのお金をつぎ込んでいます。 たとえば、アドビから受け取ったばかりのこのメール: Adobe®InDesign®レイアウトと同じくらい迅速かつ簡単にWebサイトを構築します。 現在、ベータ形式のコード名「Muse」は、グラフィックデザイナーが使い慣れた自由形式のツールを使用して、HTMLおよびCSS Webサイトを設計および公開できるようにする新しいテクノロジです。この信じられないほどの無料プレビューに参加して、MuseがWeb用に作成する方法に革命をもたらす方法を体験してください。 Web開発者として、アドビや他の企業がHTML / CSS / JSの知識のないユーザーが以下の理由で有用なWebサイトのデザインを構築できるソリューションを作成する方法を予測することはできません。 生成されたコードはほぼ間違いなく混乱し、サイトのバックエンドを作成したいプログラマーがそれを操作するのが難しくなります。必要に応じて構造化するためにコード自体を変更する必要さえあります。 HTMLはピクセルベースではないため、テキストサイズなどを変更して流れるテンプレートを簡単に設計できるツールを開発することは非常に困難です。さらに、要素はランダムな順序ではなく、合理的な順序で互いに続く必要があります(例えば、要素がいつ追加されるかによって指示されるように)。 あるツールで生成されたコードは、他のツールに簡単に移植できない可能性が高く、元のツールにロックされます。 (このツールはWebサイトの完全な制御を可能にするものと想定しています。アドビが言ったように、「Adobe InDesignレイアウトと同じくらい簡単に」。プロがデザインしたテンプレートを使用できるプログラムは別の話です。) HTMLに不慣れな人でも、品質(舞台裏と外観の両方)のWebデザイン/サイトを作成することは可能だと思いますか?
12 design  html  wysiwyg 

2
スクラムには、防衛契約にメリットがありますか?
昨日、ウォータークーラーで耳にした:「スクラムには防衛契約の場がありません。」 私はスクラムが多くのシナリオで機能するように調整できると信じているという意味で意見が合わない傾向があり、防衛がそれらの1つであることがわかります。これは私の同僚の間でかなりの議論を巻き起こしました(私たちの多くは防衛契約で働いています)。 これを適切な質問にするには:防衛契約の状況でスクラムを使用した人(または使用経験がある人)はいますか?何がうまくいったのか、何がうまくいかなかったのか、バニラスクラムの変更(もしあれば)をしましたか?

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