ソフトウェア工学

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

10
本当に難しいプログラミングの本は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 プログラミングに関する非常に厳しい本は何だと思いますか。私はcなどの低レベル言語と、アルゴリズム、ポイント、関数などについて話しています。 どうもありがとう。
14 books 

3
GitHubでのGitプロジェクトの依存関係
PHPフレームワークとフレームワークの上にCMSを作成しました。CMSはフレームワークに依存していますが、フレームワークはCMSファイル内の自己完結型フォルダーとして存在します。GitHubでそれらを個別のプロジェクトとして維持したいのですが、フレームワークを更新するたびにCMSプロジェクトを更新するのが面倒になりたくありません。理想的には、これらのファイルを物理的にコミットするのではなく、CMSに何らかの方法でフレームワークファイルをプルして事前定義のサブディレクトリに含めるようにしたいと思います。 これはGit / GitHubで可能ですか?もしそうなら、それを機能させるために何を知る必要がありますか?私は非常に基本的なレベルのGitを使用していることに留意してください。Eclipse用のGitプラグインを使用してリポジトリを作成し、コミットし、GitHubに接続できます。私は現在、プロジェクトでソロで作業しているので、これまでGitについてこれ以上学ぶ必要はありませんでしたが、将来的に他の人にGitを公開したいと思います。 また、依存関係のあるプロジェクトの理想的なワークフローは何でしょうか?そのテーマに関するヒントも大歓迎です。私の設定についてさらに情報が必要な場合は、コメントでお尋ねください。
14 php  git  github  dependencies 

6
開発者がVSSを希望する場合、VSSの使用を許可する必要がありますか?
私は自分の部署にMercurialを紹介しました。私はそれが大好きですが、それは私の最初のバージョン管理の経験です。Web開発用にNetBeans PHPで使用しています。 社内のアプリケーションで作業する別の開発者は、Visual Source Safeの使用を好み、切り替えたくないと考えています。彼はVisual Studio環境で働いています。 他のすべての開発者は、これを除いてMercurialに買収しました。しかし、ほとんどの場合、私たちは皆独立して仕事をしています。 私はこの部門を正しい方向に動かそうとしています。Kilnのアカウントで全員を設定しました。Fogbugzを使用しているすべての人にも道を譲りたいと思っていました(現在、バグデータベースが維持されていないため) VSSを使用したことはありませんが、非常に悪いことを聞いています。 それが彼が好むものであるなら、彼にVSSの使用を続けることを許可するほうが良いでしょうか、それともMercurialで彼を乗せるのが最善の利益でしょうか?

1
イベントを宣言する好ましい方法
.NETイベントモデルの理解にかなり満足しています。システムの小さなニュアンスを誤解しているのではないかと思います。 クラスにイベントを入れ始めたとき、次のような標準的な方法を使用します。 public event EventHandler<MyEventArgs> MyEvent; これは、イベントにサブスクライブするものには、次のようなメソッドが必要であることを意味しました。 void HandleThatEvent(object sender, MyEventArgs args){...} これは素晴らしいことですが、送信者を気にすることはめったにないため、多くのメソッドシグネチャが肥大化しました。 だから私は自分のデリゲート型の宣言に切り替えました public delegate void MyEventHandler(SomeClass argument); これにより混乱が減りましたが、ハンドラーの作成に関して小さな問題が残りました。 eventImplmentor.MyEvent += HandleThatEvent; . . . void HandleThatEvent(/*oh, um, what arguments does it take? Intellisense isn't telling me*/) だから私はデリゲートの宣言に戻って見て、そして戻ってそれらを書くか、それをコンパイルして言われるのを待たなければなりません。 だから今、代わりに、私はちょうどAction、Action<T>または適合するテンプレートを使用しています。 public event Action<SomeClass> MyEvent; イベントにカーソルを合わせて、どのパラメーターが期待されるかを知ることができます。 私の質問、結局のところ:C#でイベントを宣言するためのベストプラクティスはありますか?EventHandler<T>道に戻る必要がありAction<T>ますか、それとも容認できますか?
14 c# 

14
本を読むときにエクササイズをしますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 本(プログラミング関連の本)から学習するときに実際に何人の方がエクササイズをしているのか、私は現在C ++の本を読んでいます。ほとんどの人はこれをしますか?または、彼らは本全体を読んで、困難に見えた練習に戻りますか?
14 learning  books 

