ソフトウェア工学

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

5
幅広いコンピュータサイエンスの基礎をカバーする1冊の本はありますか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張ディスカッションを誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私が電気工学の学士号を取得したとき、ファンファルケンブルフの「Basic Electricity」という本がありました。この本の表紙を読むと、電気工学の基礎は防弾になります。私はそれをすべての後輩に推薦し、私は絶対にそれを愛していました。 コンピュータサイエンスの分野でそのような本はありますか?アルゴリズムについてはあまり気にしていません。私は、カバーの下ですべてがどのように機能するかを教えてくれるものをもっと調べています。TCPIP、メモリ管理、DNS、ルーティング、SSL、バッファ、キューイングなど。

1
電話アプリに統合された広告-バッテリーの浪費を避ける方法は?
3月に発表されたPCWorldレビューを検討してください。 広告が詰め込まれた無料のAndroidアプリは主要なバッテリー消耗 ... Microsoftと共同でパーデュー大学の研究者は、無料のスマートフォンアプリでのサードパーティの広告が、アプリのエネルギー消費の最大65〜75%を占める可能性があると主張しています... ユーザーのバッテリーを使いすぎないように、広告サポートをモバイルアプリケーションに統合するためのベストプラクティスはありますか? ... AndroidフォンでAngry Birdsを起動すると、研究者たちは、コアゲームコンポーネントがアプリの総エネルギーの約18%しか消費しないことを発見しました。調査によると、最大のバッテリー消費量は、アプリの総エネルギーの45%を占めるサードパーティの広告と分析に電力を供給するソフトウェアによるものです... レポートにあるように、「3Gテイル」から遠ざけるためのより良い方法を誰かが呼びましたか?Wi-Fi / 3G無線の継続的な使用を回避するために、数時間キャッシュされる大量の広告セットをダウンロードし、それらを使用して広告スペースに入力する方が良い/可能ですか? モバイルアプリに広告を含めるためのベストプラクティスはありますか?

3
ソフトウェア、テンプレートなどの著作権を本当の名前またはスクリーンネームで?
私の質問はうまくいけば単純です-私の作品(アート、ソフトウェア、ウェブデザインなど)を私の本名またはスクリーンネームで著作権で保護すべきですか?私の本名とスクリーンネームも簡単に検索できるので、結局それは本当に重要なのでしょうか。 私は(現時点では)専門家ではありません。 私はこの質問を読み、彼らは会社名でアプリ市場にリリースすることを勧めました。 私もこの質問を読みましたが、それでも私の質問には答えられませんでした。 大規模なプロジェクトではおそらく重要であることは知っていますが、小さなプロジェクトでは重要ですか?

5
完成したユーザーストーリーをどのように処理しますが、妥協して再訪する必要がありますか?
構築したばかりの新しいプロジェクトバックログから2つのユーザーストーリーを達成しました(いい言葉ですか?)。これらはユーザー登録とパスワードのリセットで、どちらもメールが必要です。私が最初に選択したもの、および通常は信頼できるものが機能しなかったため、代替メールコンポーネントを実装する必要があります。メールコンポーネントのデバッグではなく、ユーザーストーリーの配信に重点を置いていたため、スプリントの最後に機能するコードを配信するためにそれを交換しました。メーラーの新しいサポート問題をログに記録しますか、それともこれらのストーリーをバックログに「再挿入」しますか?後者を実行する場合、ユーザーストーリーに技術の詳細をあまり紹介していませんか?

5
OSをスクリプト言語で書くのは良い考えですか?[閉まっている]
ここで何が質問されているのかを理解することは困難です。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 スクリプト言語で書かれたOSを作成するのは良い考えですか? たとえば、Pythonを使用してOSを作成するのはどうですか?

6
ウェブサイト上の不快な画像を防止するためのテクノロジー/テクニック
私は、主な機能の1つが写真の使用法であるWebサイトを構築する予定です。不快な写真(ポルノなど)がユーザーによって読み込まれるのを防ぐために、どのような既存の手法が使用されているのかと思いました。つまり、FacebookやPinterestは何を使用していますか? 同様に、サイトにアップロードされる攻撃的な写真を制御するための推奨事項(オープンソースツールなど)を教えてください。これは個人的なプロジェクトであり、非常に少ない予算で開発されます。 ありがとうございました


