ソフトウェア工学

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

5
Rubyを学習する際にPython開発者は何を知っておくべきですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 私は約18か月のPythonプログラマーであり、1つのインターンシップといくつかのサイドプロジェクトで構成されており、自分はこの言語にかなり慣れていると思います。 ただし、プログラミング分野ではRubyに多くの注意が向けられているようですが、Pythonにはあまり注目されていません。 それでは、Rubyを学習する際に、Rubyの単なる悪い習慣であるPython的なものがあるでしょうか?何に注意し、何を避けるべきですか?

10
GoFデザインパターン-実際にどのパターンを使用しますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 デザインパターンの分野で同僚を教育しようとしています。オリジナルのGang of Fourパターンの一部は少し難解なので、すべてのプログラマーが知っておくべき「必須」パターンのサブグループがあるのではないかと思っています。リストを見ると、おそらく使用したと思う- 抽象工場 工場工法 シングルトン ブリッジ ファサード コマンド 実際にどれを実際に使用しますか、また何に使用しますか? パターンのリストが必要な人のためのリンク

9
キャリアアドバイス:プログラミング言語の理論の博士号[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私はプログラミング言語の理論に非常に興味があり、このトピックで博士号を適用しますが、大学院教育後のキャリアについてもっと知りたいです。教授であることに加えて、どのような職業に就くことができますか?

6
手続き型からオブジェクト指向コードへの変換
大規模なASP.NET Webフォームアプリケーションの既存のコードベースのクリーンアップを開始する方法に関する戦略を学習することを目的として、「レガシーコードとクリーンコードの効果的な使用」を読んでいます。 このシステムは2005年から使用されており、それ以来多くの機能強化が行われています。もともと、コードは次のように構成されていました(そして、まだ大部分はこのように構成されています): ASP.NET(aspx / ascx) コードビハインド(c#) ビジネスロジックレイヤー(c#) データアクセス層(c#) データベース(Oracle) 主な問題は、コードがオブジェクト指向のように手続き的に偽装されていることです。これは、両方の本で説明されているすべてのガイドラインに事実上違反しています。 これは、ビジネスロジックレイヤーの典型的なクラスの例です。 public class AddressBO { public TransferObject GetAddress(string addressID) { if (StringUtils.IsNull(addressID)) { throw new ValidationException("Address ID must be entered"); } AddressDAO addressDAO = new AddressDAO(); return addressDAO.GetAddress(addressID); } public TransferObject Insert(TransferObject addressDetails) { if (StringUtils.IsNull(addressDetails.GetString("EVENT_ID")) || StringUtils.IsNull(addressDetails.GetString("LOCALITY")) || …

3
設計パターンを学習するための推奨順序は?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私はそこにある設計パターンの量に気づかずにはいられません。 誰が私がそれらを学ぶべきである注文について提案をしますか?または、それらをランダムに選択する必要がありますか? これまでのところ、私が知っているのはシングルトンだけです。

4
データベースでの作業中にオブジェクト指向とテスト可能性を維持する
データベースを操作しながら、ユニットのテストを可能にするOOP戦略にはどのようなものがありますか?Userクラスがあり、本番環境がMySQLに対して機能しているとします。PHPを使用してここに示す2つの可能なアプローチがあります。 load()およびのインターフェイスで$ data_sourceを渡し、save()データのバックエンドソースを抽象化します。テスト時には、別のデータストアを渡します。 $ user = new User($ mysql_data_source); $ user-> load( 'bob'); $ user-> setNickname( 'Robby'); $ user-> save(); データベースにアクセスし、結果行をユーザーのコンストラクターに渡すファクトリーを使用します。テスト時には、$ rowパラメーターを手動で生成するか、UserFactory :: $ data_sourceでオブジェクトをモックします。(変更をレコードに保存するにはどうすればよいですか?) class UserFactory { static $data_source; public static function fetch( $username ) { $row = self::$data_source->get( [params] ); $user = new User( $row ); return $user; …

4
最初の企業クライアントを扱うとき、どこから始めますか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は最近、オンライン調査中に含まれる作業の多くを自動化するデスクトップクライアントを開発しました。このツールを2〜3時間で開発し、1時間の作業を約5分に短縮しました。Softwasにはある程度の可視性があり、組織内の一部の上級者は、時間と労力の節約に興奮しています。今では、会社は会社内のすべての営業担当者にソフトウェアを配布することに興味があり、おそらく私からも購入したいと考えています。 私は企業のクライアントにソフトウェアを販売する可能性がある状況に一度もありません。私は個人的なプロジェクトに取り組んだか、雇用主のために社内ソフトウェアを開発しただけです。公正な価格とは何なのか、あるいは支払いの公正なモデルとは何なのかわからない一定期間にわたってそのアプリケーション、または何?)。 私は、この状況にどのようにアプローチするかを知る基礎を与えるような経験をしていないだけです。知識に基づいた選択を進めるために、どのようにしてこの知識を得ることができますか?

10
お金を稼ぐために、どの時点でソフトウェア開発の原則をいくつか捨てますか?
興味深いことに、メディアがどこにあるかを見るために、この質問をそこに投げ出したいと思います。 過去12か月で、TDDとソフトウェア開発におけるアジャイルの価値の多くを取り上げました。私はソフトウェアの開発がどれほど良くなったかに圧倒され、それらを原則から外すことはありませんでした。まで...私は年間の持ち帰り給与を倍増する契約の役割を提供されました。 私が参加した会社は特定の方法論を踏んでおらず、チームはコードの匂いやソリッドなどのことを聞いていませんでしたし、チームでさえもしていないなら、TDDに時間を費やすことはありませんでした実際にユニットテストを見ました。売り切れですか?いいえ、完全ではありません...コードは常に「ボブおじさんの教えに従って」「きれいに」書かれ、SOLIDの原則は必要に応じて私が書くコードに常に適用されます。しかし、テストフレームワークを作成したとしても、テストフレームワークを正しく使用/保守することはありませんでした。 それを例にとると、開発者は個人的にお金/その他の利益のために職人技の原則を落とすべきではないという点を教えてください。これは、自分のニーズ、ビジネスニーズ、職人技などのためにどれだけ関心があるかについて、非常に個人的な意見になり得ることを理解しています。しかし、たとえば、テストチームは、プログラミングの単体テストを理解するのではなく、私がやったように自分自身を許すことができるでしょうか?あなたが落とすものがあることを考えると、通常はあなたが落とすものを補うビジネスに等しい費用があるはずです-できれば、もちろんあなたがあなた自身のポケットを並べてコミュニティ/社会的コラボレーションではなく)。 お金を2倍にして、RADに戻りますか?または、歩いて、アジャイルをしている人を探して、決して振り返らないでください...

6
チームリーダーの主な仕事は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 アジャイルプログラミングモデルに続くプロジェクトで、チームリーダーの主な仕事は何ですか? チームリーダーとプロジェクトマネージャーの仕事の違いは何ですか?

7
職場でのペアプログラミングはどのくらい一般的ですか?
私はいつもペアプログラミングに興味を持っていますが、12年の開発で、彼らがこのプラクティスを採用した場所で働いたことはないので、人々がそれをどう見るかについて常に懐疑的です。 これはお金/時間(同じコードで作業している1台のコンピューターで2人の人を見つけた先の尖った上司!!!!彼らはあえて!)または他の理由によるのだろうか?

2
大きくて複雑なソフトウェア製品を遅くするものは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 閉じた3年前。 あまり関係のない理由で、私はDelphi 7をこのような長い時間でもう一度インストールしました。私は言わなければならない、私は完全に吹き飛ばされた-私はかなりしばらくの間ではなかった方法で。これは私が物事を覚えている方法ではありません。インストールには約30秒かかりました。起動には2秒かかり、すぐに使用できました。開始後、2番目に「実行」を押すと、1秒以内に空のプログラムが既に表示され、実行されています。コンピューターの速度が大幅に向上しました! しかし、私がこのように吹き飛ばされた理由は、通常私はVisual Studio 2010を使用しているためです。確かに、デルファイ7は、Visual Studio 2010よりもはるかに小さいシステムであるが、それは持っている外観がすべて本当に必要なものを持っていることの:コントロールパレット、フォームデザイナ、コード補完とコードエディタを。言語がよりシンプルで、コード補完のパワフルさが少なく、IDEの拡張性や機能が豊富ではないかもしれないことを理解していますが、それでも:(どのメカニズムを介して)どのように機能するのかわかりません多くの追加機能(まだトリガーしていなかったかもしれません)により、Visual Studioのようなシステムは常に比較して低迷します。 システムの操作に経験のある人にVisual Studioの規模を聞いてみたいと思います。それが遅くなる原因は何ですか?コードベースを人間の理解能力の範囲内に保つために必要な抽象化のレイヤー上のレイヤーですか?実行する必要があるコードの量は膨大ですか?それは、クロックサイクル/メモリ使用部門の(驚くほど巨大な)費用で、プログラマの時間節約アプローチに向かう現代の傾向ですか?

7
科学/エンジニアリングプログラミングをC開発者に伝える推奨方法はありますか?
Webアプリケーションのバックエンドプロセスの一部として、Cに移植する必要がある多くのMATLABコードがあります(この作業には実行速度が重要です)。このコードをC開発者にアウトソースしようとするとき、MATLABコードを理解しているC開発者はほとんどいないと思います(間違っている場合は修正してください)(インデックス作成やメモリ管理などは異なります)。コードが何をするのかを最もよく伝えるために私が従うべき手順を推奨できるC開発者がいるのだろうか? たとえば、MATLABコードを提供し、行ごとに何をしているのかを説明する必要がありますか?または、数学/アルゴリズムを提供し、平易な英語で説明し、C開発者にこの理解を独自の方法で実装させます(たとえば、開発者が複雑な数学の操作方法を理解していると仮定できますか(想像上の数値)、ヒストグラムの生成方法、FFTの実行方法など)? または、より良い方法はありますか?これを行う必要があるのは私が最初ではないことを期待しているので、そこにいるC開発者がこの状況に陥り、このタスクをどのように転送したいのか、従来の知恵を共有できますか? コメントを事前に感謝します。
16 c  matlab 

7
SQLテーブルの変更をどのようにバージョン管理/追跡しますか?
全員がローカルテーブルと開発テーブルを変更する開発者のチームで作業する場合、どのようにしてすべての変更を同期しますか?誰もがSQLの変更を保持する中央ログファイルですか?テーブルの変更ステートメント、ローカルデータベースを最新バージョンにするために開発者が実行できる個々の.sqlファイルを追跡するWikiページですか?私はこれらのソリューションのいくつかを使用しましたが、うまく機能する優れた堅実なソリューションを一緒に得るために努力していますので、あなたのアイデアに感謝します。


7
Webフレームワークを使用することで得られる長所と短所は?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 この質問は、Cake PHP、Zend、jQuery、ASP.NETなどのWebベースのフレームワークを使用する利点と欠点を抽出することに焦点を当てています。この質問は完全に言語に依存しません。「巨人の肩に立つ」という概念から始めましょう。 利点: 開発者を支援 -以前は数百行のコードを使用していた機能を1つの単純な関数呼び出しに圧縮することにより、開発者はより複雑な機能をWebサイトに統合できます。 許可迅速化開発アプリケーションの-これは必要性のウェブサイトは非常に小さなウィンドウで作成した人のために非常に関連している(誰これのいずれかの例を持っています?) 低コスト -プログラマーはコスト削減を顧客に回すことができます。これは、まったく新しい顧客がウェブサイトを望んでいましたが、以前は高い開発コストを払うことができませんでした。 短所: 理解の喪失 -開発者は、フレームワークの機能に依存するため、物事がどのように機能するか(フードの下)の理解を失う危険にさらされています。 構成の限界-フレームワークの構成よりも先に進むと、生産性がすぐに低下するため、フレームワーク構成の外部で機能を実装することは困難です。 開発者のトラムライン -あなた(開発者)は、開発者があなたにしたいやり方で物事をしなければなりません。 人々は私の主張をどう評価しているのか、そして誰かがそれらに同意していないのだろうか?また、人々が追加のポイントを持っている場合、私は感謝するでしょう。

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