ソフトウェア工学

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

6
多重継承は単一責任原則に違反しますか?
2つの異なるクラスから継承するクラスがある場合、これはサブクラスが(少なくとも)2つのことを自動的に行うことを意味しないのですか?各スーパークラスから1つですか? 複数のインターフェイス継承がある場合、違いはないと思います。 編集:明確にするために、複数のクラスをサブクラス化するとSRPに違反する場合、複数の(マーカーまたは基本インターフェイス(Comparableなど))インターフェイスの実装もSRPに違反すると考えています。

11
System.out.println()の使用がそれほど悪いのはなぜですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 もちろん、エラーメッセージまたは警告にログフレームワークを使用することは非常に有効です。ただし、短時間で新しいことを試してみたい場合は、System.out.println()を使用することがあります。 System.out.println()を使って簡単なテストを行うのは本当に悪いのでしょうか?

3
C ++の矢印演算子が単なる*。のエイリアスではないのはなぜですか?
c ++では、反復子などで*演算子をオーバーロードできますが、矢印(->)(。*)演算子は*演算子をオーバーロードするクラスでは機能しません。プリプロセッサは->のすべてのインスタンスを(* left).rightに簡単に置き換えることができ、それによりイテレータの実装が改善されると思います。->が異なる実用的な理由はありますか、それとも言語/デザイナーの特殊性ですか?
18 c++  operators 

8
Pythonコーディング標準と生産性
私は大規模な人道支援団体で働き、食糧の流通をスピードアップすることで緊急時に命を救うソフトウェアを構築するプロジェクトに取り組んでいます。多くのNGOは私たちのソフトウェアを必死に必要としており、私たちは数週間遅れています。 このプロジェクトで私が心配していることの1つは、コーディング標準に過度に焦点を当てていることだと思います。python / djangoで記述し、さまざまな変更を加えたバージョンのPEP0008を使用します。たとえば、行の長さは最大160文字で、可能な限りすべての行を長くする必要があります。クラス、問題を解決するための最良の方法などではない場合でも使用する必要がある多くのテンプレートなど。 あるコア開発者は、システムの主要部分を1週間かけて書き直して、当時の新しいコーディング標準に適合させました。その過程でいくつかのテストスイートを破棄しました。失われたすべての機能を書き直し、バグを修正するのに2週間を費やしました。彼は主任開発者であり、彼の言葉には重みがあります。そのため、これらの標準が必要であるとプロジェクトマネージャーに確信させました。ジュニア開発者は、言われたとおりにします。プロジェクトマネージャーは、これらすべてについて認知的不協和音を強く感じているが、それでも他に何をすべきかわからないと感じているので、激しく同意しているように感じます。 今日、キーワード引数のコンマの後にスペースを入れるのを忘れていたため、深刻な問題に直面しました。Skypeの通話中に、私は文字通り他の2人の開発者とプロジェクトマネージャーに怒鳴られました。個人的には、コーディング標準は重要であると思いますが、それらに夢中になるのに多くの時間を浪費していると思います。そして、これを言葉にすると怒りを引き起こしました。私はチームのトラブルメーカーとして見られています。チームはその失敗のためにスケープゴートを探しています。コーディング標準が導入されて以来、チームの生産性はかなり低下しましたが、これは強迫観念を強めるだけです。つまり、リード開発者は、標準に準拠していないことを進歩がないと非難します。彼は、私たちが慣習に従わないと、お互いのコードを読むことができないと信じています。 これは粘着性に変わり始めています。今、私はさまざまなスクリプト、autopep8、pep8ify、PythonTidyを変更して、規則に一致させようとしています。また、ソースコードに対してpep8を実行しますが、標準に対する暗黙の修正が非常に多いため、それらをすべて追跡することは困難です。主任開発者は、pep8スクリプトが検出しない障害を選択し、次のスタンドアップミーティングで叫びます。毎週、既存の動作するテスト済みのコードを書き換えることを余儀なくされるコーディング標準への新しい追加があります。私たちにはまだテストがあります(ありがとう、いくつかのコミットを元に戻し、彼が削除したコミットの多くを修正しました)。 その間、締め切りに間に合わせるように圧力が高まっています。 基本的な問題は、リード開発者と別のコア開発者が、他の開発者が自分の仕事をするのを信頼することを拒否していることだと思います。しかし、どのように対処するのですか?私たちはすべてを書き直すのに忙しすぎるので、仕事をすることができません。 私は、ソフトウェアエンジニアリングチームでこのようなダイナミックに遭遇したことはありません。彼らがコーディング標準を順守していることを疑うのは間違っていますか?他の誰かが同様の状況を経験し、どのようにうまく対処しましたか?(私は人々が見つけた実際の解決策だけの議論を探していません)

8
GUIをグラフィカルにレイアウトすることは「不正行為」と見なされるべきですか?
私には、私よりプログラミング経験が少し多い友人がいます。私たちが使用しているさまざまなプログラミング技術すべてについて話していて、Interface Builderが会話の中で登場しました。 私は自分自身を教えてきたものを除いて、プログラミングなしの背景なので、私は個人的に信じているIBとすべてのそれの機能(IBOutlets、IBActions)ヘルプ(そのことについては、すべてのスキルレベル、)私のスキルレベルのコーダー短い時間で彼らの完全なプロジェクト。 IBに対する彼の見解は少し熱狂的です。彼は、Interface Builderを利用するコーダーは、手作業でインターフェイスをレイアウトする必要がないという事実を「ごまかし」ていると考えています。 質問: GUIビルダーを使用してインターフェイス要素をレイアウトすることは、「不正行為」と見なすべきですか(ほとんどのプログラミングでは、コードを手作業でインターフェイスをレイアウトする必要があるため)。どうして?

