ソフトウェア工学

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

5
Java instanceof演算子はリフレクションと見なされますか?
Java演算子を使用することinstanceofは一種の反省かどうか、今日同僚と話し合いました。そして、議論はすぐに実際に反射を定義するものに進化しました。 だから、反射の定義は何ですか? そして、instanceof考慮された「反射を使用する」の使用法はありますか? さらに、instanceof反射と見なされる場合、多型も「反射を使用する」わけではありませんか?そうでない場合、違いは何ですか?

2
Objective-CがCocoa環境を超えて広く使用されないのはなぜですか?
Objective-Cは、優れたオブジェクト指向、シンプルさ、優雅さ、および(Cのスーパーセットとして)低レベルの機能を備えています。多くの人がGoで探してみようとするC ++のシンプルで現代的な代替のように思えるかもしれません。しかし、Cocoaおよびpost-NextSTEP環境で使用されているだけであり、この場合でも、最適な選択というよりも歴史的な理由で負担と見なされます。 なぜそれほど広く使用されていないのですか?その問題は何ですか?

7
脆弱な単体テストを回避する方法は?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 3,000件近くのテストを作成しました。データはハードコーディングされており、コードの再利用はほとんどありません。この方法論は、私たちを尻に刺し始めました。システムが変更されると、壊れたテストの修正により多くの時間を費やすことになります。ユニット、統合、機能テストがあります。 私が探しているのは、管理しやすく保守可能なテストを書くための決定的な方法です。 フレームワーク FakeItEasy nUnit AutoFixture

2
照合と文字セットの違いは何ですか?
データベースに関する一般的な質問があります。通常、データベースとの照合という用語を使用します。文字セットとどう違うのか知りたいです。照合は文字セットのサブセットだと思います。その場合、文字セットの下での多重照合の目的は何ですか。

15
「静的関数」はいつ使用されますか?
OK、静的関数とは何かを学びましたが、プライベートメンバー関数よりもなぜ静的関数が有用なのかまだわかりません。これはちょっと新しい質問かもしれませんが、プライベートメンバー関数をすべて静的関数に置き換えるだけではどうですか?

8
政府プロジェクトのアジャイルアプローチへの挑戦
前回のアジャイルの議論ここでは何であるかを指定良い答えを持っていた重要なソフトウェア開発におけるアジャイルの方法論を実装の成功に。ポイントのほとんどは典型的な組織および管理の課題でしたが、1つのポイントは私を心配し、クライアントはプロセス全体に関与しなければならないということです。 クライアントは現実的に制御できないものの1つです。おそらく、ビジネスモデルは政府の請負業務に向いています。たとえば、厳しく厳しい契約が会社に次の義務を負わせている場合などです。 要求どおりにX機能を提供する 機能のリクエストは壁を越えて投げられますが、私たちはそれを聞きたくありません。 顧客の頭の中には機能の優先順位という概念はありません。それらはすべて重要であるか、私たちがそれらを要求しなかったでしょう。 このプロジェクトは、オーバーランや締め切りに関係なく、Y以上の費用がかかりません。 すべての作業を完全に実施するための、絶対的、厳格、最終的、交渉不能の期限。 私たちは以前にそのようなクライアントと仕事をしたことはありませんでしたが、プロジェクトのお金は過ぎ去るにはあまりにも良いです。この作業が必要です。 私はここに来て、HARDでプロセスを変更してアジャイル開発に移行しました。ここで、このプロジェクトが新しいプロセスに適合する場所を調整する方法がわかりません。私はこれまでに開発チームとプロセスをこの道に導くと信じていたオープンマインドなハンドオフ管理の贅沢を持っていませんでしたが、私たちはここにいるので、このプロジェクトが本当にアジャイルな方法。経営陣はこの道をリードしてくれると私を信じており、私たちが今いるこの状況はウォーターフォールを明確に要求しているので、彼らを失望させたと感じています。今バックトラックすると、彼らの信頼を失うかもしれないと思う。 ここにあるような他の答えは、この種のクライアントではアジャイルが不可能だと言っていますが、同意しますか?似たような状況にあり、それを機能させた人はいますか?アジャイルを成功させるためにどのような戦略を実装しましたか?

