ソフトウェア工学

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

5
どの時点でディスクI / Oの非同期読み取りが同期より効率的ですか?
複数のコンシューマー向けにファイルを読み取るコードが少しあり、ファイルのサイズは任意であると仮定します。ファイルを非同期で読み取る方がどのサイズで効率がよくなりますか?別の言い方をすれば、同期的に読み取るためだけにファイルを高速化するには、ファイルをどれだけ小さくする必要がありますか? 私は、非常に小さなファイルを読み取るとき、同期(特に.NET)よりも非同期で読み取るのに時間がかかることに気付きました(そしておそらく私は間違っています)。これは、I / O完了ポート、スレッドなどのセットアップ時間に関係していると思います。 ここに役立つ経験則はありますか?それとも、システムと環境に依存していますか?
22 efficiency  async  io 

5
残念ながら、エンドユーザーがこの非仮説的な状況に対処する方法は?
私は中規模の会社で働いていますが、IT部門は非常に小さいです。 昨年(2011)、私はエンドユーザーの大規模なグループに非常に人気のあるアプリケーションを書きました。昨年末に締め切りを迎えましたが、最後に欲しかったアプリケーションに一部の機能(これからfuncAを呼び出します)が追加されませんでした。したがって、このアプリケーションは2011年末からライブ/プロダクションで実行されていますが、問題なく追加できます。 昨日、エンドユーザーのグループ全体が、アプリケーションに含まれていなかったfuncAが機能しなくなったと不平を言い始めました。この会社での優先事項は、アプリケーションが破損した場合、優先プロジェクトの前に最初に修正する必要があることです。 私はコードとクエリを比較しましたが、2011年以来、違いはありません。その後、エンドユーザーの1人にプルーフBが機能しなかったことを認めさせることができましたが、それ以来、そのエンドユーザーは戻って以前に機能していると言いました...エンドユーザーの大群が同化したと思います彼女。また、このプロジェクトに関する注意事項を確認しました。このプロジェクトには、「funcAは時間の制約のために達成されていません」、proofCと明記されているプロジェクトに関する要件と毎日の更新があります。 私は彼らの多くと話をしましたが、彼らはプログラミングの背景から非常に遠いのでどこで混乱するかを見ることができますが、彼らが得るためにプロジェクトの優先順位付けをバイパスするためにグループで行動するのに十分な知性があることも知っています彼らが仕事を簡単にしたい機能。 最悪の部分は、コードやクエリの変更がなくても、グループ思考が設定され、上司とIT責任者が実際にそれらを信じ始めていることです。ロジックの状態を確認する限り、1 = 1の場合、非常にカットされて乾燥しているため、funcAは機能しません。 したがって、これで私のシナリオの説明は終わりましたが、これが原因で、おそらく引き継がれる実在しない問題を修正することに本質的に移行することになるため、パフォーマンスメトリックスに何度も触れないようにしています。 1ヶ月。

6
オブジェクトは自身のIDを知っている必要がありますか?
obj.idはかなり一般的であり、オブジェクトがそれ自体について知ることができる範囲内に収まるようです。私は自分のオブジェクトが自分のIDを知っている必要がある理由を尋ねています。 それを持っている理由がないようですか?それが存在する主な理由の1つはそれを取得することです。したがって、私のリポジトリはそれを知る必要があり、したがってデータベースとの対話に使用する必要があります。 また、IDがペイロードに収まらないように見えるRESTful APIのオブジェクトをJSONにシリアル化したいという問題に一度遭遇しました。 オブジェクトは自身のIDを知る必要がありますか?なぜですか? 更新: 用語 id:オブジェクトの識別子属性。データベース用語では、代理キーは自然キーではありません。 オブジェクト:エンティティ、またはシステム内で一意に識別可能なオブジェクト。

5
アジャイルチームの要件ドキュメントをどのように追跡しますか?
ユーザーストーリーがアジャイルの世界を支配していることは理解していますが、これらのアーティファクトはどのように保存されるので、チームに参加する新しい開発者が要件に追いつくことができますか? ユーザーストーリーが後で変更された場合、どのように更新され、アーティファクトとして保持されますか?多くのチームが、元のストーリーを追跡するのではなく、新しいチケット/機能のリクエスト/バグレポートを開くだけを見てきました。

6
関数パラメーター名の前にp *を付ける利点は何ですか?
関数パラメーターの前にを付けたプロジェクト(Eclipseを使用するJavaプロジェクトおよびチーム)をよく見ますp。 例えば public void filter (Result pResult) ... 私は個人的にはこれには何の利点も見ていませんが、その理由は何か知りたいです。私が聞いた中で最も良い説明は、同じ名前のフィールドの名前を区別することだということです。その説明には問題がありますが、ポイントは理解できます。

