ソフトウェア工学

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

8
ASP.NetまたはWPF(C#)?[閉まっている]
私たちのチームはこれに分かれており、第三者の意見を聞きたかったのです。 アプリケーションを構築しているため、WCFサーバーで.Net WPFデスクトップアプリケーションを使用するか、jQueryを使用するASP.Net Webアプリを使用するかを決定できません。私はここでいくつかの仕様で質問をし、どちらの側を使用することの長所/短所が何であるかを見てみると思った。私には自分のお気に入りがあり、偏見を感じています。 理想的には、できるだけ早くソフトウェアの初期リリースをビルドし、その後スローダウンし、後で必要な追加の機能/コンポーネントをビルドするのに時間がかかります。何よりも、ソフトウェアが高速であることを望んでいます。ユーザーは1日中レコードを調べ、レコードの読み込みや画面の更新が遅れると生産性が低下します。 アプリケーションの詳細: 私は初期バージョンの約100の異なる画面を見積もっていますが、最初のリリース後に追加の多くの画面が追加される予定です。 リマインダーおよびイベントシステムに双方向通信を使用したいと考えています 現在、最大100人のユーザーをサポートする必要がありますが、最大500人のユーザーを増やすことができると言われています。 複数の場所があります 考慮事項(最初のケースではなく、将来のリリースの場合があります): 初期リリース後に追加される追加コンポーネントのスペース(これらの多くは...おそらく最初のアプリケーションよりもここで動作します) キーボードナビゲーション パフォーマンスは必須です 初期バージョンへの生産速度 低いメンテナンスオーバーヘッド 今後のサポート ソフトフォン/スキャナーの統合 開発者: 過去数か月間WPFを学んでいたプログラマーが1人いて、これにWPFを使用することを提案したプログラマーがいました。 ASP.Netに精通しており、将来プロジェクトを支援する可能性のある2人目のプログラマがいますが、現在のソフトウェアのメンテナンスに時間を費やしているため、最初のリリースまでは作業していません。 両方で働いており、どちらかで快適な私がいます プロジェクト管理を行っている外部企業があり、ASP.Net企業です。 他に1-2人を採用する予定ですが、どの方向に進むのかを最初に知る必要があります 環境: 一般ユーザーは、ターミナルサービスを備えたWindows 2003サーバーを使用しています。RDP接続を介してWYSEシンクライアントを使用して接続します。管理スタッフは、XP以上のPCを所有しています。IEをWebブラウザとして使用することに制限されていますが、ユーザーは独自の解像度を指定できます。 その他の場所は、MPLS接続を介してネットワークに接続します それに基づいて、あなたは何を選択しますか、そしてなぜですか?
31 asp.net  wpf 

5
プログラミングが遅すぎますか?[閉まっている]
私はこの業界に1年しかいませんでしたが、特定のタスクを見積もるのに問題がありました。これを閉じる前に、はい、私はすでにこれを読みました:見積もりを求められたときにどのように対応しますか?それは私が抱えている問題とほぼ同じです。しかし、より具体的な経験の尺度、定量化可能な、またはおそらく他のプログラマーの平均的なパフォーマンスを探しています。回答の範囲は数週間で、1日程度に割り当てられたタスクのレベルに関する回答を探していました。(これにはQAやドキュメントの送信は含まれず、TDDを使用した場合のテストの作成からテストの送信前のページの作成までの実際の開発時間のみが含まれます) 現在の現在のレートは次のとおりです(ASP.NET Webフォームで)。 現在、1日(8時間)の時間を与えられている場合、既に構築されたアーキテクチャ上に、グリッドリスト(複雑なロジックはなく、作成と読み取りのみ)を含む単純なデータ入力ページを開発できます。 複雑な機能を追加し、ページを更新および削除すると、1日がタスクに追加されます。 ページをゼロから開始する必要がある場合(ソリューションなし、既存のWebサイトなし)、1日かかります。 (常にではありません)しかし、何か新しいことに遭遇したり、まだ行っていない場合は、丸一日かかります。 予想よりも長い見積りをするたびに、他の人よりもかなり遅れていると他の人が思うと感じます。1ページだけでも1日もかからないはずだという期待があったので、心配しています。はい、間違いなく改善の余地があります。常にあります。学ぶべきことがたくさんあります。しかし、私の現在のレートが遅すぎるのか、ただ平均なのか、それとも業界で1年以内の誰かの平均なのかを知りたいです。


12
自分の好きな分野に特化するのか、他の分野に拡大して視野を広げるのがよいでしょうか?[閉まっている]
これは私が長い間考えてきたジレンマです。 私は大学院生であり、興味のあるトピックはプログラミング言語の設計、コード分析、コンパイルなどです。これまでのところ、この分野は私にとって非常に興味深く、やりがいのあるものでした。それに特化する。すぐに「スタイルから抜け出せない」比較的堅実な分野だと思います。このような複雑な分野では、専門家が話していることを表面的に理解している単なる別の男よりも、本当の専門家である方が良いといつも考えてきました。 一方、このように専門化することで、将来の選択肢が本当に制限されると感じています。私は、問題に対する学際的なアプローチを常に強く信じてきました。たぶん、他の分野で経験を積むことができる一般的なプログラミングの仕事を探しに行く必要があります。また、問題を解決するために私の好きな分野を適用することもあります。1つまたは2つのフィールドのみを専門とすることで、枠を超えて思考を停滞させ、停滞を引き起こすことができます。 この選択についてもっと意見を聞きたいです。真実は、私はすでに選択肢の1つに傾いているので、基本的な心理学は私の心を変えるものは何もないと言いますが、私はまだいくつかのフィードバックを聞きたいです。

11
生活のためのプログラミングは、テクノロジーを楽しむあなたの能力を台無しにしましたか?[閉まっている]
アーサーC.クラークを引用するには: 十分に高度な技術は、魔法と見分けがつきません。 かつて私は驚きと驚きをもってテクノロジーを見ていた。私はそれを分解し、それがどのように機能するかを理解し、それをすべて把握したかったのです。技術は魔法でした。私はもっ​​と年をとっていて、もっと知っていて、他の人をその種の不思議で満たすことを願って日々を過ごしています。しかし最近、テクノロジーに対する私自身のa敬の念が大幅に削減されていることに気付きました。もっと頻繁に私はちょうどそれが私の若者にあるように見えたほどエレガントでもシームレスでも、洗練された、または完全に配信されていないことに悩まされます。それはすべて壊れてぎこちないように見えます。 プログラミングはテクノロジーを楽しむ能力を台無しにしましたか?あなたはtechnology敬の念を抱くことをやめ、少し技術を手に入れるたびに、「彼らはこれをもっとうまくやることができただろう」と言い始めただけですか?

16
IDE(Eclipse)を使用してソフトウェアを開発しています。なぜvimまたはemacsに切り替える必要があるのですか?[閉まっている]
私の仕事はjava / web開発者です。私は日食を約5年間使用しています。私は素晴らしいと思いますし、javascriptとhtml / jspにWebstormも使用しています。 サーバーにsshして設定ファイルをいじる必要がある場合があります。このために私はviを使用し、それは私を苦しめます。私は構文/コマンドをリストするウェブページを立ち上げなければなりません:エスケープを押し、次にアスタリスクを3回回してください。テキストはカーソルの2行上に入力されます。それは私にはとても直感的ではなく、90年代後半に育った人は誰でも想像します。 ここに、私は日食が素晴らしい(そして他のIDEを想定している)と考え、emacsやvimに切り替えない主な理由を挙げます。 プロジェクトを再コンパイルする必要がない強調表示エラー。 コードアシスト。 リファクタリング。 オープニングコールの階層/オープニング宣言。 ソース管理と完全に統合されています。 デバッガが含まれています。 サードパーティのプラグインが利用可能-例えば、findbugs / checkstyle。 私が聞いた議論の1つは、emacs / vimを使用すると独自のプラグインを作成できるということです。しかし、すべてがすでにそこにあるので、あなたはする必要はありません!この半分構築された車を買うと言っているように、あなたは残りを自分で構築できます。 なぜemacs / vimを使用しているのですか?それを使用する人々は、実際に大規模な組織の複雑なオブジェクト指向プロジェクトに取り組んでいますか? vim / emacsに切り替える理由は何ですか。切り替えた場合、生産性はどのように向上しますか?
31 ide  eclipse  vim  emacs 


4
TDDが高いROIを提供するエリアと、ROIが非常に低いためフォローする価値がない他のエリアはありますか?[閉まっている]
テスト駆動開発。好きです。 ただし、テストの作成にはオーバーヘッドが必要です。したがって、TDDをコードベース全体で普遍的に使用する必要がありますか、それともTDDが高いROIを提供する領域と、ROIが非常に低いためフォローする価値がない領域があります。

10
あなたの会社にはコーディング標準がありますか?[閉まっている]
最近、Microsoftがコーディング標準ドキュメント(All-In-One Code Framework Coding Standards)をリリースしたのを見て、考えました...私が働いている会社には、正式なコーディング標準がまったくありません。開発者は数人しかいませんが、私たちは同じようなスタイルに進化するのに十分な長さで協力してきましたが、それは決して問題ではありませんでした。 あなたが働いている会社には、文書化されたコーディング標準がありますか?いいえの場合、なぜですか?標準があれば違いはありますか?ゼロから標準を書く価値がありますか、それとも別の標準を独自のものとして採用する必要がありますか(つまり、Microsoftの標準を自分のものにする)。


13
あなたの最も難しいバグの狩りは何でしたか?どのようにして見つけて殺しましたか?
これは「知識を共有する」質問です。あなたの成功や失敗から学ぶことに興味があります。 役立つ情報... バックグラウンド: コンテキスト:言語、アプリケーション、環境など バグはどのように識別されましたか? バグを特定したのは誰ですか? バグの再現はどれほど複雑でしたか? 狩り。 あなたの計画は何でしたか? どのような困難に遭遇しましたか? 問題のコードはどのようにして最終的に見つかりましたか? 殺害。 修正はどの程度複雑でしたか? 修正の範囲をどのように決定しましたか? どのくらいのコードが修正に含まれていましたか? 死後。 根本的には根本的な原因は何ですか?バッファオーバーランなど 30,000フィートからの根本原因は何でしたか? プロセスには最終的にどのくらい時間がかかりましたか? 修正によって悪影響を受けた機能はありましたか? どのような方法、ツール、動機が特に役立ちましたか?...ひどく役に立たない? もう一度やり直せたら?............ これらの例は一般的なものであり、すべての状況に適用できるわけではなく、おそらく役に立たない可能性があります。必要に応じて味付けしてください。
31 experience  bug 

24
プログラミングインタビューの対象 [閉まっている]
コンピューターサイエンスの修士号を取得し、開発者としての最初の就職面接を受けました。私は大規模な開発プロジェクトの経験はあまりありませんが、大学教育が何かに役立つことを期待しています。 面接官を感動させるものは何を持っていけばいいのでしょうか?特に新卒者から、ほとんどのインタビュアーは何を期待しますか? **編集: 面接は大丈夫でしたが、パンツを忘れてしまいました。 すばらしいアドバイスをありがとう!
31 interview 

29
コードでどのように空白行を使用しますか?
空白については、中括弧の配置について既にいくつかの意見があります。 私自身は、「論理的」なグループに属するものを分離するために、コードに空白行を振りかける傾向があり、できれば次の人が作成したコードを読みやすくすることを願っています。 実際、私は書くようにコードを構造化すると言います。数行(10行よりも短い)より長くない段落を作成し、各段落を自己完結させようとします。 例えば: クラスでは、一緒に行くメソッドをグループ化し、それらを次のグループから空白行で分けます。 コメントを書く必要がある場合は、通常、コメントの前に空白行を入れます メソッドでは、プロセスのステップごとに1つの段落を作成します 全体として、私はめったに4/5以上の行が一緒にクラスター化されることはなく、非常にスパースなコードを意味します。 私は実際にコードを構造化するためにそれを使用しているので(実際にインデントを使用しているので)、この空白すべてを無駄とは考えていません。 例えば: for (int i = 0; i < 10; ++i) { if (i % 3 == 0) continue; array[i] += 2; } 2つのステートメントには明確な明確な目的があるため、明確にするために分離する必要があると思います。 それでは、実際にコードで空白行を使用する(または使用しない)方法は?

10
通常、オブジェクトまたはそのメンバー変数を関数に送信しますか?
これらの2つのケースの間で一般的に受け入れられている方法は次のとおりです。 function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } または function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } 言い換えれば、一般的にオブジェクト全体を渡すか、必要なフィールドだけを渡す方が良いでしょうか?

10
Math.Sqrt()が静的関数なのはなぜですか?
静的メソッドとインスタンスメソッドに関する議論Sqrt()では、静的メソッドではなく、数値型のインスタンスメソッドである必要があると常に考えています。何故ですか?それは明らかに価値に作用します。 // looks wrong to me var y = Math.Sqrt(x); // looks better to me var y = x.Sqrt(); 多くの言語にはインスタンスメソッドがあるので、値型にはインスタンスメソッドを含めることができますToString()。 コメントからいくつかの質問に答えるには:なぜ1.Sqrt()合法ではないのですか?1.ToString()です。 一部の言語では値型のメソッドを使用できませんが、一部の言語では使用できます。Java、ECMAScript、C#、Python(__str__(self)定義済み)など、これらについて話します。同じことがceil()、floor()などの他の関数にも当てはまります。

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