9
UbuntuはITコンサルタントのラップトップとして機能しますか?
私はコンサルタントプログラマーとして働いており、通常は大企業で働いています。私はWindowsラップトップを使用しており、同僚の多くはMacを使用しています。 私の個人的な好みは、開発環境を完全に制御できる場合、Ubuntuを実行することです。しかし、Microsoft固有の製品、特にIEがときどき必要になります。 Macを使用する同僚は、これらの状況で仮想マシンでWindowsを実行することがよくあります。 私の質問は、Ubuntuはエンタープライズプログラマーのラップトップにとって実行可能なソリューションですか?たとえば、Ubuntu上のVMでWindowsを実行するのはMacで実行するのと同じくらい簡単ですか?誰かがこれを試しましたか?Ubuntuがこの環境での開発にMacほど役に立たない特別な理由はありますか? 私は.NET開発を行っていないことに注意してください。したがって、通常は、Apacheサーバーで実行され、Windowsを実行しているクライアントによって使用されるJavaを扱います。

4
お気に入りのビット単位のテクニックは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 数日前、StackExchangeのメンバーであるAntoは、ビット単位の演算子の有効な使用方法について問い合わせました。私は、整数を2のべき乗で乗算および除算するよりも高速であると述べました。StackExchangeメンバーのDaeminは、右シフトが負の数の問題を引き起こしたと述べて反論しました。 その時点で、符号付き整数でシフト演算子を使用することを考えたことはありませんでした。私は主に低レベルのソフトウェア開発でこの手法を使用しました。したがって、常に符号なし整数を使用しました。Cは、符号なし整数で論理シフトを実行します。論理右シフトを実行する場合、符号ビットには注意が払われません。空白ビットはゼロで埋められます。ただし、Cは符号付き整数を右にシフトするときに算術シフト演算を実行します。空白ビットは符号ビットで埋められます。この違いにより、負の値はゼロに切り捨てられるのではなく、無限に丸められます。これは、符号付き整数除算とは異なる動作です。 数分考えた結果、一次解決策が生まれました。このソリューションは、シフトする前に条件付きで負の値を正の値に変換します。値は、シフト操作が実行された後、条件付きで負の形式に変換されます。 int a = -5; int n = 1; int negative = q < 0; a = negative ? -a : a; a >>= n; a = negative ? -a : a; このソリューションの問題は、通常、条件付き割り当てステートメントが少なくとも1つのジャンプ命令に変換されることであり、ジャンプ命令は、両方の命令パスをデコードしないプロセッサーでは高価になる可能性があります。命令パイプラインを2回再プラ​​イミングしなければならないことは、除算をオーバーシフトすることで得られるパフォーマンスの向上に良い影響を与えます。 上記で述べたように、私は土曜日に条件付き割り当ての問題に対する答えで目が覚めました。算術シフト演算を実行するときに発生する丸めの問題は、2の補数表現を操作する場合にのみ発生します。補数表現では発生しません。この問題を解決するには、シフト操作を実行する前に2の補数値を1の補数値に変換します。次に、1の補数値を2の補数値に変換する必要があります。驚くべきことに、シフト操作を実行する前に負の値を条件付きで変換することなく、この一連の操作を実行できます。 int a = -5; int n = 1; register int sign …

12
c#のフィールドとメソッドの前にある「this」キーワードに関して、現在考えられているベストプラクティスは何ですか?
同じ名前の変数とフィールドを区別する必要がない限りthis.、C#でフィールドまたはメンバーアクセスの前に配置することはありません。これはm_、C ++で一般的に使用されていたプレフィックスと同じであり、メンバーであると指定する必要がある場合、クラスが大きすぎると思います。 しかし、私のオフィスには多くの人々が強く反対しています。 現在のベストプラクティスと見なされるものは何this.ですか? 編集:明確にするために、私は絶対に使用することはm_なくthis.、絶対に必要な場合にのみ使用します。
14 c#  coding-style 

6
顧客の時間単位の特典[終了]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 4年前に閉鎖されました。 開発者が時間単位で作業するのは良いことですが、時間料金の利点を顧客に説明するのは困難です。 顧客の時給についてのあなたの議論は何ですか?彼の利点をどのように説明し、「プロジェクトの正確なコストを知りたい」とどのように主張しますか?