5
DelayQueueの実際の使用法[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 DelayQueueの実際の使用法は何ですか?解決するために設計された一般的な問題は何ですか?

5
P = NPの影響はどうなりますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 私はテストの準備をしていますが、PTIME = NPTIMEであることを証明するとどのような影響がありますかという質問に対する明確な答えが見つかりません。ウィキペディアを調べたところ、「数学、AI、アルゴリズムに重大な影響を与える」と述べたばかりです。 誰でも答えてくれますか?

3
プログラマが「データ構造」について話すとき、彼らは何を指しているのでしょうか?
プログラマは、「データ構造」について語るとき、彼らは話している抽象データ型のようなリスト、木、ハッシュ、グラフなど、? または、その用語には、複合型(クラスオブジェクト、構造体、列挙型など)やプリミティブ型(ブール、int、charなど)などのデータを保持する構造が含まれますか? プログラマーがこの用語を使用して複雑なデータ構造または抽象データ型を参照するのを聞いたことがありますが、データ構造のリストを提供するウィキペディアの記事には、定義に複合型とプリミティブ型の両方が含まれていますが、これは期待したものではありません理にかなっていますが)。 オンラインの周りを見たとき、私は唯一のような抽象データ型を参照するようプログラミングの意味での用語「データ構造」を参照して他の場所を参照コンピュータサイエンスのストーニーブルック大学の学部からこの講義いる状態を データ構造は、特定の抽象データ型の実際の実装です。 またはデータ構造に関するこのウィキブックでは、次のような文の用語を使用しています。 データ構造は高レベルの抽象化であるため、リストへのアイテムの追加、キュー内で最も優先度の高いアイテムの検索など、データのグループに対する操作を提示します それでは、プログラマが「データ構造」という用語を使用するときに、複雑なデータ構造または抽象データ型を参照するのを聞くのはなぜですか?プログラマーは、辞書の定義とは異なる用語の定義を持っていますか?

6
問題番号でコメントするのは良い習慣ですか?
jQueryコードのコメントから多くの問題番号を見ました。(実際、jQueryコードには69の問題番号がありました。)良い習慣になると思いますが、ガイドラインを見たことはありません。 それが良い方法である場合、この方法のガイドラインは何ですか?

6
開発とQAの間の長い遅延のコスト
私の現在の立場では、QAがボトルネックになっています。QAがテストを終了できるように、現在のビルドでは機能が保持されないという残念な事態が発生しました。つまり、開発中の機能は、開発者が既に移行してから2〜3週間はテストされない可能性があります。開発者がQAをより速く進めることで、この時間差は大きくなるだけです。 私はCode Completeのコピーをめくり続け、欠陥を修正するコストが存在するほど指数関数的に増加することを示す「ハードデータ」スニペットを探します。誰かがこの概念を裏付けるいくつかの研究を教えてくれますか?私は、QAのボトルネックが彼らが考えるよりもはるかに費用がかかるという力を説得しようとしています。

2
Spring構成ファイルを配置する場所
プロジェクトのSpringフレームワークを特にサーバーサイドに統合したい。 そのため、warファイルのWEB-INFフォルダーに入れたくありません。 applicationContext.xmlを各レイヤーに配置する必要があります(個別のプロジェクトに分割されているため、各プロジェクトを意味しますか?(サービス、ドメイン、およびDAO) 良い習慣は何ですか?
18 java  soa  spring 

3
Javascript開発者向けの認定?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私は、javascript開発の分野で、堅実でペースの速いエントリーを探しています。 次のトピックが思い浮かびます。 Javascriptの高度な概念、OOP jQuery、jQuery-UI、jQuery-Mobile Backbone.js node.js BDDおよび/またはTDD http://www.codelesson.comのコースは有望なようです。 Javascript開発者向けの証明書は何ですか? 他にどのようなベンダーをお勧めできますか?


6
eコマースWebサイトのバスケットへの並行性を管理するためのベストプラクティス
2人の顧客が在庫が1品目のみの製品を同時に追加する場合を管理するためのベストプラクティスは何ですか? これら2人の顧客の1人が同じ製品を追加するのを避けるために、バスケットのコードにチェックが必要ですか? または、このチェックは、たとえば、関連する製品がまだ在庫にあることを確認するための2番目のクエリ(同時顧客がまだ購入していないことを意味する)を行う際に、支払いフェーズで実行する必要がありますか?

8
CとC ++の間に言語はありますか?
私はCのシンプルで透明な性質が本当に好きです。Cコードを書くとき、「漏れやすい抽象化」に邪魔されずに、ほとんど常に、作成しているアセンブリに関して巧妙な推測をすることができます。また、Cのシンプルで使い慣れた構文も気に入っています。 ただし、Cにはクラス、簡素化された非cstring処理などのようなC ++が提供するこれらの単純で有用なdoodadがありません。ジャンプテーブルなどを使用してCで実装することはすべて可能ですが、さまざまな理由でタイプセーフではありません。 しかし、私はC ++のオブジェクトを過度に強調することを好むわけではありません。また、「新しい」演算子などに照れ気味です。C ++には、たとえば、システムプログラミング言語として使用するには、ちょっとした問題がいくつかあるようです。 ウィジェットとdoodadsの規模でCとC ++の間に位置する言語はありますか? 免責事項:これは純粋に事実に基づく質問です。C {、++}は私が計画していることを何でもするのに十分であるというあなたの見解を共有しないので、私はあなたを怒らせるつもりはありません。
18 c++  c 

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