ソフトウェア工学

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

7
ビジネスオブジェクト-コンテナまたは機能的?
これは私がSOに戻ってしばらく尋ねた質問ですが、ここでよりよく議論されるかもしれません... 私が働いているところで、私たちは何度もこの主題について行き来しており、健全性チェックを探しています。ここに質問があります:ビジネスオブジェクトはデータコンテナ(DTOに似ています)であるか、またはそのオブジェクトでいくつかの機能を実行できるロジックも含まれている必要があります。 例-顧客オブジェクトを取得します。おそらく、いくつかの一般的なプロパティ(名前、IDなど)が含まれますが、その顧客オブジェクトには関数(保存、計算など)も含める必要がありますか? 1行の推論では、オブジェクトを機能(単一責任プリンシパル)から分離し、ビジネスロジックレイヤーまたはオブジェクトに機能を配置します。 もう一方の推論では、いいえ、顧客オブジェクトがある場合は、Customer.Saveを呼び出して終了します。オブジェクトを消費している場合、顧客を救うために別のクラスについて知る必要があるのはなぜですか? 私たちの最後の2つのプロジェクトでは、機能からオブジェクトが分離されていましたが、新しいプロジェクトで議論が再び行われました。 どちらがより理にかなっており、なぜですか?

7
クライアントからの「更新以来…」という質問にどのように対応しますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 更新以来、人々は「更新X、Y、およびZが遅くて、悪い状態で、クラッシュするたびに」と電話し、言い続けています。 これは、更新の夜明け以来ずっと発生しています。 人々は何を期待していますか?ガンマはベータの後にあり、ガンマテストは常にユーザーをThe Incredible Hulksに変えます... おそらくあなたはこれをクライアントから聞いたことがないでしょう、おそらくあなたは大学にいるか、5人か6人以上に非難を広めることができるFLOSS開発者です、おそらくあなたはあなたのコードをユニットテストします、おそらくあなたはそのような興味深い状況ではありません顧客が実際にあなたに今日のパッチをリリースする正確な時刻を要求するように電話します(Microsoftにそれをしたいと思います)、またはあなたはたぶんあなたがちょうど新しいを出荷した私のようなビスケットの息子です更新して帰宅し、明日仕事に戻るのが怖いです。 とにかく、yaは私よりも賢いでしょう。「あなたはあなたのソフトウェアをより悪くしているので、あなたは悪いプログラマーでなければならない」に囲まれた批判をどのように表現しますか?

8
私が前にやったことを忘れて、これをどのように修正しますか
それが私だけなのか、これが私たちの分野で一般的かどうかはわかりません。 過去1年間は私にとって少し過酷でした。私はいくつかのタスクを実行するためにいくつかの異なるテクノロジーを学んでおり、時々私が学んでいるその新しいテクノロジーに完全に集中しなければなりませんでした。 しかし、プロジェクト全体ですべてを一緒に使用することに戻ったときに気づいたのは、他の新しいテクノロジーの学習に集中する前に、すでに行っていた方法を忘れていたことです。jqueryでdivを選択するための構文などの単純なことすら忘れてしまい、すぐに覗くために古いファイルに戻らなければならないことがあります。 以前に別のプロジェクトで行ったことを認識したものをコーディングすることもできましたが、それがどのプロジェクトのためのものだったか覚えていないため、いくつかのプロジェクトを調べてコードを調べて、どこでそれを行ったかを覚えておく必要があります。 以前に行ったことを忘れないようにするため、または過去に書いたコードに簡単にアクセスするために、どのような方法を考案しましたか?

1
Visual Studio 2010で単体テストを設定する方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は最初の大きなプロジェクトを行っていますが、プロのプログラミング環境での経験はあまりありません。プログラミング関連の何かを調査していると、ユニットテストへの参照がよく見られますが、それらの設定方法について、またはそれが自分にとって有益であるかどうかについては、まだわかりません。 誰かがユニットテストについて説明してくれますか?また、複数のプロジェクトがあるVisual Studio 2010ソリューションでユニットテストを設定する方法はありますか?プロジェクトのソリューション内で発生するものですか、それとも別のソリューションですか?また、小規模な開発チームに推奨するものですか、それともセットアップに時間の無駄ですか? 現在、プログラム全体を実行して現在作業中のものをテストしていますが、デバッグが容易ではない問題が発生することがあります。コードのサブセットを他の場所で実行すると便利な場合があります。プログラムの一部をテストするために参照されるいくつかのライブラリを使用したプロジェクトですが、それを設定するよりも、関連するすべての依存関係のためにプログラム全体を実行するのに時間がかかると感じます

