ソフトウェア工学

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

16
ハンガリー記法を使用しないことの利点は何ですか?
私が苦労していることの1つは、ハンガリー記法を使用していないことです。私はしていないだけで、それが何であるかのタイプを参照する変数の定義に行かなければならたいです。プロジェクトが大規模になると、「bool」という接頭辞が付いた変数を見て、0/1値ではなくtrue / falseを探していることを知ることができてうれしいです。 SQL Serverでも多くの仕事をしています。データベース内のすべての変数は言うまでもなく、ストアドプロシージャの先頭に「sp」、テーブルに「tbl」を付けます。 ハンガリーの表記法を実際に使用したくない人は誰もいないと思うので、それを避けます。私の質問は、ハンガリーの表記法を使用しないことの利点は何ですか?また、大多数の開発者がペストのようにそれを避けるのはなぜですか?

7
適切な例外メッセージを書く方法
現在、コードレビューを行っていますが、気付いていることの1つは、例外メッセージが例外の発生場所を繰り返しているように見える例外の数です。例えば throw new Exception("BulletListControl: CreateChildControls failed."); このメッセージの3つの項目はすべて、残りの例外から解決できます。スタックトレースからクラスとメソッドを知っており、それが失敗したことを知っています(例外があるため)。 例外メッセージにどのメッセージを入れるか考えました。最初に、一般的な理由(たとえばPropertyNotFoundException- 理由)で例外クラスが存在しない場合は作成し、それをスローすると、メッセージに何が問題だったかを示します(たとえば、「ノード1234でプロパティ 'IDontExist'が見つかりません」 "- 何が)。どこにありStackTraceます。とき(該当する場合)ログに終わる可能性があります。どのように開発者がうまく(および修正)するためのものです 例外をスローするためのその他のヒントはありますか?特に、新しいタイプと例外メッセージの作成に関して。
101 exceptions 

24
車輪の再発明は本当に悪いことですか?
プログラミングにおけるその一般的な知識は車輪の再発明は悪いかであることを悪。 しかし、それはなぜですか? 私はそれが良いことを示唆していません。私はそれが間違っていると信じています。しかし、誰かが何か間違ったことをしている場合(プログラミングの観点から)なぜ間違っているのかを説明し、できない場合は、それが本当に間違っているかどうかを自問するべきだという記事を一度読みました。 それは私にこの質問につながります: 誰かが、言語/フレームワークに既に組み込まれている独自のメソッドを構築することにより、明らかに車輪を再発明しているのを見た場合。まず、引数のために、メソッドが組み込みメソッドと同じくらい効率的であると仮定しましょう。また、組み込みメソッドに気付いている開発者は、独自のメソッドを好みます。 なぜ彼は自分のビルトインを使用する必要があるのですか?

30
西側のプログラマーは東側のプログラマーをどのように見ていますか?
この質問の残りの半分:東洋のプログラマーは西欧のプログラマーをどのように見ていますか? 世界の東部(インド/中国/フィリピン)は、主に西部の世界(アメリカとヨーロッパ)にアウトソーシングサービスを提供しています。 オフショアチームと仕事をした経験はありますか?はいの場合、どうでしたか? 東洋のプログラマーに関する一般的なアイデアや意見はありますか(例:彼らは協力しているか、時間通りに納品しているか、質の高い仕事をしているのか)。これらは何に基づいていますか?
101 teamwork 


25
電子メールアドレスの検証はどこまで行う必要がありますか?
電子メールアドレスの検証はどこまで行われるべきかと思います。私の分野は主にWeb開発ですが、これはどこでも当てはまります。 私はいくつかのアプローチを見てきました: 「@」が存在するかどうかを単純に確認します。これは非常に単純ですが、もちろんそれほど信頼できません。 標準の電子メール形式のより複雑な正規表現テスト 完全な正規表現に対するRFC 2822 -これに伴う問題は、多くの場合、電子メールアドレスが有効であるかもしれないということですが、それはおそらく、ユーザーがどのような意味ではありません DNS検証 SMTP検証 多くの人が知っているかもしれませんが(多くの人は知らない)、電子メールアドレスには、ほとんどの人が通常考慮しない多くの奇妙なバリエーションがあります(RFC 2822 3.4.1を参照)が、あなたの検証:電子メールメッセージをアドレスに送信できるようにするか、それともユーザーが入力することを意図したものであるかを確認しようとしていますか(それ以外の場合は、「有効」 'アドレス)。 私が検討したオプションは、より難解なアドレスで警告を出すだけですが、リクエストは通過できますが、これによりフォームがより複雑になり、ほとんどのユーザーが混乱する可能性があります。 DNS検証/ SMTP検証は非常に簡単に思えますが、DNSサーバー/ SMTPサーバーが一時的にダウンし、ユーザーがどこかに登録できない、またはユーザーのSMTPサーバーが必要な機能をサポートしていないという問題が発生することを予測しています。 ここにいる経験豊富な開発者の中には、これをどのように扱うのでしょうか?私がリストしたもの以外のアプローチはありますか? 編集:私はすべての中で最も明白なことを完全に忘れて、確認メールを送信しました!それを指摘してくれた回答者に感謝します。はい、これは非常に簡単ですが、関係者全員の面倒な作業が必要です。ユーザーは電子メールを取得する必要があり、開発者はユーザーデータが有効であると確認される前にユーザーデータを記憶する必要があります。


5
オープンソースプロジェクトで著作権表示を管理する方法は?
私はこのLICENCE.md(明らかにMITライセンスそのもの)を含むGitHubでホストされているプロジェクトに取り組んでおり、追加しています: Copyright (c) 2012 [Acme Corp] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell …

10
コミット間の待機時間が長すぎる場合はどうすればよいですか?
私はいたずらだった...あまりにも多くの「カウボーイコーディング」、十分なコミット。さて、ここで私は多大なコミットをしています。はい、ずっとコミットしていたはずですが、今は遅すぎます。 何が良いですか? 私が変更したすべてのものをリストする1つの非常に大きなコミットを行う ファイルには複数の修正、変更、追加のメソッド名などがあるため、コンパイルできない可能性のある小さなコミットに分割してみてください 適切なコミットのためだけにファイルの部分的な復元を行ってから、新しい変更を元に戻します。 注:現時点では、このプロジェクトに取り組んでいる唯一のプログラマーです。少なくともより多くのプログラマを雇うまで、これらのコミットコメントのいずれかを見るのは私だけです。 ところで:私はSVNとSubclipseを使用しています。これらの変更を行う前に、新しいブランチを作成しました。 詳細:そもそもどうやってこの状況に陥ったのかということに関して、別の質問をしました。アプリケーションの接着剤を書き換える準備をする方法

15
締め切りはアジャイルですか?
明確にするため、締め切りは次のとおりです。 制限時間または期限は、目標またはタスクを達成する必要がある狭い時間フィールドまたは特定の時点です。 ウィキペディアから 私のソフトウェア開発のキャリア全体で「アジャイル」を行ってきましたが、これはどこでも、少なくとも次のプラクティスが順守されていることを意味しているように見えます。 毎週または隔週のスプリント 回顧スプリント計画 製品の所有者 スクラム ユーザーストーリー しかし、私がこれまでに行ったすべてのプロジェクトは、期限を設定することを主張しています。アジャイルが適応計画、柔軟性、変化に焦点を合わせようとしていることを考えると、締め切りはアジャイルですか? 私の意見では、納期が柔軟性の欠如と品質の欠如につながるため、そうではありません。代わりに、スプリントと早期納品に集中するほうが価値があると思います。しかし、私が参加したすべてのサークルで、そうではなく、締め切りはアジャイル開発と連動すると見られています。
100 agile 

10
プログラミング経験のない明るい人に、どのようにプログラミングを教えることができますか?[閉まっている]
プログラミングの経験はないが、賢く有能な人であるIT部門の人を連れて行って、既存の.Netアプリケーションをサポートするエントリーレベルの開発者のようなプログラミングに移行するのを手伝ってほしいと頼まれました。私は間違いなくこの人がそれを行うことができると信じていますが、私は彼を速くするための最も速い方法を探しています。たくさんのアイデアがありますが、他の人の考えを見てみたいと思いました。これは彼の学習方法にも大きく依存することはわかっていますが、私は一般的に話しているところです。 だから質問:開発者(この場合は.Net)を開発者以外の人が素早くスピードアップするための最良の方法は何だと思いますか?
100 learning  teaching 


30
15歳の人にプログラミングを説明する30分[終了]
私は来週、15歳の職業体験生と一緒に座って、開発者の生活と仕事について話すことを志願しました。 キャッチは 私はちょうど30分を持っています、そして 私は彼女と話をする人の1人に過ぎません。ビジネスでさまざまな役割を果たしている他の人たちも、彼女と一緒に仕事の要素を1日中駆け抜けていきます。 私は何をカバーすべきですか、そして私はちょうど30分で彼女に教えることができますか? 彼女にはおそらく開発やプログラミングの経験がないと思います。


30
どのような「ベストプラクティス」が常にベストとは限らないか、そしてその理由は何ですか?[閉まっている]
「ベストプラクティス」は業界のいたるところにあります。「コーディングのベストプラクティス」のGoogle検索では、ほぼ150万の結果をアップになります。このアイデアは多くの人に快適さをもたらすようです。指示に従うだけで、すべてがうまくいきます。 ベストプラクティスについて読んだとき-たとえば、最近Clean Codeのいくつかを読んだだけで-緊張しました。これは、このプラクティスを常に使用する必要があるということですか?添付されている条件はありますか?それが良い習慣ではないかもしれない状況はありますか?問題についてさらに学ぶまで、どうすれば確実に知ることができますか? Clean Codeで言及されているプラ​​クティスのいくつかは私と相性がよくありませんでしたが、それが悪い可能性があるからなのか、それとも私の個人的な偏見によるものなのかは正直わかりません。ハイテク業界の多くの著名人がベストプラクティスがないと考えているように思われることを知っているので、少なくとも私のしつこい疑念が良い会社に私を置きます。 読んだベストプラクティスの数は多すぎて、ここにリストしたり、個々の質問をしたりすることはできないため、これを一般的な質問として言いたいと思います。 「ベストプラクティス」として一般的にラベル付けされているコーディングプラクティスは、特定の状況下で次善または有害な場合があります。それらの状況は何ですか?なぜ彼らは練習を貧しいものにしますか? 具体的な例や経験について聞きたいです。

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