ソフトウェア工学

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

4
クライアント側のJavaScript開発に適したIDEとは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私は最近JavaScriptの学習を開始し、優れたJavaScript Editor / IDEを探しています。Google検索でそれらの数十を見つけましたが、そのようなIDEを使用した経験があるユーザーが1つをお勧めできれば幸いです。 構文強調表示、おそらくIntelliSenseおよびJavaSciptコードのデバッグサポートを備えたIDEが必要です。私はWindows 7ユーザーで、クライアント側の JavaScript開発のみを行っています。 助言がありますか??

4
単体テストのタイムアウトを使用してメソッドのパフォーマンスを測定することをお勧めしますか?
特定のアクションの最大実行時間を指定する非機能要件があるプロジェクトでは、QAは、要件で指定されているハードウェアと負荷の両方の正確な負荷の下で、正確なハードウェアを使用して専用マシンでこのアクションのパフォーマンスを確認する必要があります。 一方、ソースコードに誤った変更を加えると、パフォーマンスに深刻な影響を与える可能性があります。早くこのマイナスの影響に着目、前のソースコードは、ソースコントロールに到達し、QA部門によって検証され、問題の報告QA部門によって失われた時間の点で有益であり、開発者が後でそれをいくつかのコミットを固定できます。 これを行うには、良いアイデアですか? ユニットテストを使用して、同じアクション²をn回実行するのにかかった時間を把握するには、 C#の属性を介してテストごとのタイムアウトを使用するには[TestMethod, Timeout(200)]? このアプローチにはいくつかの問題が予想されます。 概念的には、ユニットテストは実際にはそのためのものではありません。コードのごく一部をテストするだけであり、機能要件のチェック、統合テスト、パフォーマンステストのいずれでもありません。 Visual Studioの単体テストタイムアウトは、初期化とクリーンアップがこれらのテストに存在しないか、結果に影響を与えるには短すぎることを考慮して、実際に測定されると予想されるものを測定しますか? この方法でパフォーマンスを測定するのはいです。ハードウェア、負荷などに関係なく、任意のマシン¹でベンチマークを実行することは、あるデータベース製品が別のデータベース製品よりも常に高速であることを示すベンチマークを実行するようなものです。一方で、これらの単体テストが決定的な結果になることや、QA部門で使用されるものになることは期待していません。これらの単体テストは、期待されるパフォーマンスについての一般的なアイデアを提供するためだけに使用され、基本的に、開発者に最後の変更が何かを壊し、パフォーマンスに重大な影響を与えることを開発者に警告します テスト駆動開発(TDD)は、これらのテストでは不可能です。コードの実装を開始する前に、そもそもどのように失敗しますか? パフォーマンステストが多すぎると、テストの実行に必要な時間に影響するため、このアプローチは短いアクションのみに制限されます。 これらの問題を考慮すると、QA部門による実際のパフォーマンスメトリックと組み合わせた場合、このような単体テストを使用することは依然として興味深いと思います。 私が間違っている?これに単体テストを使用することを完全に受け入れられないようにする他の問題はありますか? 私が間違っている場合、ソースコードがソース管理に到達してQA部門によって検証される前に、ソースコードの変更がパフォーマンスに深刻な影響を与えたことを開発者に警告する正しい方法は何ですか? ¹実際、ユニットテストは、同等のハードウェアパフォーマンスを備えた開発者のPCでのみ実行されることが期待されています。 ²アクションとは、実行に数ミリ秒かかるかなり短いコードのことです。