9
エンタープライズ環境でのGitの使用[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 Gitは優れたバージョン管理システムです。優れたGUIサポートがないという事実を除外すると、本当に優れた高速です。しかし、Clearcaseのようなソース管理は、企業顧客を大規模にサポートしています。企業は、ソース管理サーバーとライセンス認証に多額の投資をしています。 最近、Googleのような大企業のほとんどは、他のバージョン管理システムよりもGitを採用しています。しかし、この会社には強力なオープンソースグループがあり、ツールの開発とサポートを一貫して提供しています(独自のGitのカスタムバージョンを持っている場合もあります)。同時に、大企業はオープンソースプロジェクトを採用し、それらに関連性を持たせることを本当に気にしていません。 Gitはエンタープライズ環境、特にWindowsプラットフォームで本当に信頼できるツールですか? Gitはオープンソース製品であるため、Gitのサポートは問題です。 ソリューションとサポートを提供する会社はありますか?サーバーのコストは、クリアケースなどの他のバージョン管理と比較してどうですか?

5
VCSを使用するときにコードをフォーマットするのは悪いことですか?
コミットする前に、ほとんどの場合、コードを適切にフォーマットするようにフォーマットします。私のチームのほとんどは、実際には気にせず、常にコードを適切にフォーマットしません(コードに影響を与えないが、保守しようとするときの可読性に影響を与える小さなこと)。 私は最近、「保存時にフォーマット」オプションを持つVSパワーツールをインストールし、以前にフォーマットされていないファイルに変更を加えました。開発VPが私のところに来て、フォーマットのために私をre責しました。なぜなら、マージツールでは、1行または2行ではなく、ファイル全体がほとんど変更されているように見えるためです(したがって、彼は私が簡単に変更したものを正確に見ることができません)将来的に保存時にフォーマットを無効にするように言われました。私はその懸念を理解していますが、フォーマットされていないコードをソートすることは時々困難であり、IMOはとにかく常に適切にフォーマットされるべきです。気まぐれに再フォーマットするだけではないことに注意してください。しかし、コードを書くときは、パワーツールを使用するか、キーコマンドを押してテキストをフォーマットし、読みやすくします.SVNでは次のように表示されます変更。 だから私は尋ねます、常に実際にコードをフォーマットすることは悪いことですか?彼の懸念は、コードが読み取り可能であることを確認するよりも妥当ですか?

4
テクノロジーを学んだばかりで、どこでもそれを使用したい顧客を思いとどまらせる方法は?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 私の顧客は最近、URLリライティングとは何か、それがどのように機能するのか、そしてその長所と短所を完全に理解することなく、それを発見しました。現在、彼は、現在のプロジェクトの実際の要件の多くの奇妙な変更と古いプロジェクトの変更を求めて、URL書き換えと信じているものを実装します。 一方では、実際の仕事をする代わりに意味をなさないことをするように頼まれてイライラしています。一方、顧客が興味を持っているにもかかわらず、その主題について何も理解していないことを顧客に伝えることはできません。 多くの人がマネージャーや顧客が新しい流行語や新しい技術を学んだばかりで、すべてのプロジェクトで、どこでも、この新しいコードを使用するためだけにコードベース全体を書き直したいというよりも、彼がそれをとても気に入っていたと思います物など また、私は最近、Programmers.SEに関連する記事を読みました。そこでは、XMLに大きな話題があったときの経験について人々が語り、一部のマネージャーは、XMLを使用したことを皆に示すために、すべてのプロジェクトにXMLを導入するように頼みました。 それで、同様の状況にあった人々、あなたはどのようにそれを管理しましたか?

8
プログラミング言語の開発におけるビジネスは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 JavaやC#などのプログラミング言語をリリースすることで、大きな直接的な収益があるかどうか疑問に思っていましたか? IDEを販売したり、書籍のブランドライセンスを取得したり、企業の名声を獲得したりすることは、間違いなく開発に費やした努力と比較して、私の目にはわずかな利益に思えます(もちろん間違いです)。

9
QAに12週間かかる場合は、アジャイルをやめるべきですか?
私の会社の誰かが最近、コア製品の変更を提案しました。マネージャーは、私の会社が完全なQAサイクルと考えるものをトリガーする必要があると感じています(つまり、製品スイート全体を一からテストする)。QAが製品のQAサイクル全体を実行するには、12週間かかります。これに関する私の問題は、アジャイル(ほとんどの意見では半分ですが)開発をしようとしていることです。スプリント全体を実行した後、リリースを実行します。QAはこれを完了するまでに時間がかかります。問題は、QAが仕事をするのに12週間かかる場合、アジャイルをやろうとするのをあきらめてはいけないということです。このような状況でアジャイルをやろうとすることの意味は一体何でしょうか?
24 agile  qa 

5
ユニコードではなく日本語固有のエンコーディングを使用するように導く問題は何ですか?
職場では、Shift-JISなどのエンコーディングの日本語のテキストファイルがたくさんあります。それは多くの原因が文字化け(判読できない文字)すべてのコンピュータユーザのための問題を。Unicodeは、すべての言語に単一の文字セットを定義することでこの種の問題を解決することを目的としており、インターネットでの使用にはUTF-8シリアル化が推奨されます。それでは、なぜ皆が日本語固有のエンコーディングからUTF-8に切り替えないのでしょうか?UTF-8のどのような問題や不利な点が人を引きつけていますか? 編集:W3CはUnicodeに関するいくつかの既知の問題をリストしていますが、これも理由でしょうか?

2
Web開発の代替パターン?(非MVC)[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 最近、私はMVCとそれがウェブに合わないことに関するいくつかのブログ投稿を読んでいました。RMR Architectureのような代替パターンについて学びました。 MVCのほかに、人々がWebで使用している他のパターンに興味がありますか?また、パターンを実装するフレームワークがある場合は、そのリンクを投稿してください。

1
開発中に単体テストを作成すると、開発する時間とメンテナンス作業に費やす時間の影響は何ですか?
私はコンサルタントであり、クライアントサイトですべての開発者に単体テストを紹介します。私の目標は、すべての新しいアプリケーションで、作成されたすべてのクラスの単体テストを確実に行うことです。 クライアントには、既存のアプリケーションのバグ修正による高いメンテナンスコストの問題があります。それらのアプリケーションの寿命は5〜15年で、新しい機能が継続的に追加されます。ユニットテストから始めることで、彼らが大いに役立つと確信しています。 開発の時間とコストに対する単体テストの効果に興味があります。 開発プロセスの一環として単体テストを書く時間はどれくらいかかりますか? 適切な単体テストを行うことで、メンテナンスアクティビティ(テストとデバッグ)でどれくらいの時間が節約されますか?

16
デバッグに時間がかかりすぎている
昨日、約6週間(オンとオフ、つまり)作業してきたWebプロジェクトのv1.0リリースを公開しました。私は自分の時間を正確に記録していませんが、私の経験によると、プログラミングに費やした時間のうち、半分がデバッグに費やされたと推定します。デバッグに15〜20時間ほど費やしていると推定します。これは、新しいコードの作成やプロジェクトの早期終了に費やすことができた貴重な時間です。また、5週間以内に大学1年生になることも特に助けになりません。 大事なことは、デバッグに時間を費やすのは気分が悪いことです。デバッグに費やしたすべての時間は、プロジェクトの開発中にかなりバカなミスを犯したことを実感させてくれます。ミスは修正にかなりの時間を要しました。 将来これが起こらないようにするにはどうすればよいですか?デバッグに50%の時間を費やしたくはありません。10%のデバッグに費やし、残りは新しいコードの作成に費やします。この目標を達成するのに役立つテクニックは何ですか?

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