ソフトウェア工学

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

6
ネストされたループはなぜ悪い習慣と見なされるのですか?
私の講師は、ネストされたループを処理するときに参照できるように、Javaでループに「ラベル付け」することが可能であると今日述べました。それで、私はそれについて知らなかったので機能を調べました、そして、この機能が説明された多くの場所に警告が続き、ネストされたループを思いとどまらせました。 どうしてか分からないの?それはコードの可読性に影響するからですか?それとももっと「技術的」なものですか?

2
NoSQLデータベース設計のベストプラクティス
NoSQLドキュメントベースのデータベース(MongoDB)を使い始めたばかりで、データベース設計のベストプラクティスに興味があります。 アーキテクチャはリレーショナルデータベースとは異なるはずだと思いますか?正規化されたデータベースを引き続き目指すべきですか? たとえば、特定のユースケースがあります。 レンタル履歴(アドレスの配列)を持っているユーザーがいますが、その配列はユーザ​​ーの配列であるか、共有キーを持つ個別のコレクションですか?
33 design  nosql 


4
DartにはWebプログラマーにとって便利な機能はありますか?
http://www.dartlang.org/ 私は非常に短い間サイトをチェックアウトし、好奇心urious盛になりました。Dartを使用する利点はありますか?JavaScriptの単なる置き換えですか? 単純なJavaのように見えます。仕事でかなり多くのC#を記述しているため、この言語は私が慣れ親しんでいるものと非常に似ているので、構文を学ぶのは簡単です。この言語について誰か意見や経験はありますか? (CoffeeScript(=私はRuby構文を実行していません)と比較して、構文は私にとってより馴染みがあります)。
33 javascript  dart 

4
このタイプのリファクタリングの用語は何ですか
次のリファクタリングの用語があると確信していますが、それを思い出すことができず、Google-fuが失敗しています! リファクタリングは、ステートメントを変更すると、ステートメントが最も影響を与える場所に移動します $test = someFunctionThatReturnsABool(); for($x = 0; $x < 10000; $x++) { if ($test) { echo $x; } } これに $test = someFunctionThatReturnsABool(); if ($test) { for($x = 0; $x < 10000; $x++) { echo $x; } }


6
私のソフトウェアは「悪い」ウェブサイトでホストされています。それについて何かできますか?
編集:すべての答えをありがとう、みんな!提供されているリンクからのみダウンロードするようにユーザーに指示するテキストをWebページに含めるだけだと思います。問題は、私のソフトウェアで取得した合法的なウェブサイトと不正なウェブサイトがあったため、リンクしていないウェブサイトを避けるようにユーザーに伝える方が安全だということです。 すべての助けてくれてありがとう! 元の: 私が作成したソフトウェアは、「悪い」ウェブサイトと呼ばれるものでホストされています。説明するのは難しいので、例を示します。 無料のパスワードジェネレーターを作成しました。これは、他のほとんどの無料ソフトウェアとともに、このWebサイトで入手できます。 これは私のソフトウェアの説明です: Platform: 7/7 x64/Windows 2K/XP/2003/Vista Size: 61.6 Mb License: Trial File Type: .7z Last Updated: June 4th, 2011, 15:38 UTC Avarage Download Speed: 6226 Kb/s Last Week Downloads: 476 Toatal Downloads: 24908 サイズが完全に歪んでいるだけでなく、試用版ソフトウェアではなく、フリーソフトウェアです。問題は、私が心配している説明ではなく、ダウンロードリンクだということです。 ウェブサイトは詐欺ウェブサイトです。それらは明らかに「クラック」と「キーゲン」にリンクしていますが、それ自体が違法であるだけでなく、実際にウイルスを与えてクレジットカードに請求する偽のダウンロードWebサイトにリンクしています。 このウェブサイトで間違っていることをリストアップするだけです。彼らはすべてのソフトウェアが有料ソフトウェアであると主張し、keygensとクラックのダウンロードを提供します。彼らはプログラムに関するすべての詳細、およびプログラムのレビューと評価を偽造します。彼らと彼らがリンクしているダウンロードサイトはおそらく同じ人によって運営されているので、彼らはこれらの嘘から金をmakeけます。 私は、法的措置を追求する手段のないティーンエイジャーです。これは、残念ながら、実際に結果を得ることができないことを意味します。私のソフトウェアは個人のWebサイトからのみダウンロードしたいのですが。ソフトウェアをダウンロードするための4つの正当な場所へのリンクがあります。 基本的に、これに関して私にできることはありますか?上記で述べたように、法的措置をとることはできませんが、そのウェブサイトへのトラフィックをブラックリストに登録するなどして阻止する方法はありますか?提供するリンクからのみソフトウェアをダウンロードするように、私のWebサイトで主張できますか?または、私は気にしないでください?なぜなら、正直なところ、Googleの結果に戻るには少し方法があるからです。