18
何のために最適化していますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 一般的に、ソフトウェアを設計するとき、どのような最適化を一般的に好みますか? あなたのデザインを最適化することを好むタイプですか 開発時間(つまり、書くのが迅速で、保守が簡単) 処理時間 ストレージ(RAM、DB、ディスクなど)スペース もちろん、これは解決される問題のタイプと関係する締め切りに対して非常に主観的であるため、ある形式の最適化を別の形式よりも選択する理由についてお聞きしたいと思います。

4
雇用契約で注意すべきこと[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 同僚が数年前に署名した契約書を見て、非常に不安になった後、今日私はこれについて考えました。 ほとんどの雇用者が契約に署名するので、契約に署名する前に注意すべきことは何ですか。アイデアを個別に投稿して、個別に投票できるようにしてください。
19 contract 

3
実行可能ファイルがウイルスを拡散しているフリーソフトウェアプロジェクトを見つけるときの正しい行動方針は何ですか
今日、SourceForgeで実行可能ファイルがウイルスを拡散しているGPLのプロジェクトを見つけました。この事実は、プロジェクトのレビューで何度か指摘されており、感染した実行可能ファイルは引き続きダウンロードできます。どうやら、古い実行可能ファイルは感染していないため、プロジェクト自体は悪意のある目的を念頭に置いて作成されているようには見えません。開発者に連絡する好ましい方法はなく、プロジェクトのフォーラムは終了しています。私は何をすべきか?

8
バージョン管理のコードはどのように保存する必要がありますか?
バージョン管理のコードはどのように保存する必要がありますか? 開発者に優しい?プログラマーは、多くの変更を行うことなく、エディターから最新のものをすぐに実行できるようになりますか?(dev DB..etcを指す構成ファイルなど) または それは生産に適しているべきですか?ソースは本番環境に簡単に展開できる方法である必要があり、開発者が最新版を取得する場合、開発ニーズに従って変更を実行する必要があります。

11
推奨される.NET / C#コーディング標準?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 .NET / C#プロジェクトにとって、どのコーディング標準が重要だと思いますか?これは、そのような中括弧と間隔とペダントリーを扱うことから何でもありえます。または、.NET Frameworkのどの名前空間を避けるべきか、構成ファイルのベストプラクティスなど、より基本的な質問になる可能性があります。 単純に別の投稿である投稿を作成しないようにしてください。たとえば、中括弧に焦点を当てた投稿が1つあればよいでしょう。一方のスタイルと他方のスタイルをサポートするために2つは必要ありません。アイデアは、ペットの基準に投票することではなく、基準を作成する際に考慮すべきことを具体化することです。

11
コードベースの別の部分で作業中にバグを修正する
これは少なくとも一度は私に起こりました。私はコードベースのある部分に取り組んでおり、別の部分に小さなバグを見つけました。そのバグは、私が現在やろうとしていることを完了するのを妨げます。バグの修正は、単一のステートメントを変更するのと同じくらい簡単です。 その状況で何をしますか? バグを修正し、現在の作業と一緒にコミットします 現在の作業を別の場所に保存し、別のコミットでバグを修正してから作業を続行してください[1] あなたがすることになっていることを続けて、コードをコミットします(たとえそれが ビルドを壊します いくつかのテストに失敗します)、バグを修正します(そして ビルド 別のコミットでテストに合格する) [1]実際には、これは、元のリポジトリを他の場所に複製し、バグを修正し、変更をコミット/プッシュし、作業中のリポジトリにコミットをプルし、変更をマージし、作業を続行することを意味します。 編集:私は本当に意味を反映するために3番を変更しました。

3
ソフトウェア工学とコンピューターサイエンスは別々の専攻ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 何十年もの間、ソフトウェア開発者になるために受け入れられた学位は「Compter Science」でした。その学位が本当にソフトウェアを開発する準備をしているかどうかについて、すでにいくつかの質問 があり ました。 過去8年ほどで、いくつかの学校はプログラミングの複数の異なる専攻を提供し始めました。私の学校のカリキュラムを使用する: コンピューターサイエンス。最初の1年はイントロプログラミングコースから始まり、その後、理論的なコンピューターサイエンス、アルゴリズム、およびOSの一部に焦点を当てます。ほとんどのクラスには、ソロまたはペアで行われるいくつかの小規模なプロジェクトと宿題が含まれます。 同じイントロプログラミングコースから始まるソフトウェアエンジニアリングは、いくつかのクラスの理論を実行し、ソフトウェア開発プラクティス(テスト、プロセス方法論、ソフトウェアメトリック、要件収集)およびソフトウェア設計(分散システム設計、情報システム設計)に進みます、リアルタイム/組み込み設計、サブシステム設計など) 学校によってその方法は異なります。したがって、上記は私がよく知っている実世界の例にすぎません。私が尋ねるのは、プログラミングに明確な専攻が必要なのでしょうか?

