ソフトウェア工学

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

6
Generic Repositoryには本当に利点がありますか?
新しいアプリ用の汎用リポジトリを作成する利点に関するいくつかの記事を読んでいました(例)。同じリポジトリを使用して、複数の異なるエンティティタイプに対して複数の処理を一度に実行できるため、このアイデアは素晴らしいようです。 IRepository repo = new EfRepository(); // Would normally pass through IOC into constructor var c1 = new Country() { Name = "United States", CountryCode = "US" }; var c2 = new Country() { Name = "Canada", CountryCode = "CA" }; var c3 = new Country() { Name = "Mexico", …

7
どちらが良いか:HTMLをPHPコードの内部に含めるか、外部に含めるか?
これを見てください: <?php echo "Hello World"; ?> <br /> <?php echo "Welcome"; ?> そして、これを見てください: <?php echo "Hello World"; echo "<br />"; echo "Welcome"; ?> 上記の例のどれが(少なくともパフォーマンスの観点から)より良いと考えられますか? 私は例が些細なものであることを知っていますが、良い習慣を最初から守りたいので、より多くの行があればパフォーマンスや悪影響に影響しないようにします。


10
シンプルvs複雑な(ただしパフォーマンスは効率的)ソリューション-どちらを選択するか?
私は数年前からプログラミングをしていて、ジレンマに陥っていることがよくあります。 2つの解決策があります- 一つはシンプルなもの、すなわちシンプルなアプローチであり、理解と保守が容易です。冗長性、余分な作業(余分なIO、余分な処理)が含まれるため、最適なソリューションではありません。 しかし、他は複雑なアプローチを使用し、実装が難しく、多くのモジュール間の相互作用を伴うことが多く、パフォーマンス効率の高いソリューションです。 達成するのに難しいパフォーマンスSLAがなく、シンプルなソリューションでさえパフォーマンスSLAを満たすことができる場合、どのソリューションに取り組むべきですか?簡単な解決策については、仲間の開発者の間で軽disを感じています。 シンプルなソリューションでパフォーマンスSLAを満たすことができる場合、最も最適な複雑なソリューションを考え出すのは良い習慣ですか?

6
SVNマージの難しさは何ですか?
可能性のある重複: 私はSubversionオタクですが、なぜMercurial、Git、またはその他のDVCSを検討する必要があるのですか? 時々、誰かが分散バージョン管理(Git、HG)は集中管理(SVNなど)よりも優れていると言うのを耳にします。SVNではマージが困難で苦痛だからです。実は、SVNでのマージに問題はなかったし、実際のSVNユーザーによるものではなく、DVCS支持者による主張だけを聞いたことがあるので、TVでの不快なコマーシャルを思い出す傾向があるあなたがすでに持っていてうまく動作するものは使用するのが信じられないほど難しいとふりをすることによって、あなたが必要のないものをあなたに売ろうとします。 そして、常に発生するユースケースはブランチを再マージすることです。これは、これらのストローマン製品の広告を思い出させます。自分が何をしているのかわかっているなら、そもそもブランチを再マージするべきではありません(また、その必要はありません)。(もちろん、根本的に間違っていて愚かなことをしているときは難しいです!) だから、ばかげたストローマンのユースケースを割り引いて、DVCSシステムでのマージよりも本質的に難しいSVNマージには何がありますか?
28 git  svn  mercurial  dvcs  merging 

2
XMLHttpRequestが命名規則に従っていないように見えるのはなぜですか?
私は最近JavaScriptでXMLHttpRequestオブジェクトを操作してきましたが、この名前の大文字と小文字が意味をなさないことに気づかずにはいられませんでした。「XML」はすべて大文字ですが、「Http」は大文字ではないのはなぜですか?両方とも頭字語です! 名前が次のいずれかであると、より意味があります。 XmlHttpRequest (PascalCase、JavaScriptのクラス名のベストプラクティス) xmlHttpRequest (camelCase、クラス用ではないが一般的) XMLHTTPRequest (頭字語のキャップ、プログラミングではめったに使用されない?) 何らかの理由があるに違いないと確信しているし、誰もこれを疑問視しなかったからといって、今ではそれが石になっているとは思わない。私が知らない別の命名規則はありますか?