8
(ほぼ)任意のプログラミング言語から呼び出すことができる一連の関数を作成するにはどうすればよいですか?
言語バインディング(または他のフレームワーク)を介して他のプログラミング言語からアクセスできるAPIを作成する方法を見つけたいです。これを行うことは可能ですか?もしそうなら、どのプログラミング言語が「クロスランゲージ」APIを書くのに最も適しているでしょうか?私の目標は、使用しているプログラミング言語からアクセスできる単一の関数セットを作成し、各言語でAPI全体を手動で書き直す必要がないようにすることです。
33 api  languages  binding 

10
ビューとモデルは通信する必要がありますか?
MVCアーキテクチャのウィキペディアページによると、ビューはモデルから通知されることも、モデルの現在の状態についてクエリすることもできます。ただし、スタンフォード大学のiOS 5のPaul Hegartyのコース1、18ページによると、すべてのやり取りはコントローラーを介して行われる必要があります。ヘガティの声明がコースの簡略化を意図したものであるかどうかは私には明らかではありませんが、私は彼がそのようなデザインを意図していると言いたくなります。 これら2つの反対の視点をどのように説明しますか?
33 design  mvc 

1
メソッドと属性の両方の総称は何ですか?
クラス図では、各クラスにメソッドと属性が含まれています。コンテンツやアイテムなどの一般的なものに加えて、それらの両方を説明する正しい言葉は何ですか? コンテキスト: OrangeクラスはFruitクラスを拡張し、その内容を継承します。 どこのものは、メソッドと属性の両方のための単一の単語を=

6
UUIDの衝突[終了]
特にバージョン4(ランダム)UUIDを使用して、UUID衝突の可能性について誰もが実際の研究を行いました。使用する乱数ジェネレーターが真にランダムではなく、同じコードを実行する数十または数百の同一マシンがある可能性があるためですUUIDを生成しますか? 私の同僚は、UUID衝突のテストは完全に時間の浪費であると考えていますが、データベースから重複キー例外をキャッチして新しいUUIDで再試行するコードを常に入れています。しかし、UUIDが別のプロセスから来て実際のオブジェクトを参照している場合、問題は解決しません。
33 random  uuid 

3
なぜグリーンスレッドではないのですか?
私はこれに関する質問がすでにカバーされていることを知っていますが(例えばhttps://stackoverflow.com/questions/5713142/green-threads-vs-non-green-threads)、満足のいく答えが得られたとは感じません。 問題は、なぜJVMがグリーンスレッドをサポートしないのかということです。 コードスタイルのJava FAQでこれを言っています: 緑のスレッドは、すべてのコードが単一のオペレーティングシステムスレッドで実行されるJava仮想マシン(JVM)の動作モードを指します。 そして、これはjava.sun.com上で: 欠点は、グリーンスレッドを使用すると、Linuxのシステムスレッドが利用されないため、CPUを追加してもJava仮想マシンがスケーラブルではないことです。 JVMには、コアの数に等しいシステムプロセスのプールがあり、その上でグリーンスレッドを実行できるように思えます。頻繁にブロックする非常に多くのスレッドがある場合、これはいくつかの大きな利点を提供します(主に現在のJVMがスレッド数を制限するため)。 考え?

4
Gitコミュニティがサイドバイサイドの差分を無視するように見えるのはなぜですか[非公開]
以前は、Windows、SVN、Tortoise SVN、およびBeyond Compareを使用していました。コードレビューを行うのに最適な組み合わせでした。 現在、OSXとGitを使用しています。私は、bashスクリプトとGitxおよびDiffMergeを組み合わせて、やっと受け入れられるソリューションを思いつくことができました。 1年以上、このセットアップと同様のセットアップをいじっていました。また、Github diffビューアとGitx diffビューアを使用してみたので、チャンスを与えていないわけではありません。 Gitで素晴らしいことをしている賢い人がたくさんいます。ファイル全体を表示するオプションを使用して、横並びの差分を表示しないのはなぜですか?両方を使用したことがある人にとっては、少なくとも簡単な確認以上に、単一の+/-ビューの方が好きな人はいません。
33 git 

10
メソッド変数としてメンバー変数を渡す
プロジェクトで、次のようなコードを見つけました。 class SomeClass { private SomeType _someField; public SomeType SomeField { get { return _someField; } set { _someField = value; } } protected virtual void SomeMethod(/*...., */SomeType someVar) { } private void SomeAnotherMethod() { //............. SomeMethod(_someField); //............. } }; これが悪いコードであることをチームメートに納得させるにはどうすればよいですか? これは不必要な複雑さだと思います。既にアクセスできるのに、メソッド変数としてメンバー変数を渡すのはなぜですか?これもカプセル化の違反です。 このコードに他の問題がありますか?

8
堅牢なコードの作成とオーバーエンジニアリング
あなたは、あなたがオーバーエンジニアリングなしで可能な限り最も堅牢なコードを書いていることをどうやって知っていますか? 私は自分のコードが取ることができるあらゆる可能なパスについて考えすぎていることに気づき、それは時々時間の無駄のように感じます。それはあなたが書いているプログラムの種類に依存すると思いますが、決して起こらない状況を考慮に入れて私の時間をあまり使いたくありません。

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