8
なぜソース管理システムのほとんどがまだファイルでバックアップされているのですか?
バージョンデータを保存する手段としてファイルを使用するソース管理システムが増えているようです。VaultとTFSはデータストアとしてSql Serverを使用します。これは、データの一貫性と速度の点で優れていると思います。 だから、実際にデータベースソフトウェアを使用する代わりに、SVN、GIT、CVSなどがファイルシステムを本質的にデータベースとして使用していると思うのはなぜですか(SVNサーバーが通常のコミット中に破損するため、この質問をします) MSSQL、Oracle、Postgreなど)? 編集:私の質問をする別の方法は、「VCS開発者が既存のシステムを使用するのではなく、なぜ独自の構造化データストレージシステムをロールバックするのですか?」

6
まだSubversionを使用する特定の理由は?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 会社のバージョン管理システムを選択したい。これまでのところ、Git、Subversion、Mercurialがあることを知っています。 最近、Gitが最もよく使用されていることがわかりました。そのため、まだSubversionを使用する特別な理由があるのでしょうか、それともGitに直接アクセスする必要があるのでしょうか。

6
TESTコードをテストするにはどうすればよいですか?
ほとんどのソフトウェア開発者が同意する数少ない点の1つは、テストしない限り、正しく動作するためにコードに依存すべきではないということです。あなたがそれをテストしないなら、それはあなたが将来さらに仕事をすることになるだけの隠れたバグを持っているかもしれません。 通常のコードのテスト方法は理解していますが、テストコードをテストして、エラーが存在する場合に効果的にエラーを見つけて報告できることを確認するにはどうすればよいですか?私は個人的には、あるべきではないときに合格する誤ったテストケースを書くほど愚かであり、そもそも筆記テストの目的を破っています。幸いなことに、私は時間内にエラーを見つけて修正しましたが、テストのマントラによれば、それが機能することを確認するための独自のテストセットがなければ、テストスイートは完成しないようです。 これを行うための最良の方法は、バグのあるコードのテストが失敗することを確認することだと思われます。テストは「動作」します。これにより、2番目の質問が表示されます。テストケースでバグを確実にキャッチするために、バグを導入する良い方法は何ですか?文をランダムにコメントアウトしif-else、条件を否定して間違ったブランチを実行することを確認し、副作用などでコードの実行順序を変更して、テストが最もキャッチされるようになるまで一般的なバグ?プロの開発者は、テストが実際に行うべきことを実際に行うことをどのように検証しますか?彼らは単にテストが機能すると仮定していますか、それともテストにも時間をかけていますか?もしそうなら、彼らはどのようにテストをテストしますか? 私は、人々がテストをテストし、実際に実際のコードを書くことのないテストのためにテストをテストするのにそれほど多くの時間を費やすべきだと提案しているわけではありませんが、 「メタテスト」の、そしてそれを行うための最良の方法に興味がありました。:D *「バグのない」コードをテストするときにテストが合格するかどうかを確認できましたが、テストの仕様としてコードを使用することはかなり逆に思えます...