17
プログラミングで知っておくべき優れた数式は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 より良いアルゴリズムを作成し、より良いプログラマーになるのに役立った、学んだ一般的な数学の式は何ですか? 例:エクリュディアン距離の公式について学びました。sqrt((x1-x2)^2+(y1-y2)^2)これは、2つの要因を比較することにより、類似オブジェクトを見つける方法を理解するのに役立ちました。

14
ORMによるデータベース抽象化を使用する利点は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 9年前に閉鎖されました。 選択したフレームワークで推奨されているORMを使用し始めています。ORMが提供する抽象化の追加レイヤーのアイデアは気に入っていますが、これが本当に何を意味するのか理解し始めています。これは、データベース(mysql)を使用しなくなったため、mysql固有の機能が存在しなくなったためにウィンドウの外に出てしまったことを意味します。 ORMの考えは、データベースをすべて非依存にすることで、私を助けようとしているということです。これはすばらしいように聞こえますが、多くの場合、特定のデータベースシステムを選択する理由があります。しかし、データベースにとらわれないルートをたどることにより、ORMは最小公約数を取ります。つまり、最小の機能セット(すべてのデータベースでサポートされる機能)になります。 長期にわたって基礎となるデータベースを切り替えないことを知っている場合はどうなりますか?データベース固有の機能にもアクセスしてみませんか?

6
Sproutcoreを使用した人はいますか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 誰かがWebアプリケーションにSproutcoreを使用しましたか?もしそうなら、あなたの経験の説明を教えてください。現在検討中ですが、いくつかの懸念があります。まず、ドキュメントが悪い/不完全であり、ソースコードを掘り下げたり掘り下げたりするのに多くの時間を費やすことを恐れています。また、私は比較的新しく、大きな変更を受ける可能性のあるプロジェクトを使用することを少しためらっています。 Sproutcoreで開発された人々からのどんな考えでも大歓迎です! EDIT / PS:はい、私はこの記事を見てきました:/programming/370598/sproutcore-and-cappuccino。しかし、重要なプロジェクトでSproutcoreを使用した人からのSproutcore自体の少し長い説明に興味があります。
19 javascript 

3
チームのシニア開発者とジュニア開発者の理想的な組み合わせは何ですか?
どのチームでも、より多くの灰色の開発者と若い子犬が必要になります。いくつかの理由が含まれます: お金。多くの場合、同じレベルの経験を必要としないタスクが提供されるため、これらのタスクを遂行するために最高額を支払わないことが理にかなっています。 エネルギー。新しい人々がチームにもたらすことができるエネルギーと熱意があり、チームが古くなりすぎないようにします。より多くの高齢者がもたらすことができる落ち着きと知恵もあります。 知識の伝達とキャリアの成長。プロジェクトとスキルの両方の面で、人々に教えることや新しいことを学ぶことは便利で楽しいことが多いです。新しいチームメンバーの「参加」を支援することは満足です。 ジュニアよりもシニアの方が多いことが重要かもしれない最先端のプロジェクトがあることを理解していますが、一般的に、チームでの経験の理想的な組み合わせはありますか、それともプロジェクトに完全に依存していますか?

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