6
HTML / CSSの命名規則に関する実用的な考慮事項(構文)[終了]
質問: 構文classおよびid値の実用的な考慮事項は何ですか? たとえば、このブログ投稿で説明されているように、セマンティクス、つまり使用されている実際の単語については聞いていないことに注意してください。命名規則のその側にはすでに多くのリソースがあり、実際には、さまざまな構文上のビットに関する実用的な情報の検索をあいまいにしています:大文字小文字の区別、インターパンクションの使用(特にダッシュ)、使用または回避する特定の文字など- 私がこの質問をしている理由を要約すると: 命名制限にIDとクラスが自然に任意の規則につながりません 命名規則のセマンティック側の豊富なリソースは、構文上の考慮事項の検索をあいまいにします これに関する信頼できる情報源が見つかりませんでした このトピックについては、SEプログラマーに関する質問はまだありませんでした:) 私が使用を検討した慣例のいくつか: UpperCamelCase、主にサーバー側のコーディングからのクロスオーバーの習慣として lowerCamelCase、JavaScript命名規則との一貫性のため css-style-classes、これはcssプロパティの命名と一致しています(ただし、Ctrl + Shift + ArrowKeyでテキストを選択すると迷惑になる場合があります) with_under_scores、私は個人的にあまり使用されていません alllowercase、覚えやすいが、長い名前では読みにくい UPPERCASEFTW、仲間のプログラマを困らせる素晴らしい方法として(おそらく読みやすさのためにオプション4と組み合わせる) そしておそらく、私はいくつかの重要なオプションや組み合わせも省略しました。命名規則にはどのような考慮事項があり、どの規則につながるのでしょうか?

15
2つのプログラミング言語を行き来するのは賢明ですか?[閉まっている]
私は2年近く、かなり多くのPHPを書いてきました。現在、.NET(主にc#)開発を行っています。ただし、時々戻ってphpを実行します。 私の主な質問は、これを続けるのが賢明なのか、C#での開発を続けるべきなのか、ということです。これは長期的に私に害を及ぼすでしょうか(私の主な目標はすべての取引のジャックになることではないことに注意してください)、またはそれを行うことは良い習慣ですか?

6
なぜパッチノートのバグIDを引用するのは悪い習慣と見なされるのでしょうか?
Bug reopen vs newからのコメントとそれに続く賛成票に基づいて: パッチノートでバグIDを引用するのは、とても友好的ではありません。–クレルプ 少なくとも一部の人々は、パッチノートでバグIDを参照するのは良い考えではないと感じているようです。私はかなり経験の浅い開発者なので、なぜそうなのか疑問に思っています。

9
些細な修正を記録する必要がありますか?
私は2つのコードショップにいます。また、プログラマの数が1人以上の場合にバグトラッカーが役立つことは理解していますが、バグ、変更、修正を記録することは些細なことの価値があると確信していません。簡単なバグを見つけたら、それを理解し、修正し、テストを実行します。そして、私はそれをログに記録する必要があることに気付きました。 理論的には、バグのロギングはバグを見つけてから修正するまでのどこかで行う必要があることを知っていますが、修正する方がロギングするよりも速い場合、ドラッグのように見えます。大規模なコードショップでは、上司は誰が何をしているのかに注意を払い、他の人が何を言っているのかを知ってうれしいです。 すでに修正したものを説明し、すぐにそれらを閉じます。私は誰もがこの閉じられたバグを再び見るのではないかと疑っています。プロセス脂肪を削減する時ですか?

6
Switchステートメントのリファクタリングと、Switchステートメントの実際の使用はありますか?
私はこの記事を読んでいて、プロジェクトにswitchステートメントがまったくないように、すべてのswitchステートメントをディクショナリーまたはファクトリーに置き換えることで削除するのかと疑問に思っていました。 何かが足りませんでした。 問題は、switchステートメントを実際に使用するか、辞書やファクトリーメソッドに置き換えるか(ファクトリーメソッドを使用する場合は、オブジェクトを作成するためにswitchステートメントを最小限使用することです)工場を使用して...しかしそれはそれについてです)。