16
プログラミングが自分に合っているかどうかはどうすればわかりますか?[閉まっている]
この投稿を改善したいですか?引用や回答が正しい理由の説明など、この質問に対する詳細な回答を提供します。十分な詳細のない回答は、編集または削除できます。 閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 7年前に閉鎖されました。 ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 私にはITのバックグラウンドがあり、仕事でプログラミング(C#)に参加する機会が生まれるまではかなり自信がありました。これまでプログラミングしたことがなく、プログラミングしているソフトウェアは、これまで使用したことがないプログラム(3Dモデリングソフトウェア)です。 それから6ヶ月が経ちましたが、あきらめたい気がします。あまりトレーニングを受けていませんでした...過去6か月で約3週間のトレーニングが広がりました。 私はプログラミングが得意だと思いますが、この経験から判断を再考しています。それが私だけなのか、このフラストレーションが正常なのかはわかりません。 プログラミングが自分に合っているかどうかはどうすればわかりますか?
22 learning 

7
ワークフローツールの価値は何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私はワークフロー開発に不慣れであり、「全体像」を実際に得ているとは思わない。あるいは、別の言い方をすれば、これらのツールは現在私の頭の中で「クリック」していません。 そのため、企業はプロセスを説明するビジネス図面を作成するのが好きで、ある時点で誰かがプログラムのようなステートマシンを使用して、図のような線やボックスからプロセスを実際に制御できると決めたようです。10年後、これらのツールは巨大で非常に複雑になりました(私の会社は現在WebSphereで遊んでいます。私はトレーニングに参加しました。巨大で複雑ですが、WebSphereである獣ほど複雑ではありません)。 この方法で行うことの大きな利点は何ですか?単純な線図とボックス図が有用であることはある程度理解できますが、これらのことは、私が知る限り、この時点では条件とループを備えた視覚的なプログラミング言語です。ここのプログラマーは、ラインとボックスのレイヤーでかなりの量の作業を行っているように見えますが、私にとっては、本当にくだらない、本当に基本的な視覚プログラミング言語のように見えます。 そこまで行くなら、なんらかのスクリプト言語を使用してみませんか?人々はこれでお風呂の水で赤ちゃんを投げ出しましたか?線と箱のことはばかげたレベルになっていますか、それとも私はこのすべての価値を理解していないのですか? この技術を使って働いた人々がこれを擁護する議論を見て、なぜそれが役に立つのかを理解したいと思います。私はそれに価値を見ませんが、私もこれに慣れていないことを認識しており、まだ十分に理解できないかもしれません。
22 java  workflows  soa  bpm 

4
ロボット(およびその他の機械装置)の単体テストを作成するにはどうすればよいですか?
私は高校のロボットクラブのメンバーであり、ロボットのプログラミングを担当しています。さまざまな大人から聞き続ける提案の1つは、コードを検証するために単体テストを作成する必要があるということです。コードベースは少し大きくなってきており、バグをより迅速に見つけるのにユニットテストが本当に役立つことに同意します。 ただし、これをどのように実現できるかは完全にはわかりません。私の知る限り、ユニットテストは、関数(またはコードのサブシステム)を取得し、それに一連の入力を与えて、毎回同じ出力が得られることを確認することによって行われます。私が現在持っているコードは、大量のデータを処理するのではなく、ロボットのハードウェアコンポーネントを直接操作します。複雑さの大部分は、電子機器が正常であること、現時点のコードがロボットの実際のハードウェアと一致することなどを確認することから生じます。多くの場合、問題を確認できるのはロボット自体にコードをロードすることだけです。そしてそれを実行しようとしています。 拡張により、機械式デバイスを操作するためのコードの単体テストをどのように作成できますか?機械の動作を物理的に観察することによってのみエラーをキャッチできるように思えます。 それとも、単体テストがどのように機能するかを誤解しているだけですか? (それが重要な場合、ここにコードがあります、それはC ++で書かれており、私はFRCに参加しています)

4
スタックに「プッシュ」と呼ばれるものを配置するのはなぜですか?
http://dictionary.reference.comによると 押す 動詞(オブジェクトで使用) それを遠ざけるために力で(物)を押したり、押したりする。 力を働かせて特定の方法で(何か)を動かす 突き出す; ドライブ:何かを脇に寄せる。ドアを開ける。 群衆の中に障害物を押しのけることによって達成または達成します。 拡張または投影させる 推力。 何らかの行動や進路を押したり、促したりするために:彼の母親は彼に仕事を求めた。 このIMOはFIFOキューに適合します。これについての説明はありますか?

5
IISがデフォルトで1740分ごとにアプリケーションプールをリサイクルするのはなぜですか?
既定でIISは既定でアプリプールをリサイクルするのはなぜですか?おそらくほとんどのWebアプリがメモリを慎重に管理していないこと以外に、特定の理由はありますか?アプリケーションのメモリを適切に管理している場合、先に進んでこれをオフにしても安全ですか?リサイクルをオフにしたり、オンにしたままにしておくと、潜在的なマイナス面、プラスのメリットは何ですか
22 asp.net  memory  iis 

1
アラン・ケイがこの用語を発明する前に、彼らは何をオブジェクト指向プログラミングと呼んだのですか?
アラン・ケイは「私は「オブジェクト指向」という用語を作り上げました。C++を念頭に置いていなかったと言えます」もちろん、彼が念頭に置いていたのはSmalltalkでした。しかし、彼はオブジェクト指向プログラミング自体を構成しませんでした。彼はSimulaから基本的なアイデアを得ました。この用語がまだ発明されていない場合、Simulaで元々オブジェクト指向プログラミングと呼ばれていたものは何ですか?

2
私のウェブサイトで使用するデュアルライセンス(MIT / GPL)JavaScriptについての混乱
私はこれで見つけることができるすべての投稿を読みましたが、まだ答えがわかりません。 MITとGPLでデュアルライセンスされているjQueryプラグインを自分のWebサイトで使用したいと思います。 デュアルライセンスとは、どちらか一方が満たされていれば問題ないということですか、それとも両方である必要がありますか? 誰かのブラウザに読み込まれているGPL JavaScriptは再配布としてカウントされないので、サイトの残りの部分でGPLライセンスを使用する必要はありません(ソースコードを提供します)。これは本当ですか? 私のパートナーは、著作権を完全に削除し、変数名を変更する必要があると考えています。これは商用Webサイトで行われる予定です。これは倫理的ですか?コードを書くのに時間を割いた人を尊敬しています。それらに連絡して、プラグインが商用ライセンスで利用可能かどうかを確認する必要がありますか? 明確化にご協力いただきありがとうございます。これは私の最初のウェブサイトであるため、暗闇で写真を撮るよりもこれらの質問をする方が良いと考えています。

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