5
メソッドレベルのセキュリティが必要な理由
現実の世界では、なぜメソッドレベルのセキュリティを実装する必要があるのですか? ユーザーがユーザーインターフェイスにアクセスする(したがって、メソッドに直接アクセスできない)Webアプリケーションまたはデスクトップアプリケーションがあります。 それでは、アクセスメソッドは、ここで直接どこに現れますか? 編集:私は春のセキュリティで実験しているので、この質問をし、メソッドにアクセスするためのユーザーの承認を見ています。 何かのようなもの : @ROLE_ADMIN public void update() { //update }
14 security 

6
保護されたメソッドの実際のシナリオ
今日、私は基本的protectedにC ++コードでメソッドを使用しないことに気付きました。親の非パブリックメソッドを呼び出す必要性をほとんど感じないからです。テンプレートメソッドパターンではJavaでprotectedを使用していますが、C ++でプライベートメソッドをオーバーライドできるため、ここでも必要protectedありません。 それではprotected、C ++コードでメソッドを使用する実際のシナリオは何ですか? (私は一般的に実装の継承があまり好きではないことに注意してください、それは多くを説明するかもしれません...)

5
csvパーサーの単体テスト
csvパーサーの単体テストに使用するテストは何ですか? C#には単純なcsvパーサーがあり、すべての一般的な(および一般的ではない)エッジケースのユニットテストのカバレッジが良好であることを確認したいと思います。潜在的な問題と境界ケースを識別するために、どのテストを使用する必要がありますか?
14 testing  parsing 

6
HTMLのブロック要素とインライン要素:なぜ区別するのですか?
ブロック要素とインライン要素の区別はいつも奇妙に思えました。全体的な違いは、ブロック要素が幅全体を占有するため、要素の前後に改行が強制されることと、インライン要素がコンテンツと同じくらいしか占有しないことです。要素の種類が1つだけでなく、カスタムの高さ/幅も適用できるインライン要素を使用しないのはなぜですか?改行が必要ですか?を挿入する<br />か、その動作のためにCSSに特別なタグを追加します。現在の方法では、問題を解決することはできません。代わりに、デザイナーが決定すべきプロパティを強制するだけです。 では、なぜ2つのタイプなのでしょうか?
14 html  css 

2
HaskellのGUIライブラリに関する提案[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックソフトウェア工学スタックExchange用。 5年前に閉鎖されました。 以下のようハスケルウィキ自身が述べています: Haskellには多くのGUIライブラリがあります。残念ながら、標準的なものはなく、すべてが多かれ少なかれ不完全です。一般に、低レベルのベニヤは順調ですが、低レベルです。高レベルの抽象化は非常に実験的です。サポートされている中レベルのGUIライブラリが必要です。 私の大学の教授は、私と他の3つのコンピューターサイエンス専攻にHaskellのGUIライブラリを検討するように依頼しました。このプロジェクトに対する彼の最初のアイデアは、Smalltalkにあるモーフィックライブラリを模倣したOpenGLの上にレイヤーを書くことでした。ただし、これは単なる提案であり、他のシステムは間違いなく検討する価値があります。 これは、実際の複数の部分からなる質問につながります。 ライブラリはどのレベルの抽象化のために努力すべきですか?Haskell Wikiは、中レベルのGUIライブラリが推奨されることを強く示しているようです。ただし、高レベルのライブラリは引き続き歓迎されます。 ライブラリを何に構築する必要がありますか?(例:OpenGL) 私たちのライブラリーを模倣したい既存のGUIライブラリー(もしあれば)とその理由は何ですか?(例:PyGame、Morphic、Swingなど) ライブラリの実装または回避を希望する機能は何ですか?たとえば、Gnomeの良き人々は、最小化ボタンは不要だと主張するかもしれません。 一般的な提案はありますか? この架空の図書館にどんな名前を付けますか?(例:HOT-Haskell Opengl Toolkit; HAWT-Haskell Advanced Windowing Toolkit)

7
オープンソースのエチケット
Codeplexでの最初のオープンソースプロジェクトの作業を開始し、いくつかのひどいコードに遭遇しました。(C#にはまだ「goto」ステートメントがあることを学びました)「所有者」が望んでいた機能を追加し始め、コードベースを調べて、それが何であるかを確認しました(例:「goto」を使用)少し。しかし、私は少し心配しているので、私はあなたにすべてを向けている理由です:私にとって「悪いコード」を「修正」するのは適切なエチケットですか、それをそのままにして新しい機能に取り組むべきですか?前にも言ったように、私はOSSシーン全体に不慣れであり、チーム全体で作業しているので、混乱しないようにしたいと思います。

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