3
例外が発生したときにクラスとメソッド名をログに記録することはセキュリティ上の欠陥ですか?
私は以下を持っています: public class doCheck(){ public void performCheck(){ try { perform all checks...... } catch(Exception e){ logger.error("Exception occured in class doCheck in method performCheck"); thrown new MyNewException(e.getMessage()); } } } クラスとメソッド名をログに記録しても安全ですか?

4
コメントはプログラミング言語の文法でどのように表現されますか?
文法を使用してパーサーを作成する方法を学習していますが、コメントをほとんどどこにでも表示できるため、コメントを表現するのに行き詰まりました。 これは、解析が行われる前に、コメントがトークンストリームから削除できることを示しています。 それは標準的な方法ですか、それともコメントは文法で指定されていますか?

3
大きなコードの塊についてコミュニティからフィードバックを得るにはどうすればよいですか?
Code Review.SEは、正確で短いコードに関するフィードバックが必要な場合に最適です。 しかし、次の場合にコード自体について同様のフィードバックをどこで得るか。 あなたは何千ものLOCを持っています、 職場の同僚がコードをレビューする準備ができていたり、喜んでレビューしたりしないでください¹、 サードパーティの開発者による専門家によるレビューに数千ドルも費やしていないのですか?² CodePlexのような場所はあなたのプロジェクトを知るための良い考えです³しかし、私が見たことから、あなたが既知のプロジェクトで得るフィードバックは消費者のフィードバックです。 Firefoxまたは類似の製品の規模を持たないオープンソースプロジェクトの特定のサイズのコードベースのコードレビューにコミュニティを参加させるための社会的な方法は何ですか? ¹これは、ほとんどの個人的なオープンソースプロジェクト、または定期的かつ完全なコードレビューの実践が存在しない会社で行われたプロジェクトの場合です。 ²これもまた、ほとんどの個人的なオープンソースプロジェクトの場合です。 Code CodePlexで公開されたプロジェクトがあまりにも多くても、誰も気にしないため、またはそれらがあまりよく表示されないために、知られることはありません。

4
SCRUMはどのようなプロジェクトに適していると考えられていますか?
私は過去4年間、3つの異なるプロジェクトでSCRUMを使用しています。SCRUMの利点の1つは、柔軟性と適応性にあります。たとえば、変化する顧客の要件に対応できます。別の利点は、管理者がプロジェクトの進捗状況を簡単に追跡できることです。 SCRUMの柔軟性は、要件が非常に速く変化し、プロトタイプを見た後、顧客が何を望んでいるかを本当に理解しているWebアプリケーションを実装する場合などに有利です。 一方、要件がかなり固定されている他の種類のソフトウェアプロジェクト(たとえば、航空宇宙産業)があります。要件仕様のドキュメントを取得し、6か月後には有効なソフトウェアと完全なドキュメントを用意する必要があります。この種のプロジェクトでは、SCRUMが提供する柔軟性が必要であるとは思いません(プロトタイプを作成して顧客に見せて要件についてフィードバックを得る必要がないという意味で):非常に構造化された体系的なアプローチが必要ですこれはおそらく、プロジェクトごとに何度も何度も繰り返され、驚きの余地はほとんどありません。 それでは、SCRUMはその支持者によって汎用のソフトウェア開発方法論と見なされますか、それともプロジェクトまたはアプリケーション領域の特定のカテゴリに特に適していると見なされますか? たとえば、私は最近、航空宇宙産業向けのソフトウェアを製造している会社のWebサイトを見て、Vモデルを使用していることに気付きました。SCRUMの支持者は、SCRUMはこの種のプロジェクトにはあまり適していないと言いますか、それともこの会社がSCRUMへの切り替えを試みる必要があると提案しますか? 注私はこのフォーラムの読者の意見を求めていないのですが、私はSCRUMの提案者の間で定評が何であるかを知りたいこと:SCRUMは、汎用またはプロジェクトのみの特定のクラスのためにかなり適していると考えられますか?後者の場合、どのようなプロジェクトですか?

