タグ付けされた質問 「java」

Javaは、元はSun Microsystemsによって開発された、プラットフォームに依存しない高レベルのオブジェクト指向プログラミング言語です。Javaは現在、2010年にSunを購入したOracleが所有しています。

2
nullの@Nonnullアノテーションが付けられたパラメーターを確認しますか?
FindBugsの使用を開始し、パラメーターに@Nonnull適切な注釈を付けました。サイクルの早い段階でバグを指摘することは非常に効果的です。これまでnullGuava's を使用するためにこれらの引数のチェックを続けてきましたが、エッジcheckNotNullでnullのみチェックすることをお勧めしますnull。たとえば、SOAPリクエストのようにチェックされずに値が入る場所です。 // service layer accessible from outside public Person createPerson(@CheckForNull String name) { return new Person(Preconditions.checkNotNull(name)); } ... // internal constructor accessed only by the service layer public Person(@Nonnull String name) { this.name = Preconditions.checkNotNull(name); // remove this check? } 値自体を@Nonnullブロックしないことを理解していnullます。 ただし、FindBugsは値がマークされていないフィールドからマークされたフィールドに転送される場所を指すので、渡さ@Nonnullれるnullすべての場所でこれらの値をチェックすることなく、これらのケースをキャッチするためにそれに依存することはできませんか?システム?ツールを信頼し、これらの詳細なチェックを避けたいですか? 結論:下の2番目のnullチェックを削除しても安全に思えますが、それは悪い習慣ですか? この質問は、彼がnullを期待していない場合、nullをチェックするべきであるとおそらくあまりにも似ていますが、私は@Nonnull注釈に関連して具体的に尋ねています。
19 java  null 

9
プログラミングにおいて設計パターンはどれほど重要ですか?
私は大学生で、デザインパターンについて学び始め、デザインパターンの目的を理解するのに苦労しています。私はそれらを研究しようとしましたが、私が見つけたすべてのリソースは、専門的ではなく学術的な方法でそれらについて話しているようです。 彼らの目的は何であり、学ぶことは重要ですか?

6
Java、C ++などの他の言語ではなく、MongoDBとCouchDBでJavascriptが使用されるのはなぜですか?
SOでこの質問をしましたが、ここで試してみることを勧められました。だからここに行く: これまでの私のJavaScriptの理解は、イベントをキャプチャし、Webページを動的にするクライアント側の言語であるということです。 しかし、MongoDBとCouchDBの比較を読むと、どちらもJavascriptを使用していることに気付きました。これは、他の従来の言語よりもJavaScriptを選択した理由を疑問に思います。 JavaScriptの役割と、他の言語に対するJavaScriptの利点を理解しようとしていると思います。 更新:2つのデータベースでサポートされている言語/ドライバーについて質問していません。比較によると: CouchDBとMongoDBはどちらもJavascriptを使用します。CouchDBは、ビューの構築を含むJavascriptを広く使用しています。 MongoDBは、任意のjavascript関数をサーバー側で実行することもサポートし、map / reduce操作にjavascriptを使用します。 私の理解不足は、Javascriptがバックエンド作業にまったく使用されない理由に関係しています。CouchDBでビューを構築するのに、またはmap / reduce操作を使用するのになぜ好まれますか?なぜC / C ++またはJavaが使用されなかったのですか?このようなバックエンド作業にJavascriptを使用する利点は何ですか?
19 java  javascript 

3
Javaおよび.NET:異なるソートアルゴリズムがデフォルトで使用される理由
デフォルトで異なるソートアルゴリズムJavaを.NET Framework使用する理由と疑問に思います。 Java Array.Sort()では、デフォルトでMerge Sortアルゴリズムを使用し、Wikipedia.comが次のように述べています。 Javaでは、Arrays.sort()メソッドは、データ型に応じてマージソートまたは調整されたクイックソートを使用し、実装効率のために7つ未満の配列要素がソートされている場合は挿入ソートに切り替えます .NET Framework Array.Sort/List.Sort()では、クイックソートをデフォルトのソートアルゴリズムとして使用します(MSDN): List.Sort()は、QuickSortアルゴリズムを使用するArray.Sortを使用します。この実装は、不安定なソートを実行します。つまり、2つの要素が等しい場合、それらの順序は保持されない可能性があります。対照的に、安定したソートでは、等しい要素の順序が保持されます。 優れた「アルゴリズムの比較」表を見ると、両方のアルゴリズムの動作がワーストケースとメモリ使用量の観点からかなり異なっていることがわかります。 どちらJavaと.NETエンタープライズ・ソリューション開発のための素晴らしいフレームワークです、両方が組込み開発のためのプラットフォームを持っています。では、なぜ彼らはデフォルトで異なるソートアルゴリズムを使用しているのでしょうか?


