ソフトウェア工学

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

3
型推論の文体上の合理的な制限は何ですか?
C ++ 0xには、かなり包括的な包括的推論のサポートが追加されています。不必要な繰り返しを避けるために、可能な限りあらゆる場所で使用したいと思っていますが、あちこちで明示的な型情報を削除するのが良い考えかどうか疑問に思っています。このかなり不自然な例を考えてみましょう: Foo.h: #include <set> class Foo { private: static std::set<Foo*> instances; public: Foo(); ~Foo(); // What does it return? Who cares! Just forward it! static decltype(instances.begin()) begin() { return instances.begin(); } static decltype(instances.end()) end() { return instances.end(); } }; Foo.cpp: #include <Foo.h> #include <Bar.h> // The type need …

7
どのソフトウェアライセンスに注意する必要がありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ライセンスは、私が特に注意を払っていないものです。必要ないと感じたのでしょうね。しかし、私はそうすべきだと思うしかないわけではありません。 プログラマーとして私が知っておくべき最も一般的なライセンスはどれですか?また、提供されたそれぞれの簡単な説明を含めることができれば役立ちます。
8 licensing 


8
GUIデザイナーを使用するか、デスクトップ用に自分で作成しますか?
プログラムのGUIを作成することは、常に困難で憂鬱でイライラする作業でした。どの言語でもかまいません。欲しいものを手に入れるのは非常に難しいです。特に、Javaのようなコンパイルされた言語では、変更のビルドに1〜2分かかります。 その結果、一部のプロジェクトでGUIデザイナーを使用することが増えています。確かにいくつかのスパゲッティコードがありますが、設定と「これはXで設計されました」というメモを残している限り、これを行うことに抵抗はありません。 これはGUIを設計するための大丈夫な方法ですか?さらに重要なことに、これはほとんどの人がすることですか?それとも、ただ座ってそれを書き出す一般的な方法ですか?

4
初心者としてクライアントとの関係について知っておくべきこと?
私は入門レベルのプログラマーであり、プロジェクトの進捗状況、問題、期限などに関するクライアントとの毎日のミーティングに参加しています。 私はクライアント管理の経験がありません。プロジェクトと人材管理の両方の観点からクライアントとやり取りするときに考慮すべき一般的なことを提案していただけませんか。

2
iPadおよび一般的なデスクトップブラウザー用のWebフレームワーク?
私たちは、Webベースの商用POSアプリケーションを開発しています。同じWebサイトがIpadでもデスクトップブラウザーでもうまく機能するようにしたいと考えています。iPadでサイトの見栄えをよくするだけでなく、WindowsまたはMac上のChrome、IE、Firefoxなどのデスクトップブラウザーでサイトを適切に機能させるWebフレームワークを探しています。 iPhoneアプリを作成するための18のモバイルフレームワークと開発ツールをかなり見つけました jQTouchなどのほとんどは、WebサイトをネイティブのiPhoneアプリケーションのように見せて動作させるのに役立ちますが、クロスプラットフォーム/ブラウザーのエクスペリエンスを強調するものではありません。 例外はSproutcoreであり、本格的なJavaScript MVCアプリケーションフレームワークのようです。一部のデモをChromeで機能させるのに苦労しましたが、機能したものは良さそうです。 iPadおよびデスクトップブラウザーで動作するWebサイトを開発するために実際に使用したフレームワークは何ですか?フレームワークを使用しなかった場合、両方の環境でフレームワークをどのようにうまく機能させましたか?