4
プログラミング規則よりも一貫性を優先すべきですか?
クラスを設計するとき、動作の一貫性は一般的なプログラミングの実践よりも優先されるべきですか?特定の例を挙げます: 一般的な規則は次のとおりです。クラスがオブジェクトを所有している場合(たとえば、オブジェクトを作成した場合)、それが完了したら、それをクリーンアップする責任があります。具体的な例は、.NETで、クラスがIDisposableオブジェクトを所有している場合、そのオブジェクトが寿命の終わりに破棄されるようにすることです。そして、もしあなたがそれを所有していないなら、触らないでください。 StreamWriter.NET のクラスを見ると、ドキュメンテーションで、基になるストリームが閉じられている/破棄されているときに閉じていることがわかります。これはStreamWriter、ライターが基礎となるファイルストリームを作成し、それを閉じる必要があるときにファイル名を渡すことによってインスタンス化される場合に必要です。ただし、ライターが閉じる外部ストリームを渡すこともできます。 これにより私は何度も悩まされました(閉じないラッパーを作成できることはわかっていますが、それはポイントではありません)が、Microsoftは、ストリームがどこから来たとしても常にストリームを閉じる方が一貫しているという決定を下したようです。 クラスの1つでこのようなパターンに出くわすと、通常、コンストラクターを介して注入さownsFooBarれた場合はfalseに設定され、FooBarそれ以外の場合はtrueに設定されるフラグを作成します。このようにして、呼び出し元がインスタンスを明示的に渡すときに、それをクリーンアップする責任が呼び出し元に渡されます。 今、私はおそらくベストプラクティスよりも一貫性を優先すべきかどうか疑問に思っています(または私のベストプラクティスはそれほど良くないかもしれません)?それに対する/反対の議論はありますか? 明確化のために編集 「一貫性」とは、つまり、オブジェクトを作成または明示的に所有権を譲渡した場合にのみオブジェクトの所有権を取得する「ベストプラクティス」に対して、常に所有権を取得する(およびストリームを閉じる)クラスの一貫した動作です。 厄介な例: いくつかのデータを作成および処理するなど、ストリームを受け入れて何らかの処理を行う2つのクラス(サードパーティライブラリから)があるとします。 public class DataProcessor { public Result ProcessData(Stream input) { using (var reader = new StreamReader(input)) { ... } } } public class DataSource { public void GetData(Stream output) { using (var writer = new StreamWriter(output)) { .... } } …
14 design  .net 

5
SQL Serverによるバージョン管理
新しいプロジェクトを開始し、バージョン管理システムとしてSVN(Tortoiseを使用)を使用しています。同じシステムを使用してSQL Serverデータベースも維持できるかどうか疑問に思っていました。 テーブル/関数/ビュー/プロシージャ/トリガー/などをバージョン管理したいと思います。とにかくテストデータになるため、私のデータはそうではありません。これをどのように設定するのかよくわかりません。いくつかのオプションに出くわしましたが、足りないものがあったかどうか、そしてそれを実行するために役立つガイドや何かがあるかどうかを知りたいです。 Red Gateを見たことがありますが、無料のもの(または少なくとも非常に低価格)を探しています。私はいつでも自分で何かを書くことができることを知っていますが、私はそのことに時間を費やそうとはしていません。 私が遭遇したことの1つは、ScriptDB4Svnと呼ばれるオープンソースパッケージをまとめたことです。誰もこれを以前に使用しましたか?いいですか?必要なことはできますか?セットアップは簡単ですか?

3
HTML TextAreaに独自のHTMLタグがあるのはなぜですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、上のトピックソフトウェア工学スタックExchange用。 8年前に閉鎖されました。 <input id='input1' type='text'></input> <input id='input2' type='button'></input> <input id='input3' type='checkbox'><input> <textarea id='myTextArea'></textarea> HTMLマークアップでは、ユーザーがページを操作できるほとんどの場所が<input>タグで示されます。なぜそれがテキストエリアには、独自のタグを持っていることである<textarea>、と言う、そうとは対照的に<input type='textarea'>
14 html 

2
SQL ServerとMongoを一緒に使用できますか?
Webトラフィックが多い、ニュース向けの大きなサイトがあります。アーキテクチャは、よく見られるDB-レポ層-サービス層-Asp.Net MVCです。私たちが見てきた問題は、読み取りパフォーマンスにあります。このDDDドメインオブジェクトはすべて、理論的にはビジネスルールにとっては優れていますが、読み取りパフォーマンスの最適化に関しては困難になっています。 解決策として、まったく新しいもの(私たちにとって)を検討しています。noSQLの使用です。私たちのウェブサイトに表示されるデータにnoSQLデータベースを使用したいと思います。SQL Serverを削除することはできません(少なくともいつでも)が、実際の手順は、Mongoをすべての新しい開発のクエリデータベースとして使用することだと思われます。 私の質問は、SQL Serverをレコードのデータベースとして使用し、Mongoをクエリデータベースとして一緒に使用できるかどうかです。 そのため、エディターの1人がレコードを更新すると、データはSQL Serverに保存されます。これは、一晩で書き直すことができないレガシーコードが多すぎるために必要です。 しかし、Webサイトの閲覧者が記事または記事のリストを表示するとき、Mongo対SQL Serverのパフォーマンスを活用したいと思います。データを多少最新の状態に保つため、たとえば15分以内にSQL Serverデータを更新するには、Mongoを更新する必要があります。RDBMSには、このような操作のためのレプリケーションツールがあり、SQL ServerからMongoに同じことを行う何かがあるかどうか疑問に思っています。Lyncサーバー、おそらく?
14 sql-server  nosql  cqrs  mongo 


3
PerlとJavaの類似点は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は自分の第二言語としてJavaを学んでいると心に決めています(私はPerl開発者です)。しかし、オンラインチュートリアルを少し読んだだけでは、この2つの間に類似点はまったく見当たりません。Javaを学習するとき、何を簡単に理解できますか?
14 java  perl 

16
コンピュータエンジニアリングの大学に通う前にプログラミング言語を学ぶ必要がありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 4年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 つま先をC ++プログラミングに浸しましたが、実際には掘り下げていません。コンピューター工学のために大学に行く前に、実際にそれまたは他の言語を学ぶ必要があるかどうかを知りたいのですが、とにかく学校でそれを学ぶつもりですか?

1
複数のディスパッチと関数のオーバーロード
私は2つの違いを(もしあれば)理解しようとしています。 Multiple DispatchのWikipediaページによると、これはFunction Overloadingと同義ですが、その後、次のように言います: Javaなどの単一ディスパッチのみの言語[…] Javaは関数のオーバーロードをサポートしているため、これは矛盾のように見えます。 それでどちらですか?マルチディスパッチは関数のオーバーロードとは異なりますか、それともJavaがマルチブルディスパッチをサポートしていないと主張するのは間違っていますか?

2
jQueryは、JavaScriptMVC、BackboneJS、SproutCore、Knockoutなどのフレームワークとどこに適合しますか?
私はこの2年間、JQueryを喜んで使用してきましたが、JQueryを使用して非常にクールな機能を作成することに成功しました。また、Webの将来が現在のクライアント側の道を進むと信じています。 しかしながら... 次の課題は、さまざまなコントローラーフレームワークの形でやってくるようです:KnockoutJS、BackboneJS、SproutCore、JavaScriptMVC(リストは続きます)。 Additonally、いくつかの素晴らしいがあるAMDローダーのような使用のためのツールRequireJSまたはLabJSなどしかし、jQueryのは、今持っているdefineとthen機能が焼きに。 すべてを追跡することはますます難しくなっています... そして今、私の仕事は、何らかの形のクライアント側のMVCまたはMVVMフレームワークを使用するための戦略的方向を評価/決定することであるように思われます...しかし、私には非常に多くの質問があります。 上記のさまざまなコントローラーフレームワークとJQuery はどこに適合しますか? JQuery はそれぞれと一緒に使用されていますか、またはそれらのいくつかは独自の「JQueryスタイルのバージョン」を焼き付けていますか? 上記のさまざまなコントローラーフレームワークのいずれかを実装する場合、RequireJS などのツールは引き続き必要ですか? んdefineとthen能力焼きにjQueryの 今取って代わる AMDローダーは、上述しましたか? どれが最もモジュール式のようですか?(下記の注を参照) 注: 将来のフレームワークで望まないことの1つは、使用しない機能を大量に取り込む必要があることです。つまり、真にモジュール化されたフレームワークを使用します。たとえば、jQuery UIを使用するには、実際には使用しない可能性のある他の多くのコアライブラリを取り込む必要があります。 私はそれぞれを実験しますが、いくつかの実際のフィードバックは素晴らしいでしょう。私はいくつかの「似たような」質問を見てきましたが、上記の歪曲に実際に答えた人はいません。 前もって感謝します!

10
既知のバグが解決されたときに、新しいバグが別の場所に表示される原因は何ですか?
議論の中で、私の同僚の一人は、バグを解決しようとしている間、彼の現在のプロジェクトにいくつかの困難があると言いました。「1つのバグを解決すると、他の何かが他の場所で機能しなくなります」と彼は言いました。 私はこれがどのように起こるのか考え始めましたが、それを理解することはできません。 疲れていたり眠すぎたりして、正しく作業できず、作業中のコードの一部を全体的に見ることができない場合、同様の問題が発生することがあります。ここで、問題は数日または数週間にあるようで、私の同僚の焦点とは関係ありません。 また、この問題は、非常に管理の行き届いていない非常に大きなプロジェクトで発生することも想像できます。チームメイトは、誰が何を行い、他の作業にどのような影響を与えるかがわからないのです。これもここでは当てはまりません。開発者が1人だけのかなり小さなプロジェクトです。 また、古い、メンテナンスが不十分で、ドキュメント化されていないコードベースの問題になる可能性があります。変更の結果を本当に想像できる唯一の開発者は、数年前に会社を去りました。ここでは、プロジェクトが始まったばかりで、開発者は誰のコードベースも使用していません。 それで、彼の仕事に集中し続ける一人の開発者によって書かれた新鮮な小さなコードベースで、そのような問題の原因は何でしょうか? 何が役立ちますか? 単体テスト(なし) 適切なアーキテクチャー(コードベースにはアーキテクチャーがまったくなく、予備的な考えなしに作成されたと確信しています)、リファクタリング全体が必要ですか? ペアプログラミング? 他に何か?

10
オブジェクト指向は本当にアルゴリズムのパフォーマンスに影響しますか?
オブジェクト指向は、多くのアルゴリズムを実装する上で非常に役立ちました。ただし、オブジェクト指向言語は「簡単な」アプローチをガイドすることがあり、このアプローチが常に良いものかどうかは疑問です。 オブジェクト指向は、アルゴリズムを高速かつ簡単にコーディングするのに非常に役立ちます。しかし、このOOPは、パフォーマンスに基づいたソフトウェアにとって不利なものになる可能性があります。つまり、プログラムの実行速度です。 たとえば、グラフノードをデータ構造に格納することは、最初は「簡単」に思えますが、Nodeオブジェクトに多くの属性とメソッドが含まれている場合、アルゴリズムが遅くなる可能性はありますか? 言い換えれば、多くの異なるオブジェクト間の多くの参照、または多くのクラスの多くのメソッドを使用すると、「重い」実装になりますか?

10
Fortran 77コードのC#への変換
Fortan77プログラムをC#に変換しようとしています。約650行のコードと恐ろしいGOTOステートメントを含むサブルーチンが至る所にあります。サブルーチンのフローを視覚化して、それが何をするのかを理解し始めることさえ、私は多くの問題を抱えています。 この種の経験があり、このサブルーチンの概要を取得する方法についてアドバイスしてくれる人はいますか?このタイプの変換を高速化または促進するために使用できるツールはありますか?
14 c#  fortran 

13
MVCのMはどこにありますか?
アプリケーションをMVCにリファクタリングしようとしていますが、Mの部分にこだわっています。 データベース対応のアプリでは、モデルはアプリのコードに実装されますよね? しかし、その後、データベースには何がありますか?それはモデルではありませんか? (データベースを単純なオブジェクトストアとして使用していません。DB内のデータはエンタープライズ資産です)。

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