9
強制コード再フォーマットの利点と欠点
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 私は現在、開発者にバージョン管理チェックインで自動コードフォーマッタを使用するように強制することを検討している場所で作業しています。私はこれを行うことの利点と欠点について開発者の意見を探しています...あなたがそれがどのように開発者を助けるか妨げると思うか。私の特定のケースはJava / JSPに関係していますが、質問はどの言語にも当てはまると思います。

4
JavaコレクションAPIに最後のメソッドがないのはなぜですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 5年前に閉鎖されました。 これは、java.util.Listなどの順序付きコレクション用です。言語設計者が最後のメソッドを含めなかったのはなぜですか?私が考えることができる唯一の理由は次のとおりです。 コレクションが空の場合のあいまいさ(nullを返すか、例外をスローします) APIの膨張 他の理由は?
19 java  api-design 

12
マネージコーダーとネイティブコーダー
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 私はコーダーであり、ネイティブコードとマネージコードの両方の経験があります。PascalとCから始め、C ++に移行し、最終的にC#に移行しました。 去年かそこらで、私はほとんど独占的にC#でコーディングしてきましたが、私がC ++コーダーであったときに自然に来ていたものの多くを失いました。 数週間前、ネイティブC ++コードを書くために座ったとき、私はその複雑さ、癖、およびその特異性に徐々に慣れてきたので、いじくり回していました。サイズを渡さずに動的に割り当てられた配列を関数に渡すと、受信関数が配列の長さを知る方法がないことを完全に忘れていたと言うのはほとんど恥ずかしいです。 マネージドコードとアンマネージドコードを比較対照する無数の記事やドキュメントがあります。ネイティブコードは、最適化されていれば、マネージコードよりも大幅に高速かつ軽量に実行できることを知っています。一方、マネージコードには、ガベージコレクターと、CPU固有およびOS固有の実行時最適化があり、ネイティブコードをその費用で実行できます。 純粋に技術的な観点からは、明確な勝者はいません。 マネージコードは、コーディングと理解が非常に簡単であることは間違いありません。Win32 C ++とC#でシンプルなGUIを構築するために必要な行数の違いを見てください。 ネイティブコーディングの時代に戻って、私は主にスーパーコンピューターで実行される数学的シミュレーションを書きました。CLIいCLIがあり、ほとんどがアルゴリズムに焦点を合わせていました。現在、私はC#で記述して美しいGUIアプリケーションを作成していますが、母国語で同様の口径のものを作成しなければならない場合は失われます。QTなどのフレームワークを使用しても、C ++ / QTで何かを生成するには、C#の場合の2倍の時間がかかります。 大規模でフル機能のGUIアプリケーションをC / C ++で書いた人に会うたびに、a敬の念とjeのヒントを感じずにはいられません。 他の経験豊富なコーダーがマネージド言語とアンマネージド言語をどのように見ているのか興味があります。マネージコードはアマチュアっぽいと思いますか?ネイティブコーダーはよりハードコアだと思いますか?
19 java  .net 

3
「Java OOP」と「Pythonic OOP」の違いは?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 ActionScript 2.0で始めてから、Javaで始めました。それ以来、Python(おそらく私のお気に入り)を含む多くの言語を学んだか、少なくとも使用しました。 私のオブジェクト指向プログラミングのスタイルは、Pythonシンタックスを使用したJava OOPのようなものではなく、非常にPythonに近いものではないのではないかと心配しています。JavaとPythonic OOPの違いは何ですか?Pythonでオブジェクト指向のコードを書くとき、Javaプログラマーはしばしば「非Python」に何をしますか?

10
Java開発者はScalaについてどう思いますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 6年前に閉鎖されました。 IDEのサポートはそれほど良いものではありませんが、言語自体は関数型プログラミングのイディオムをよりきれいにサポートしています。

