ソフトウェア工学

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

3
チームキャパシティを変化させてスプリント速度を推定する方法は?
私たちはスクラムではかなりグリーンな4人の開発者の小さなチームです。全国から来て、私たちは家に帰るためにしばしば奇数日休みまたは丸一週間休みます。したがって、私たちのチームのキャパシティは、年次休暇のために、反復ごとに劇的に変化します。これにより、反復ごとに速度が大きく異なります。計画会議で速度を推定するとき、チームのキャパシティをどのように説明しますか?過去のデータは非常に異なる容量を反映するため、推定速度の平均を導き出すのに1年待つことはできません。

5
チームメイトにオブジェクトに加えた変更を知らせる方法は?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 PHPオブジェクトがあるとしましょう。たとえば、companyObjです。 class companyObj { private company_name; private company_address; public function print_contact() { //logic } } これは私が書いたオブジェクトで、チームメイトと共有しました。今、私はそれをより強力にしたいと思います: class companyObj { private company_name; private company_address; private company_contact_person; public function print_contact() { //logic updated } } では、オブジェクトに設定可能な属性がさらにあることをチームメイトにどのように通知できますか? 開発チームの全員に電子メールを送信する代わりに、チームメイトがソースコードレベルで変更された内容を確認するために時間を無駄にしたくない場合、どうすればよいかをチームに知らせることができますか?

7
関数型プログラミングの実際の実装?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 私は、それぞれが非常に得意とする分野を理解するために、さまざまな種類の言語に精通しようとしています。これまでのところ、C-手続き型言語、C ++とjava-静的型付きオブジェクト指向言語、そしてgroovy-動的型付きオブジェクト指向言語について触れてきました。 すべてのプログラミング言語はおそらくニーズに答えるために始められています。そして、私はすべての言語が少なくとも1つの点で非常に優れていると思います。そのため、特定の領域または分野で標準になります。Cと同様に、C ++はブラウザーやゲーム開発などの分野で標準になっています。簡単なスクリプト機能を備えたLinuxの世界ではPython、エンタープライズの世界ではJavaなど。 今、私はClojureやLispのような関数型プログラミング言語を学びたいと思っています。では、実際のシナリオで関数型プログラミング言語はどこに使用されているのでしょうか?アプリケーションやUIの開発にClojureやLispを使用することはないと思います。では、関数型プログラミングの実装について簡単に理解するために、基本的なチュートリアルと学習リソースを確認した後、どのようなプロジェクトに没頭すべきでしょうか?また、clojureのように、特定の1つの言語を強くお勧めしますか?

3
計算された値と単純な読み取り-ドメイン主導の設計の悩​​みの種!
私が絶えず直面している問題は、データストアに対して効率的に機能しながら、ドメインロジックによって駆動される計算値を処理する方法です。 例: リポジトリからサービスを介して製品のリストを返しています。このリストは、クライアントが送信したリクエストDTOからのページネーション情報によって制限されます。さらに、DTOはソートパラメータ(クライアントフレンドリーな列挙型)を指定します。 単純なシナリオでは、すべてがうまく機能します。サービスはページングとソートの式をリポジトリに送信し、リポジトリは効率的なクエリをDBに発行します。 ただし、ドメインモデルからメモリに生成された値を並べ替える必要がある場合は、すべてが機能しなくなります。たとえば、Productクラスには、ビジネスロジックに基づいてブール値を返すIsExpired()メソッドがあります。今、私はレポレベルでソートおよびページングすることはできません-それはすべてメモリ内で行われ(非効率的)であり、私のサービスはこれらのパラメーターをレポに発行するタイミングとソート/ページングを実行するタイミングの複雑さを知る必要があります自体。 私にとって意味があると思われる唯一のパターンは、エンティティの状態をdbに格納することです(IsExpired()を読み取り専用フィールドにして、保存する前にドメインロジックを介して更新します)。このロジックを別の「読み取りモデル/ dto」と「レポート」リポジトリに分離すると、モデルが必要以上に貧弱になります。 ところで、このような計算で私が見たすべての例は、実際にはインメモリ処理に頼っており、長期的には効率がはるかに低いという事実を無視しているようです。多分私は時期尚早に最適化していますが、それはちょうど私と一緒に座っていません。 DDDを含むほぼすべてのプロジェクトで一般的であると確信しているので、他の人がこれをどのように処理したかを聞いてみたいです。

4
パブリックメソッドからハッシュテーブルを返す際の何が問題になっていますか?
クラスを作成してそのオブジェクトを返すのではなく、複数のアイテムを返したいときに、パブリックメソッドからハッシュテーブルを返す際の設計上の問題は何ですか? 問題がある場合は、どのような状況でそれを行うのが理にかなっていますか? 言語が動的かどうかによって、この質問に対する答えはどのように変わりますか? 編集:これは、キーが定数であり、データではなくコードの一部であることを明確にするためです。通常、クラスを作成するためのもの。問題は、クラスの作成が実際に正しい選択であるように思われる場合に、代わりにハッシュテーブルを使用することが間違っている理由です。

9
PHPで大規模なwebappを構築するときにフレームワークを回避することは理にかなっていますか?
ここ数年、PHP Webアプリケーション開発者として、MVCとフレームワークを共有しています。最初はスライスしたパン以来の最高のものだと思いました。すべてが非常に簡単に実装できるように見えました。 しかし今は、アプリケーションが複雑になるほど、フレームワークが導入する手間が増えるようです。そのため、これらを克服するための回避策を開発する必要があります。フレームワークのコアコードを詳しく調べ、変更を加えて思い通りの動作をさせる必要があるため、通常、このような回避策はかなり困難で複雑です。 たとえば、Slim(C)+ Idiorm(M)+ Twig(V)を使用する私のプロジェクトの1つ(これは非常に柔軟だと思います)では、親テンプレートに動的データを表示するだけのカスタム関数を作成する必要があります。フレームワークがなければ、インクルードされたファイルでmysql_query()を実行するだけで済みました。 わかりました。単純な企業プロファイルWebサイトを作成しているのであれば、フレームワークはすばらしいです。私は一晩でいくつかのコードをホイップすることができ、それらは通常朝までに準備ができており、それらから学んだ優れたコーディング実践とデザインパターンの量は非常に貴重です。 しかし実際には、オールインワンのWebベースの学校管理システムのような複雑なWebアプリケーションの場合、フレームワークは通常、上記の例のように私のビジネスプロセスの邪魔になります。 ですから私の質問は、基本に戻り、標準のPHPコードとライブラリを使用して、膨大なフレームワークとライブラリが存在する可能性がある次のプロジェクトを行うことです。 MVCのような?私の開発チームはかなり小さく、プログラマー2人とデザイナー1人だけです。他のプログラマーは上記の私の考えに同意します。

6
ユーザーストーリーの作成を停止してコーディングを開始するタイミング
最初のスプリントのストーリーを発見したときに、執筆を中止して前に進むタイミングをどのようにして知っていますか? 私は知っている数人に尋ねましたが、基本的に私が得た反応は、プロジェクトが存在するコンテキストとプロジェクト全体のタイムボックス化の方法にも依存します。 ユーザーストーリーの作成をいつ停止するかを知るための標準的な方法はありますか。その場合、その根拠は何ですか。また、それは将来のスプリントにどのように適用されますか?

7
オブジェクト指向に必要な機能は何ですか?
言語またはライブラリが「オブジェクト指向」として定義されるために、言語またはライブラリが提供しなければならない機能とは正確には何なのかと思います。オブジェクト指向は、缶は、多かれ少なかれ、中に達成されることを何かである任意のまともな機能を備えた汎用プログラミング言語?それとも、オブジェクト指向プログラミングをサポートしていることを具体的に宣伝している言語でのみ達成できるものですか? たとえば、次のCコードを見てください。 SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE); SDL_FreeSurface( screen ); またはここで説明したコード。 さて、上記のコードは継承、ランタイムポリモーフィズム(?)、仮想関数などを使用していません。しかし、私にはほとんどOOPのようです。 オブジェクト指向は、オブジェクト、クラス、構造体など、プログラミング言語またはライブラリによって提供される特別なパターンや機能を必要としない、作成および破壊可能なデータ構造に基づくコードを単に記述しているのですか?

2
簡単に再現できず、本番環境でのみ発生する例外をデバッグするにはどうすればよいですか?
例外が本番環境でのみ発生する問題に取り組んでいます。私はこれらの環境にアクセスできず、この例外の意味もわかりません。エラーの説明を見て、原因がわかりません。 javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 誰かがこの種の問題に取り組む方法について私に助言してくれませんか?

3
.NETの種類が非常に多いのはなぜですか?いいことですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 .NET Frameworkには多くの「フレーバー」があります。 フル(「通常」) クライアントプロファイルサブセット WebブラウザーのSilverlight Windows Phoneの「Silverlight」 コンパクトなフレームワーク WinRT 新しいプラットフォームでC#コードが必要な場合、MicrosotはBCL内の既存のアセンブリを使用するのではなく、完全なCLRを取得して小さなサブセットにストリップし、新しいアセンブリを作成して型を移動することを好むようです。 。たとえばSilverlightはList<T>、WPF と同じ実装を単に参照するのではなく、WPFに対して異なるクラス/メソッド(わずかに異なるシグネチャまたは非常に異なる実装を持ついくつかのメソッドにさえ)を持っています。 これは理想的なアーキテクチャですか、それともレガシーの兆候ですか?BCLをすべてのプラットフォームで実行し、それぞれに異なるプレゼンテーション/ IOライブラリを使用する必要はありませんか?または、BCLと他のライブラリが肥大化していて、それらを分割すると、多くの下位互換性の問題が発生し、受け入れられなくなりますか? 空白のキャンバスから始めて、下位互換性について心配していなかったとしたら、現在の状況が実際に複数のプラットフォームを処理する最良の方法でしょうか?

7
変数を含むstring.formatとインライン変数
使用する長所/短所(ある場合)は何ですか string output; int i = 10; output = string.Format("the int is {0}", i); 対 string output; int i = 10; output = "the int is " + i; 私は常に後者の例を使用してきましたが、オンラインチュートリアルの大部分がstring.formatの例を使用しているようです。効率に関して実際の違いはないと思います。私の最初の考えは、変数を挿入するためにコーダーが文字列を分割し続ける必要がないようにすることです。
9 c#  .net  vb.net  strings 

4
C#でMS SQL Serverからデータをクエリするためのベストプラクティス?
C#でMS SQL Serverからデータを照会する最良の方法は何ですか? コードにSQLクエリを含めることはお勧めしません。 ストアドプロシージャを作成し、パラメーターを使用してC#から呼び出すのに最適な方法は何ですか? using (var conn = new SqlConnection(connStr)) using (var command = new SqlCommand("StoredProc", conn) { CommandType = CommandType.StoredProcedure }) { conn.Open(); command.ExecuteNonQuery(); conn.Close(); }
9 c#  sql  sql-server 

9
「いつ完成するの?」と答える方法
私たちは皆それを持っています、あいまいなコードと奇妙な予期しない機能によって修正と修正を行うことが難しいことが判明した問題。ゆっくりと、パターン、エラー、間違いを見つけようとして、論理的に作業を進めます。このプロセスには時間がかかり、問題はクライアントによって簡単に理解されないことがよくあります。 特にクライアントがソフトウェア開発の固有の複雑さを理解していない場合、「いつ完了するのですか」という質問に対してどのように答えますか?


4
ポータブルストレージに基づくバージョン管理?
私は、共有サーバーや2つのマシン間のネットワーク接続を使用せずに、2つのマシンで個人プロジェクトを開発しています。 一般的なバージョン管理システムは、共有リポジトリとしてのポータブルストレージ(USBフラッシュデバイスなど)の使用を確実にサポートしていますか?

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