4
C ++イテレーターの存続期間と無効化の検出
C ++ 11の慣用的なものに基づいて: カスタムコンテナーへのイテレーターは、コンテナー自体が破棄されても存続しますか? イテレータが無効になったときにそれを検出することは可能でしょうか? 上記は「デバッグビルド」を実際に条件としていますか? 詳細:私は最近C ++をブラッシュアップし、C ++ 11の使い方を学びました。その一環として、私はuriparserライブラリーの慣用的なラッパーを作成しています。この一部は、解析されたパスコンポーネントのリンクリスト表現をラップすることです。コンテナーの慣用句についてのアドバイスを探しています。 最近気になるのは、ガベージコレクションされた言語から来ていることですが、ランダムなオブジェクトが、ライフタイムに関して間違いを犯した場合に、ユーザーに表示されなくなるだけではありません。これを説明するために、PathListコンテナとその反復子の両方shared_ptrが実際の内部状態オブジェクトを保持します。これにより、そのデータを指すものが存在する限り、データも存在するようになります。 ただし、STL(および多くの検索)を見ると、C ++コンテナーがこれを保証しているようには見えません。私はこの恐ろしい疑いを抱いており、期待はコンテナーを破壊するだけで、それに伴うイテレーターをすべて無効にすることです。 std::vector確かにイテレータを無効にしても機能するようです。 私が知りたいのは、「良い」/慣用的なC ++ 11コードから何が期待されるかです。光沢のある新しいスマートポインターを考えると、STLを使用すると、誤ってイテレーターをリークして足を簡単に吹き飛ばせるのは奇妙に思えます。shared_ptrバッキングデータを使用することは、不必要な非効率性、デバッグのための良いアイデア、またはSTLが実行しないと予想されることですか? (これを「慣用的なC ++ 11」に接地することで、主観性の訴えが回避されることを願っています...)
8 c++  c++11  idioms  iterator 

3
多分モナドはオプションの種類とどのように関係していますか?
私はF#に関するプレゼンテーションを行っていて、聴衆の誰かがオプションタイプがF#の多分モナドの実装であるかどうか尋ねたときに、オプションタイプについて話していました。そうではないことはわかっていますが、2つの概念がどのように関連しているかを確認したいと思いました。オプションのタイプがたぶんモナドの演算の結果かもしれないと私には思えますが、私はそれについてさえ確信がありません。 多分モナドとそれをサポートする関数型言語のオプション型の関係を誰かが解明するでしょうか?

3
純粋に機能的、変異、状態変化などのサブルーチンを明確に区別する言語?
最近、私が使用してきたほとんどの最新のプログラミング言語(C / C ++、C#、F#、Ruby、Python、JSなど)では、何を決定するための言語サポートがあったとしてもごくわずかであることに、ますます苛立ちを感じていますサブルーチンが実際に行います。 次の単純な疑似コードを考えてみます。 var x = DoSomethingWith(y); DoSomethingWith(y)への呼び出しが実際に何を行うかをどのように判断しますか?それのmutateますyは、またはそれはのコピーを返しますyは?グローバルまたはローカルの状態に依存していますか、それともyにのみ依存していますか?グローバルまたはローカルの状態が変わりますか?閉鎖は通話の結果にどのように影響しますか? 私が遭遇したすべての言語で、これらの質問のほとんどは、サブルーチンのシグネチャを見ただけでは答えられず、コンパイル時または実行時のサポートもほとんどありません。通常、唯一の方法は、APIの作成者に信頼を置くことであり、ドキュメントや命名規則が、サブルーチンが実際に何をするかを明らかにすることを期待しています。 私の質問はこれです 。今日、これらのタイプのシナリオを象徴的に区別し、実際に記述できるコードにコンパイル時の制約を課す言語はありますか? (もちろん、スコープやクロージャのレベルの違い、静的コードとインスタンスコードの分離、ラムダ関数などのように、ほとんどの現代の言語ではこれに対するいくつかのサポートがあります。しかし、これらは互いに衝突するように見えることがあまりにも多いです。たとえば、ラムダ関数は通常、純粋に機能し、入力パラメーターに基づいて値を返すか、何らかの方法で入力パラメーターを変更します。しかし、通常は、ラムダ関数から静的変数にアクセスすることができます。インスタンス変数へのアクセスを許可すると、すべてがバラバラになります。)

3
コードレビューのコード量
私の経験では、社内のほとんどのチームが、常に数百行未満の少量のコードでチームメンバーのコードを確認しています。コードが完成し、一度にすべてのレビューを受ける準備ができたときに、モジュールなどの大量のコードをレビューすることは適切ですか?

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