7
コーディングスタイルの問題:パラメーターを受け取り、それを変更し、そのパラメーターを返す関数が必要ですか?
私は友人と、これらの2つの慣習が単に同じコインの両面であるのか、それとも本当に優れているのかについて、少し議論しています。 パラメーターを受け取り、そのメンバーに入力してから返す関数があります。 Item predictPrice(Item item) 渡されたのと同じオブジェクトで機能するため、アイテムを返す必要はないと考えています。実際、発信者の観点から見ると、もしそうでない場合は、新しいアイテムを返すと期待できるので、問題を混乱させます。 彼はそれが違いを生まないと主張し、それが新しいアイテムを作成してそれを返すかどうかさえ問題ではないだろうと主張する。次の理由から、私は強く反対します。 アイテムパス(またはポインターなど)への複数の参照がある場合、新しいオブジェクトを割り当てて返すことは、それらの参照が正しくないため、重要です。 非メモリ管理言語では、新しいインスタンスを割り当てる関数はメモリの所有権を要求するため、ある時点で呼び出されるクリーンアップメソッドを実装する必要があります。 ヒープへの割り当ては潜在的にコストがかかるため、呼び出された関数がそれを行うかどうかが重要です。 したがって、オブジェクトを変更するか、新しいオブジェクトを割り当てるかは、メソッドシグネチャを介して確認できることが非常に重要であると考えています。結果として、関数は渡されたオブジェクトを変更するだけなので、署名は次のようになっているはずです。 void predictPrice(Item item) すべてのコードベース(私たちが取り組んでいる言語であるJavaではなく、明らかにCおよびC ++コードベース)で、上記のスタイルは本質的にかなり経験豊富なプログラマーによって守られ、守られています。彼は、私のコードベースと同僚のサンプルサイズは、考えられるすべてのコードベースと同僚のなかで小さいため、私の経験は優れているかどうかの真の指標ではないと主張しています。 それで、何か考えは?

4
インスタンスフィールドに依存しないメソッドを静的にしますか?
最近、統合テストフレームワーク用、Javaプロジェクト用にGroovyでプログラミングを開始しました。Intellij IDEAをGroovyプラグインで使用していますが、非静的でインスタンスフィールドに依存しないすべてのメソッドの警告として表示されて驚いています。ただし、Javaでは、これは問題ではありません(少なくともIDEの観点から)。 インスタンスフィールドに依存しないすべてのメソッドを静的関数に変換する必要がありますか?trueの場合、これはGroovy固有のものですか、それとも一般的なOOPで利用可能ですか?なぜ?

2
MavenのGitリポジトリを構成する最良の方法
Gitでプロジェクトを構成する方法について、いくつかのアドバイスが必要です。Javaを使用し、Mavenはビルドツールです。Mavenは、最終的にすべてのプロジェクトに共通の祖先があると想定しています。Mavenは、Apache Foundationがプロジェクトをセットアップする方法が正確にセットアップされていない場合、本当のドラマクイーンになることもあります(リリースプラグインを使用している人は、おそらく私が話していることを知っています)。 プラグインのバージョンとビルド構成(リポジトリ構成、ビルドするアーティファクト、命名規則、プラグインバージョンなど)を制御する最上位の親pomが必要です。Mavenは、すべてのITプロジェクトをそのメインプロジェクトのサブフォルダーに入れたいと考えています。これは、組織の1つの大規模なGitリポジトリを意味します。 これは非常に騒がしい環境になります。関連のないプロジェクトに取り組んでいる2つのチームがある場合、それらは常に他のチームからマージをプルする必要があります。理想的には、プロジェクトごとに1つのリポジトリが必要です。 しかし、そのような種類は、サブプロジェクトがサブフォルダーであることを要求する Mavenの非常に階層的なモデルと衝突します。 人々がこれら2つのモデルをどのように調整したかについて、いくつかのアドバイスが必要です。

7
データ転送オブジェクトのインターフェイスを作成する必要がありますか?
データ転送オブジェクトのインターフェースを作成するのは良い考えですか、悪い考えですか?通常、オブジェクトは可変であると仮定します。 私の例はJavaですが、同様の概念を持つ他の言語にも適用できるはずです。 interface DataTransferObject { String getName(); void setName(String name); } class RealDataTransferObject implements DataTransferObject { String name; String getName() { return name; } void setName(String name) { this.name = name; } } もちろん、これは単純化された例であり、実際にはもっと多くのフィールドがあるかもしれません。

2
「フィクスチャ」の異なる意味は何ですか?
「フィクスチャ」の概念を理解するのに多少の困難があります。テストスイートとは何か、テストケース、テスト実行は知っていますが、「フィクスチャ」とは正確には何ですか?パラメーター化されたテストケースですか? 「フィクスチャ」という用語の意味またはセマンティクスは、プログラミング言語またはテストフレームワークによってわずかに異なる可能性があるように思えますか?私はphpunitフィクスチャだと思う 「ワールドを既知の状態に設定し、テストが完了したときに元の状態に戻すコード。この既知の状態は、テストのフィクスチャと呼ばれます。」 「フィットネスフィクスチャ」とは少し異なります 「フィクスチャは、Wikiページとテスト対象の実際のシステムであるテスト対象システム(SUT)の間の橋渡し役です。」 この質問に答えることができるソフトウェアテストの専門家がここにいますか?他のプログラミング言語への参照は大歓迎です。

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