16
開発者のチームにはマネージャーが必要ですか?
バックグラウンド: 私は現在4人のチームの一員です。1人のマネージャー、1人のシニア開発者、2人の開発者です。約3500人のスタッフを抱える組織のために、さまざまな特注の社内システム/プロジェクト(6〜8週間など)を実施しているほか、以前に作成されたシステムに必要なすべてのメンテナンスとサポートも行っています。潜在的に私たちがやってくるすべての仕事をするのに十分な人はいません-人員が不足しています。経営陣はこれを認めていますが、予算の制限により、チームに追加のメンバーを採用する能力が制限されています(たとえ給与を貯金に戻したとしても)。 変更 これにより、現在の場所に残ります。私たちのマネージャーは、牧草地の役割を新しいままにして、チームに空席を残す予定です。経営陣はこの機会を利用してチームを再構築し、チームマネージャーの役​​割が別の開発者と別の上級開発者に置き換わるようにします。彼らの論理は、より多くの開発者が必要であるということなので、ここに資金提供の方法があります(役割の1つは、別の空いているポストから部分的に資金提供されています)。 チームには直接的なラインマネージャーはなく、役割と責任はシニアと(比較的新しいポストの)サービスマネージャーに分けられます(技術知識がほとんどない開発知識/経験があり、焦点が共有されています)他の多くのチームや個人の中で)-フードチェーンの次の実際のマネージャーになる人。 最後の質問は: マネージャーなしで開発チームを実行することは可能ですか?これを経験したことがありますか?そして、どのようなことがうまくいかない/私たちに利益をもたらす可能性がありますか? 理想的には、「光を見る」ことと、この方法で物事を行うことの利点、またはそれに対する議論のためのいくつかのポイントを考えたいと思います。

4
インターセプトとインジェクション:フレームワークアーキテクチャの決定
私が設計を支援しているこのフレームワークがあります。いくつかの一般的なコンポーネントを使用して実行する必要があるいくつかの一般的なタスクがあります。特に、イベントのロギング、キャッシュ、および発生 依存関係の注入を使用してこれらのすべてのコンポーネントを各サービスに(たとえばプロパティとして)導入する方がよいのか、サービスの各メソッドに何らかの種類のメタデータを配置し、インターセプトを使用してこれらの一般的なタスクを実行するのか? 以下に両方の例を示します。 注入: public class MyService { public ILoggingService Logger { get; set; } public IEventBroker EventBroker { get; set; } public ICacheService Cache { get; set; } public void DoSomething() { Logger.Log(myMessage); EventBroker.Publish<EventType>(); Cache.Add(myObject); } } そして、ここに他のバージョンがあります: 傍受: public class MyService { [Log("My message")] [PublishEvent(typeof(EventType))] public void DoSomething() …

3
Safari Books Onlineは今でも町で最高のゲームですか?[閉まっている]
私はSafariブックスの購読者であり、長年にわたっています。私はすべての本をすぐに入手できるのが好きです。より良い競合サービスがあるかどうか疑問に思っていました。より良い検索機能を持つ可能性のある別の同等のサービスがあるかどうか誰もが知っていますか(最初にこれを尋ねるきっかけとなった不満は...)?
28 books 

10
ほとんどのプログラミング言語に '!>'(より大きくない)および '!<'(より小さくない)演算子がない理由はありますか?
何か理由があるのか​​、それとも単なる歴史の偶然なのか、ほとんどのプログラミング言語には演算子!&gt;と!&lt;演算子がないのだろうか? a &gt;= b (大きいOR Bに等しい)のように書くことができた!(a &lt; b) (より少ないNOT b)に等しくなります、a !&lt; b。 この質問は、私が自分の式ツリービルダーをコーディングしている最中に思いつきました。ほとんどのプログラミング言語は持っていないa != bためにオペレータを!(a=b)、なぜ何!&gt;と!&lt;? 更新: !&lt;(ないより少ない)で発音しやすくより&gt;=(大きいまたは等しいです) !&lt;(ないより少ない)で入力するより短いより&gt;=(大きいまたは等しいです) !&lt;(以上ではない)理解するのが簡単です&gt;=(以上) * OR2つのオペランド(grater、equals)を操作するために必要なバイナリ演算子であるのに対しNOT、単項演算子であり、1つのオペランド(より小さい)でのみ操作する必要があるためです。

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