ソフトウェア工学

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

12
オブジェクト指向プログラミングを学ぶ前に、手続き型プログラミングを学ぶ必要があるのはなぜですか?[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私は現在、IT大学で4年生です。このトピックについて教授と話すと、彼は私の意見を拒否し、非常に厳しい批判を与えます(私の大学では、C(ANSI)(Proceduralプログラミングクラス-大学1年目)C ++の前(2年目のOOPクラス)など... しかし、13歳のとき、私の弟はJavaを最初に教えられ、他には何も教えられませんでした。現在、彼は通常の2年生がJavaでできることのほとんどすべてを行うことができます。 プロの皆さんには、手続き型プログラミングを最初に教えるべきだと思う理由を教えてください。

10
フレームワークをパフォーマンスヒットと見なしている同僚と通信する方法
一般的な応答が「jquery」などの包括的ステートメントである場合、「高度に最適化され、クロスブラウザーと互換性があるためjQueryを使用する必要がある」または「エンティティフレームワークはクールであり、モデルが自動的に処理されるのでクールです」などのアイデアをどのように販売できますか。十分に機能しない」または「エンティティが必要なのは、10で十分な場合、エンティティはテーブルに12列を取り込む」でしょうか。 私は、経験を通して開発した公理を信頼する傾向がある実用的な人です(目に見える減速があるまではパフォーマンスの問題ではありません)。他の極端が当てはまる特定の「カテゴリ」があるかどうかはわかりませんが、他に証明されない限り、またはここで通信を開始する場所まで、すべてがパフォーマンスの問題です。

4
遅延初期化をJavaに組み込むことができなかった理由はありますか?
私はユーザーの非永続状態がまったくないサーバーで作業しているため、ユーザー関連のすべてのオブジェクトは、すべてのリクエストでロールアウトされます。 その結果、未使用になる可能性のあるオブジェクトのプロパティを遅延初期化していることがよくあります。 protected EventDispatcher dispatcher = new EventDispatcher(); なる... protected EventDispatcher<EventMessage> dispatcher; public EventDispatcher<EventMessage> getEventDispatcher() { if (dispatcher == null) { dispatcher = new EventDispatcher<EventMessage>(); } return dispatcher; } これをJavaに組み込むことができなかった理由はありますか? protected lazy EventDispatcher dispatcher = new EventDispatcher(); 以下のコメントで述べたように、言語は理論的に進化して、必要なほとんどすべてのものを含めることができることを理解しています。可能性の実用的な測定方法を探しています。これは他の機能と競合しますか?実装は、JVMが存在する場合でもうまく機能するように単純ですか?そして、それは良い考えですか?

7
誰がテスト計画を書くべきですか?
私は社内の開発チームに所属しており、マーケティングチームの要件に従って会社のWebサイトを開発しています。受け入れテストのためにサイトをリリースする前に、従うべきテスト計画を提供するように依頼されました。 ただし、開発チームは、要求者からの要求であるため、何をテストするか、何を探すべきか、どのように動作するかなどについて最良の知識を持っているため、テスト計画は不要であると感じています。私たちは常にこれについて議論しています。開発者は次のようなことを書き留めるのは時間の無駄です。 ボタンAをクリックします。 フォームフィールドにXYZと入力し、ボタンBをクリックします。 動作Cが表示されます。 これは、要求された要件/機能ごとに繰り返す必要があります。これは基本的に、要件ドキュメントに既にあるものを言い換えたものです。 プロジェクトの管理にはアジャイルアプローチを使用する方向に進んでおり、これは各反復の終了時にも要求されます。 単体テストと統合テストは別として、エンドユーザー受け入れテスト計画を立てるのは誰ですか?それは要求者ですか、それとも開発者ですか? よろしくお願いします。 CK よろしく

5
請負業者vsコンサルタント[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 プログラマーにとって、オーバーロードされているように見える最も一般的な用語の2つは、請負業者とコンサルタントですか? 2つの間に違いはありますか?

6
WebサーバーとDBサーバー間の「ビットパリティ」の欠如はパフォーマンスに影響を与える可能性がありますか?
今日、特定のアプリケーションを展開するための推奨インフラストラクチャについて、ソフトウェアベンダーと面談しました。アプリケーションには2つのサーバーが必要です。サーバーWebページ用のアプリサーバー(.NET、Windows)とデータベース(SQL Server)です。ベンダーは、これら2つのサーバーには「ビットパリティ」が必要であると主張しました。これが意味するところは、アプリサーバーが32ビットの場合、SQLサーバーは32ビットである必要があります。また、アプリが64ビットの場合、SQLサーバーは64ビットです。そうしないと、パフォーマンスが低下します。 これは私には馬鹿げているようです。サーバーは独立しており、ネットワーク経由でのみ通信します。ネットワークプロトコルは、どちらのサーバーでもプロセッサの「ビット数」とは関係ありません。 私は間違っていますか?ミスマッチが実際にパフォーマンスに悪影響を及ぼす可能性がある理由はありますか? 注:特定のアプリは、32ビットではなく64ビットで実行される場合があります。しかし、ベンダーはWebサーバーとDBサーバーの不一致が問題を引き起こすと言っていました。これは私が質問している声明です。
10 hardware 

7
プログラミングスキルを磨く、または新しい言語を学ぶための日曜大工プロジェクトの提案[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 学ぶための最良の方法はプロジェクトに取り組むことです。特定のプログラミングスキルを磨いたり、新しい言語を学習したりする目的で自分を作ってみる良いソフトウェアは何ですか?
10 learning 

3
DI / IoCコンテナーを既存のアプリケーションに統合する際の推奨事項
私は現在、制御の反転(IoC)コンテナーを既存のアプリケーションに統合することに直面しており、カップリングを減らし、それによってテスト容易性を高めるという最終的な目標でそれを最も簡単に達成できる方法に関するいくつかの推奨事項を探しています。私は通常、ほとんどのクラスを神のオブジェクトとして分類しませんが、静的、シングルトン、およびインターフェイスの欠如により、それぞれに責任が多すぎ、依存関係が隠されています。 以下は、直面する必要があるいくつかの課題の背景です。 依存性注入はほとんど使用されません 静的メソッドが豊富-ファクトリーメソッドとヘルパーメソッドの両方として シングルトンはかなり普及しています インターフェースを使用すると、きめ細かすぎない オブジェクトは多くの場合、基本クラスを通じて不要な依存関係を取り込みます 私たちの意図は、次に特定の領域で変更を加える必要があるときに、実際には存在するが、シングルトンやスタティックなどのグローバルの背後に隠されている依存関係を取り除くことを試みることです。 IoCコンテナが依存性注入の導入の副次的な要素になると思いますが、これらの依存関係を打開するのに役立つ、実行または推奨できる一連のプラクティスと推奨事項があると思います。

22
ソフトウェア開発者インタビューの質問-公正か不公正か[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 私は電話で会社にインタビューし、ソフトウェア開発者としての地位を求め、次の質問をしました。関係会社はデータベースベンダーではないことを付け加えておきます。 クエリオプティマイザーはどのように機能しますか? データベースのパフォーマンスが悪い場合、パフォーマンスログを使用して問題を見つけるにはどうすればよいでしょうか。 最初の電話インタビューで、すべての候補ソフトウェア開発者(卒業生または経験者)にそのような質問をするかどうかを尋ねました。彼らは、データベース開発に関する候補者の知識をテストすることを好むと答えました。 これらの質問はソフトウェア開発者のインタビューで尋ねるのは不合理であり、私のインタビューを終わらせることを要求することを会社に書いたいと思います。 以下の仮定の妥当性を確認したい a)これらの質問は、データベース開発の質問としてかなり分類することはできません。 b)質問はDBAのインタビューには適していますが、ソフトウェア開発者のインタビュー(経験の有無にかかわらず)にはまったく無理です。 c)最初の質問は、データベースベンダーにのみ関連しています。 d) 2番目の質問は公平ではありません。ソフトウェア開発者は通常、データベースパフォーマンスログを処理しないためです。これはDBAの仕事だからです。 おそらくあなたの何人かは、私が会社に手紙を書く前に、私の仮定についてコメントするか、他の提案をするのに十分親切でしょう。

5
アジャイルアプローチは、請負業者をスタッフに配置することと互換性がありますか?
一方、アジャイルアプローチは、互いに責任を持ち、プロジェクトの共同所有権を受け入れる緊密なチームを強調します。 一方、企業は契約プログラマーを使用して、実際の従業員を解雇することなく資金調達の山と谷を管理できます。資金が不足している場合、請負業者はチームの完全に統合されたメンバーであっても(そして従業員がそうではない場合であっても)、最初に実行します。企業はまた、請負業者を限られた時間だけ維持することを好みます。これは、一部の請負業者が正社員として雇用される可能性があるため、多少緩和されます。 したがって、従業員と請負業者が混在するアジャイルチームを持つことと、それに伴う大幅に異なるステータスに根本的な矛盾があるかどうかについての私の質問は? 編集:答えは、私がよく直面している緊張を表現しなかった可能性があることを示しているので、別のショットを撮らせてください。 私は正社員です。アジャイルアプローチ(少なくともここで実装されている)を使用すると、正社員と請負業者の両方のすべてのチームメンバーを、まとまりのあるチームの同等のメンバーと見なすことができます。請負業者に対する企業のアプローチは、私がそれらを過度に執着してはいけない使い捨てのリソースであると見なすように私を励ます。 他の人がこの緊張をどのように解決したか知りたいです。

10
雇用主はCS専攻よりもソフトウェア工学を好むのですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 8年前休業。 私は大学で大学院に在籍しており、ソフトウェアエンジニアリング認定プログラムを最初に取得した大学の1つでした。私の学部生はCSです。最近、私たちの大学で採用された雇用主が5つのSE専攻を採用しました。それらのいずれもCSでした。雇用主はソフトウェア工学専攻を好みますか? 私が尋ねる理由は、私は大学院の研究中に多くの異なる分野に焦点を当てることができ、本当に私が素晴らしい仕事を着陸させるのに役立つ授業を受けたいと思っているからです。今、私はCUDAを使用して、大学院プロジェクトの高度なレイトレーサーを並列化するか、拡張現実における非写実的なレンダリングに関する研究を行います。これらを追求しても、私のスケジュールにはほとんどSEクラスが残りません。 ソフトウェアエンジニアリングのルートをたどったら、おそらくデータ指向プログラミングまたはソフトウェア設計の複雑さのどちらかを研究するでしょう。 時々私は40歳で振り返ってみると、それはまったく問題になるのでしょうか?どういうわけか私は考えていません。

12
プログラマー向けの求人広告での高給の転記[終了]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 4年前休業。 プログラマーの求人広告に高い給与を掲載することで、有力な候補者を奨励し、劣る候補者を排除できますか?給与はポジションに比例します。 編集:たぶんそれはあなたのアプリケーションを変更しないでしょうが、何か懸念がありますか、これは何か赤信号を発生させますか?それは彼らを絶望的に見せないでしょうか?
10 hiring 

4
Schemeから何を学ぶべきですか?
優れたプログラマーになるのに役立つ、Schemeから学べるユニークな機能は何でしょうか。 私は主流の言語で多くの経験があり、私の視野を広げ、他の言語にはない機能的な側面について学びたいと思っています。私はjavascriptのクロージャー、C#のラムダ式に精通しており、他の言語にはないことに焦点を当てることができるものに疑問を感じていましたか?Lisp構文を除いて、私はこれまでに他の言語で遭遇し​​たことがあるような気がします。 何か新しいことを教えてくれるScheme / Lispに固有のものは何ですか?

4
引数はバイナリファイルをSCMにチェックインすることを再度示します
私は主にJavaアプリケーションを構築している会社で働いており、SCMへのバイナリファイル(依存関係と最終製品)のチェックインを停止するようにみんなを説得しようとしています。 彼らはそれが悪い習慣であることを知っていますが、彼らは「それはうまくいく」と考え、多くの人がMavenやAnt以外のビルドのための他のツールについて知っていても、実際には問題ではありません。PMとプログラマー(約50人)のどちらも、反対意見に耳を傾け、バックアップスペースの浪費であることを認める用意がありますが、習慣の変化には多大な労力が伴うため、私は本当に納得したいと思います。変更をサポートするためにどのような議論を使用しますか? 編集:さて、依存関係のようなほとんど変化しないファイルと生成されたファイルを区別することは理にかなっています。それでも、後者に反対する理由に興味があります。
10 java  builds 

12
OOPの概念を非技術者に説明する方法は?
ロックされています。この質問とトピックへの回答はロックされています。質問はトピックから外れていますが、歴史的に重要です。現在、新しい回答や相互作用を受け入れていません。 たいていの場合、プログラマーであることを他人に言わないようにします。ほとんどの場合、最終的にそれが何を意味するのかを説明してしまうからです。私がJavaでプログラミングをしていると彼らに話すと、彼らは言語に関する一般的な質問をし、それがxやyとどのように異なるかをよく尋ねます。私はまた、1)現場での経験があまりなく、2)技術者以外の人に説明するのが本当に嫌なので、説明が得意ではありません。 他の人に説明したら、本当に理解していると彼らは言っています。この場合、OOPの用語と概念を非技術者にどのように説明しますか?

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