3
開発サーバーから本番サーバーへのコードのデプロイを管理するためのベストプラクティス
コードの展開を管理できる簡単なツールまたは方法を見つけたいと思っています。 このソリューションに期待する機能は次のとおりです。 ファイルのリストが指定されたWebベースのファイルまたはバッチファイルのいずれかが、本番サーバーと通信し、それらのファイルを別のフォルダーにバックアップし、zipしてバックアップコードフォルダーに入れます。 次に、展開の名前、日付/時刻、および目的を記録します。 次に、本番サーバー上の適切な場所にファイルを送信します。 展開を行うのに複雑なインターフェースを使いたくないので、彼らはそれを使用しないかもしれません。 それとも私が求めているのは非現実的すぎますか? 私は自分の自己規律が完全ではないことを知っています。実行する必要のあることを実行するために信頼できるツールがあり、次に自分が毎回実行する必要がある正確な手順を自分で記憶したいのです。 どのようにして、すべてが正しくデプロイされていることを確認し、間違いがあった場合に簡単にロールバックできますか?

2
優れたテスト計画テンプレートを推奨できますか?
アジャイルテストチームに優れたテスト計画テンプレートを推奨できますか?Webでテストするためのテンプレートがあり、検索エンジンで見つかったものをすでに確認しましたが、軽量で、熟練したテスターがすでに試し、うまく機能することがわかっているものを実際に使用できます。私が見た多くのテンプレートは、テスト文書を書くことはそれらのテスターがしている仕事の3分の1であると期待されていると感じさせますが、私のチームは本当に少ないドキュメントとより実際のテストを使うことを好みます。ドキュメントにはウィキを使用しているので、生きたドキュメントに適したアプローチが素晴らしいでしょう。 テスト計画にもっと構造化されたアプローチを使用することで、テスト計画の有用性が高まると同時に、計画の形式や構造ではなく、テストについて考えることを可能にすることで、テストを作成する労力が減ることを願っています。私の職場にはまだ手元に何かがないので、私が始めたものは何でも会社に採用されるかもしれません。

1
最良のラッピング戦略は何ですか?
私は外部ツールを統合するつもりです(私の特定のケースではffmpegですが、実際には、そのタスクが実行時間の長いものである限り、何でもかまいません)。このツールには、多くのコマンドラインパラメータがあります。 今のところ、私はそれを使って簡単なことをしましたが、それが私に返すことができるすべての情報を埋め込むために、クラスの大量の書き込みをすでに必要としています。 私は今、それをパラメータの束を送信することであっても、より複雑なタスクに直面し、可能性のあるエラーを処理するために。 それで、そのための最良の方法は何ですか? 可能なすべてのオプションを含むクラスを作成します commons-cli / CliBuilder / OptionParserの逆の同等物に依存 ユーザー入力からすべてのオプションを直接書き込む オビワンケノービパワー(または私が知らないことすべて) 私はそれを一般的ではない言語で行うことに注意してください(私のために、それはCoffeeScriptとluaの間の絶望的で無菌の結合のように見えるので、それが何であるかを私に尋ねないでください)、結果として、フレームワークで行うことはできません私が使用する言語で欲しいもの。
8 design 


5
エラーをキャッチするためにコンパイラーに依存するよりも良い戦略はありますか?
私はしばらくCとC ++でプログラミングをしてきましたが、私は専門家とは程遠いです。しばらくの間、単体テスト、テスト駆動設計、コードレビューなど、さまざまな戦略を使用してコードを開発してきました。 私がBASICで最初のプログラムを書いたとき、実行できないことを見つける前に長いブロックを入力しましたが、デバッグするのは悪夢でした。だから私は少し書き、それをテストすることを学びました。 最近では、小さなコードを繰り返し記述してから、コンパイラーを使用してすべての間違いを見つけることがよくあります。タイプミスを拾えば問題ありませんが、コンパイルするためにパラメータタイプなどの調整を開始すると、デザインを台無しにすることができます。また、構文のチェックにのみ使用する必要がある場合に、コンパイラーが設計プロセスに侵入しているようです。 私のプログラムをより良くするために、コンパイラーに過度に依存する危険があります。これより良い戦略はありますか? 少し前に、追加のヘッダーファイルでもプロトタイプを指定したCコンパイラのタイプを開発している会社に関する記事を漠然と覚えています。異なる方法で2回定義する必要がある場合は、API定義の不整合を見つけやすくなるという考えでした。
8 design  tools  builds 

