ソフトウェア工学

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

3
複雑なオブジェクトモデルのリポジトリパターンを実装するにはどうすればよいですか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 データモデルには、約12の機能領域に分離できるほぼ200のクラスがあります。ドメインを使用するのは良かったのですが、分離はそれほどきれいではなく、変更することはできません。 エンティティフレームワークを使用するようにDALを再設計しており、これまで見てきたほとんどの推奨事項は、リポジトリパターンの使用を推奨しています。ただし、実際に複雑なオブジェクトモデルを扱うサンプルはありません。私が見つけたいくつかの実装は、エンティティごとのリポジトリの使用を提案しています。これは、大規模で複雑なモデルにとってはばかげており、維持できないようです。 操作ごとにUnitOfWorkを作成し、エンティティごとにリポジトリを作成する必要は本当にありますか?数千のクラスになってしまう可能性があります。これが不合理であることは知っていますが、リポジトリ、作業単位、およびエンティティフレームワークを複雑なモデルや現実的なビジネスアプリケーションに実装するガイダンスはほとんど見つかりませんでした。

6
ネストされたパブリッククラスを使用して定数を整理する
私は多くの定数を持つアプリケーションに取り組んでいます。前回のコードレビューで、定数が分散しすぎているため、すべてを単一の「マスター」定数ファイルに整理する必要があることがわかりました。意見の相違は、それらを整理する方法についてです。大多数は、定数名を使用することで十分であると感じていますが、これは次のようなコードにつながります。 public static final String CREDITCARD_ACTION_SUBMITDATA = "6767"; public static final String CREDITCARD_UIFIELDID_CARDHOLDER_NAME = "3959854"; public static final String CREDITCARD_UIFIELDID_EXPIRY_MONTH = "3524"; public static final String CREDITCARD_UIFIELDID_ACCOUNT_ID = "3524"; ... public static final String BANKPAYMENT_UIFIELDID_ACCOUNT_ID = "9987"; このタイプの命名規則は扱いにくいと思います。ネストされたパブリッククラスを使用する方が簡単だと思い、次のようなものがあります。 public class IntegrationSystemConstants { public class CreditCard { public static final String …

10
UXはエンタープライズソフトウェアにとって重要ですか?
企業が時間、費用、電話システムのセットアップなどの管理に使用する多くのソフトウェアは、ユーザーエクスペリエンスの観点から非常に直感的ではないことに気付きました。私は個人的に、これらのシステムをナビゲートする方法を見つけようとするだけで多くの時間を浪費していることを知っています。ヘルプファイルは通常、ユーザーインターフェイス自体と同じくらい悪いです。これらの種類のタスクを処理する企業の製品に満足している、または同等のエンタープライズ製品はないのでしょうか?消費者側には、より良いユーザーエクスペリエンスを生み出すための市場機会がたくさんあるようですが、エンタープライズソフトウェアについてはどうでしょうか。明らかに、一定レベルの滑らかさは会社にとって重要ではありませんが、 編集:私は社内アプリケーションではなく、大規模なソフトウェア会社の既製のシステムについて言及しています。

7
本番環境でのユーザーアクションのログ記録のベストプラクティス
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私は、ユーザーが次のような場合など、実稼働環境でさまざまなものをログに記録することを計画していました。 ログイン、ログオフ プロフィールを変更 アカウント設定を編集する パスワードを変更...など これは生産環境で行うのに良い習慣ですか?また、これをすべて記録する良い方法は何ですか。現在、次のコードブロックを使用してログに記録しています。 public void LogMessageToFile(string msg) { System.IO.StreamWriter sw = System.IO.File.AppendText( GetTempPath() + @"MyLogFile.txt"); try { string logLine = System.String.Format( "{0:G}: {1}.", System.DateTime.Now, msg); sw.WriteLine(logLine); } finally { sw.Close(); } } これは本番でも大丈夫ですか?私のアプリケーションは非常に新しいので、数百万人のユーザーがすぐに何も期待することはなく、ウェブサイトでのアクションを追跡するためのベストプラクティスを探しています。
21 c#  asp.net  logging 

11
低遅延コードは時々「ugい」必要がありますか?
(これは主に、低遅延システムに関する特定の知識を持っている人を対象とし、根拠のない意見で答えるだけの人を避けるためです)。 「いい」オブジェクト指向のコードを書くことと、非常に高速で低レイテンシーのコードを書くことの間にトレードオフがあると思いますか?たとえば、C ++の仮想関数/多態性などのオーバーヘッドを回避する-見た目は悪いが非常に高速なコードを書き換えるなど それは理にかなっています-maintainいように見える人は誰でも気にしません(メンテナンス可能であれば)-速度が必要な場合、速度が必要ですか? 私はそのような分野で働いた人々から話を聞きたいと思います。
21 java  c++  c  performance  latency 

3
ローカルリポジトリで単独で作業している場合、なぜプッシュする必要があるのですか?
私はGitHub for Windowsを介して Gitと対話していますが、これはリポジトリをGitHubにプッシュすることは決してないので面白いです。私はそれだけで取り組んでおり、私だけが使用することを意図しています。コミットが「非同期コミット」の下にリストされ、「履歴」の下に「コミットなし」と表示されていることに気付きました。「履歴」の下にリストされているコミットを除いてプッシュすることで何を達成できますか?
21 git  github 

5
非表示に関して、C#の「新しい」修飾子の実用的な用途は何ですか?
同僚と私はnew、隠蔽の概念に適用されるC#のキーワードの動作を見ていました。ドキュメントから: 新しい修飾子を使用して、基本クラスから継承されたメンバーを明示的に非表示にします。継承されたメンバーを非表示にするには、同じ名前を使用して派生クラスで宣言し、新しい修飾子で変更します。 ドキュメントを読み、基本的に何をするのか、どのように行うのかを理解しています。本当に手に入れることができなかったのは、最初にそれを行う必要がある理由です。修飾子は2003年から存在しており、私たち2人はそれよりも長い間.Netを使用してきました。 この動作が実用的な意味で必要になるのはいつですか(例:ビジネスケースに適用される場合)。これは、その有用性よりも長持ちした機能ですか、それとも私たちがやっていること(具体的には、WebフォームとMVCアプリケーション、およびいくつかの小さな要素のWinFormsとWPF)であまり一般的ではありませんか?このキーワードを試してみて、それを試してみたところ、誤用されると少し危険に思える動作が見つかりました。 これは少し無制限に聞こえますが、この特定のツールが有用であるとわかるビジネスアプリケーションに適用できる特定のユースケースを探しています。
21 c#  keywords 

2
通常、本番ソフトウェアのどこでDequeを使用しますか?
ソフトウェアアプリケーションでスタック、キュー、およびツリーを使用する場所についてはかなりよく知っていますが、Deque(Double Ended Queue)を使用したことはありません。通常、野生ではどこで遭遇しますか?キューと同じ場所にありますが、余分な不満がありますか?

8
新しい上級開発者のタスク
明日から8年間の.NETの経験を持つ上級開発者が11,000行のコードアプリケーションで作業するようになりました。チームには、私と他のプログラマーがいます。両方ともそれぞれ約3年の経験があります。 これはマネージャーとしての私の最初のプロジェクト(私はプロジェクトの開発者でもあります)であり、既に確立されたコードベースを誰かに紹介しなければならなかったのはこれが初めてです。当然、各モジュール、展開プロセスなどを調べて、ソース管理リポジトリの場所、ドキュメント(最高ではありません)などを渡します。 新しい機能の作成とバグの修正を開始する準備が整うまで、どれくらいの時間を与える必要がありますか?

6
CまたはC ++で「nullチェック」を行うとはどういう意味ですか?
私はC ++を学んでおり、nullを理解するのに苦労しています。特に、私が読んだチュートリアルでは「nullチェック」の実行に言及していますが、それが何を意味するのか、なぜ必要なのかはわかりません。 ヌルとは正確には何ですか? 「nullをチェックする」とはどういう意味ですか? 常にヌルをチェックする必要がありますか? どんなコード例でも大歓迎です。
21 c++  c  null 

2
LGPL gemを使用すると、MITライセンスアプリケーションにどのような影響がありますか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 私はMITライセンスの下でオープンソースのRubyアプリケーションを開発しています。アプリケーションのユーザーに制限を加えたくないので、このライセンスを使用しています。また、私は実際にこのライセンスを読んで理解することができます。 私は最近、プロジェクトで別のruby gemを使用し始めました(「somegem」が必要です)。このruby gemはLGPLライセンスの下にあります。 LGPLでライセンスされているこの他のruby gemを使用しているため、プロジェクトについて何か変更する必要がありますか?私のプロジェクトには他のgemのソースコードが含まれておらず、プロジェクトに同梱されていません。単に依存関係としてリストされているため、Ruby gemがそれをインストールし、プロジェクトがコードから呼び出します。 さらに、「注意する」必要があるライセンスがあるかどうかを知ることは役立ちます。ライセンスを使用すると、プロジェクトのライセンスに影響するためです。 このトピックに関する他の投稿もありますが、さまざまな方法で表現されています。このライセンスは扱いにくいと思うので、自分の状況に応じた回答を得たいと思っています。 ありがとう、 コルセン

4
REST vs RESTful vs「通常の」Webサービス-同じかどうか
RESTやRESTfulアプリケーションに関する定義と議論をいくつか読みましたが、それが本当の意味をまだ理解していません。 私は通常、GETを介してデータを取得するか、POSTを介してデータベースからデータを取得するかデータベースに書き込むWebサービス(通常はPHPスクリプト)にデータを送信するアプリを使用します。 さて、これはRESTfulアプリですか?そうでない場合、RESTfulアプリはどうなりますか?RESTfulコンセプトとこれまでに取り組んだコンセプトの違いは何ですか?例で説明してください。 また、誰かがRESTについて話し、誰かがRESTfulアプリについて話します。RESTという用語は理論的な概念を指すのに対して、特定のアプリについて話すときにはRESTfulが使用されることがわかりました。これは正しいのですか、それともRESTアプリとRESTfulアプリの間に本当の違いがありますか?

3
連続する単語に数字があるキャメルケースの方法は?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 7年前に移行され ました。 このコーナー・コーナー・コーナーのケースで誰かが従うべき良い慣習があるかどうか疑問に思っています。私は実際にJavaを使用していますが、C#の人々もいくつかの良い洞察を持っているかもしれないと考えました。 クラス名の2つの連続した単語が数字であるクラスに名前を付けようとしているとします(同じ質問で識別子名について尋ねられることに注意してください)。良い例は得られませんが、「IEEE 802 16ビット値」のようなものを考えてください。 連続した頭字語の組み合わせは、などのクラス名を受け入れる場合に実行可能ですHttpUrlConnection。しかし、クラスに名前を付けることを考えると、真剣に少し私を投げますIEEE80216BitValue。選択しなければならなかった場合、IEEE802_16BitValueそれは悪い間違いのように見えるよりもさらに悪いと言うでしょう。少数の場合、私は検討したいIEEE802SixteenBitValueが、それはうまくスケーリングしません。 誰もがコンベンションを持っていますか?Microsoftの命名ガイドラインは、頭字語の命名を仕事を遂行するのに十分なほど詳細に説明している唯一のガイドラインのようですが、クラス名の番号については誰も言及していません。

4
大きなモジュールを分割することによる悪影響はありますか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 私はgithubプロジェクトをブラウズしていて、1万行を超えるこのモジュールを見つけました。 単一のモジュールにそのようなコードを含めることは一般的な習慣ですか? これは複数のモジュールに分割する必要があるように思えます。データベースエンジンごとに1つかもしれません。 開発者は、このような1つの巨大なモジュールを作成すること(「すべてを1か所にまとめる」以外)からどのようなメリットを得ますか?

4
メソッドチェーンを使用してオブジェクトを構築するイディオムの名前は何ですか?
メソッドチェーンを使用してオブジェクトをセットアップするパターンを頻繁に使用しますが、Builderor Prototypeパターンに似ていますが、各メソッド呼び出しで新しいオブジェクトを作成せず、代わりに元のオブジェクトを変更します。 例: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); このパターンに名前があるのか​​、それがアンチパターンと見なされるのかどうか疑問に思うだけです。なぜなら、より流に読むことができても、長いメソッドチェーンにつながる可能性があるからです。

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