4
プロジェクトが特に人気のある言語でない場合、どのようにプログラマーを探しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 それで、Perlで書かれた製品を手に入れました。心に留めておくと、それは優れた Perlであり、かなりオブジェクト指向で、強力な関数型プログラミングの影響力、広範なテストスイートを備えています。また、スクラムの要素を使用してエクストリームプログラミングを行うアジャイル環境です。 また、約4人の空き人数があり、後ではなく早く補充しようとしています。これまで、1つでも2つでも補充に問題がありました。私は、私たちの既存の投稿が魅力的であると思われる種類の候補を調べてきましたが、それらは特に印象的ではありません。それらのほとんどは、QA自動化または類似の何かの背景があります。 私たちは、PythonやRuby、さらにはC ++ / Javaさえ知っている優れたOOソフトウェアエンジニアを採用して、十分な速度でそれらを実現できることを知っています。有能な候補者に耳を傾ければ、実際の仕事そのものを売り込むことができます。私たちが得意でないのは、そもそもこれらの人々を私たちの投稿に引き付けているようです。 これらのエンジニアに自分自身を売り込むには、どのようなことができますか? 求人情報などでどのようなことに気をつけるべきですか? (求人掲示板をめくってトラブルに巻き込まれたくないので、投稿は省略しています。また、現在の社内採用担当者はあまり役立っていません。...噂は彼の日々です番号が付けられ、私はまったく驚かない...)
8 hiring 

4
アジャイル方法論を使用する場合、どのように長期的なリソースと予算を計画できますか?
アジャイルは多くの先行設計を奨励しません。これは、要件管理とソフトウェア開発の観点からは適切であり、プロジェクトを変化するビジネスニーズに適応させることができます。 しかし、開始時に何を構築するのか本当にわからない場合、リソースの長期計画をどのように行うのでしょうか。確かに、何を構築するかについての概念モデルはありますが、プロジェクトを完了するために必要なリソースの数や、それにかかるコストを測定するための測定可能な詳細はありません。 誰かがアジャイル環境で長期計画を行う方法について何か提案はありますか?

2
GUIDのハイフンの背後にある理由は何ですか?
GUIDを生成したとき、文字の間にハイフンがあり、指定した間隔で 8b55fec7-c987-4e7b-abad-16e5aaea9b53 この背後に何か物語はありますか? 注:このGUIDをファイル名に追加するので、これらのハイフンを削除するつもりであり、ファイル名は英数字のみにする必要があります。
8 c# 

2
Ruby(およびその他の動的言語)プログラマーはIoC / Dependency Injectionを使用していますか?
私は主にASP.NET開発者であり、私が最近紹介した1つのことは、記述するコードの品質に最も劇的な影響を与えたもので、IoCコンテナーを使用して異なるレイヤー間の依存関係を管理する方法を学びましたアプリケーションの効率。 私は最近、個人的なプロジェクトのためにRuby(およびRails)を学ぶことを趣味にしており、今のところこの言語が大好きです。ただし、私が使用してきたさまざまなチュートリアルやリファレンスから気付いたことの1つは、IoCの使用についてまだ言及されていないことです。これは、初期段階で開発者にドラムされている(およびそうでないはずである).NETとはまったく対照的です。 Rubyで依存性注入が必要ない理由の1つは、クラス内のすべてがパブリックで仮想であり、変更が自由にできるため、優れた単体テストを作成するために実際には必要ないことです。ただし、IoCコンテナを使用することには、他にも多くのメリットがあります。たとえば、これによってもたらされるデカップリングオプション、オブジェクトの作成とライフタイムの管理などです。 Rubyで依存性注入が使用されていますか?そうでない場合、なぜこれが問題ではないのですか?

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