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

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

3
サービス層とDAO層のあるアプリケーションのテストでは、何をモックする必要がありますか?
私のクラスはこの構造に従っています サービス層(InputDTOを作成してDBデータにマップ) DAO層(実際にDB呼び出しを実行します) サービス層のJUnitテストを作成すると、DAO層が呼び出され、実際のDB接続とDBからのデータの取得が期待されます。 DAO層をサービス層から完全にモックする必要がありますか、それともDB接続とDBから受信したデータをモックする必要がありますか? 次に、アプリはキャッシュから特定のデータを期待します。 JUnitランタイムの場合、キャッシュがないので、これをどのように処理する必要がありますか?サービス層メソッドには、詳細を取得するためのキャッシュの検索が含まれます。


1
Java APIでタイプ弁別子よりワイルドカードを好む理由(Re:Effective Java)
Blochの効果的なJavaのジェネリックセクション(誰でも簡単に利用できる「無料」の章:http : //java.sun.com/docs/books/effective/generics.pdf)で、彼は次のように述べています。 型パラメーターがメソッド宣言に1回だけ出現する場合は、ワイルドカードに置き換えます。 (そのPDFの31-33ページを参照してください) 問題の署名は次のとおりです。 public static void swap(List<?> list, int i, int j) 対 public static void swap(List<E> list, int i, int j) 次に、実際の型パラメーターを指定した静的なプライベート「ヘルパー」関数を使用して作業を実行します。ヘルパー関数のシグネチャは、2番目のオプションのシグネチャとまったく同じです。 とにかくワイルドカードを使用して作業を完了する必要がないので、なぜワイルドカードが望ましいのですか?この場合、彼はリストを変更していて、無制限のワイルドカードを使用してコレクションに追加できないので、なぜそれを使用するのですか?
8 java  generics 

4
テストデータベースに入力して使用するためのベストプラクティスは何ですか?
そこで、HibernateとMySQLを使用して、データベース駆動型のRESTful Java Webサービスをいくつか開発しています。テスト目的で、私はH2インメモリーデータベースを使用しています。H2は素晴らしく高速なので、これは非常にうまくいきました。唯一の問題は、テストの前にDBテーブルにデータを入力するのが面倒なことです。基本的には、一連のオブジェクトを手動で作成して永続化します。多分私は間違った道を行くのではないかと思っています。 教えてください、私がやろうとしていることをするためのベストプラクティスは何ですか?私を助けることができるツールはありますか?一般的な戦略やヒントはありますか?

3
デフォルトのアクセス修飾子を使用する必要があるか—コーディング慣行?
通常、新しいグローバル変数を作成するときは、そのアクセス修飾子を定義しません。したがって、Javaのように、プロパティのデフォルトアクセス修飾子を採用します。デフォルトのスコープ外でその変数にアクセスする必要がある場合は、アクセス修飾子を変更します。それ以外の場合はそのままにしておきます。だから私の質問は「私はそれを正しくやっていますか?デフォルトのアクセス変数を持っているのは普通ですか?またはそれらにプライベート/パブリックを使用するべきですか?アクセス修飾子を使用しないのは良いコーディング慣行ですか?」

6
JavaでCaseInsensitiveString型を持つことの長所と短所は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 を作成したくなりますfinal class CaseInsensitiveString implements CharSequence。 これにより、通常のを使用する代わりに、このタイプの変数とフィールドを定義できますString。たとえば、a Map<CaseInsensitiveString, ?>、a Set<CaseInsensitiveString>なども使用できます。 このアプローチの長所と短所は何ですか?

2
Javaはマネージプログラミング言語と見なすことができますか?
気になります; Javaをマネージ言語と呼ぶことができますか?アンマネージコードとマネージコード(たとえば、ネイティブvc ++からC#へ)に関しては、主にMicrosoftモデルについて考えています。高水準言語としてのC#とJavaの類似点を踏まえて、Javaもマネージ言語と呼ぶのは正しいですか?
8 java 

5
Androidマーケットでの販売経験は何ですか?1年後
この質問までフォローアップ したがって、昨年のスマートフォン市場では多くの変化がありました(具体的には、Androidの市場シェア、OSの更新、および市場の更新)。これらの変化を考えると、この質問をもう一度尋ねることが適切だと思います。 仕事を辞めてAndroidアプリをフルタイムで書きたいです。:-) これは、平均的な孤独な開発者にとってまだ実現可能ですか?ボリュームはどのようなものでしたか? (すべてのグリンチがうめき声を上げる前にこれをコミュニティーwikiに変えて幸せですが、私にはオプションがないようです)


3
JythonとJRuby対Groovy(およびJava)[終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 私はJVMでプログラミングするためにPythonに非常に興味があり、JavaとRuby(JRubyではない)で、そしてある程度Groovyで働いてきました。 現在、Java-JythonとJava-JRubyの統合にはどのような制限がありますか?Groovyについてはどうですか:JavaクラスがGroovyクラスでできないことを実行できることはありますか?また、IDE統合についてはどうですか(主にEclipseですが、IntelliJとNetbeansも興味深いものです)。 Python、Ruby、Groovyのどちらが優れている/より簡潔であるかは関係ありません。現在、彼らがJVMとツール(特にIDE)でどれだけうまく機能しているかに興味があります。私の主な関心は、それが重要な場合は、Webサーバーの内部ではありません。 カスタムJavaクラスを拡張し、カスタムJavaインターフェースを実装するHelloWorldを取得する簡単な例は、私にとって非常に役立ちます。
8 java  jruby  groovy  jvm 

2
現在のJITは、生成されたマシンコードをランタイム統計に基づく分岐予測用に最適化しますか?
一部のJVMは、Javaバイトコードをネイティブマシンコードにコンパイルします。そのために適用できる最適化はたくさんあります。最近、CPUが誤った予測を行うと、分岐操作がCPUをブロックし、パフォーマンスに大きな影響を与える可能性があることも学びました。 収集された実行時統計に基づいて、JVMがCPUがマシンコードをより簡単に生成して正しい予測を行うかどうか誰かが知っていますか?
8 java  jvm  jit 

3
いつ、どのように、そしてなぜ1つの(Java)フレームワークをアップグレードする必要がありますか?
概要としての短い要約: 私たちは小さなJava Web開発チームであり、JSF、Hibernate、Seamなどのさまざまなフレームワークとライブラリを使用してアプリケーションを作成し、それらすべてを一緒にJBoss ASにデプロイします。 当初、アプリは組み立てられ、いくつかの機能が追加されて潜在顧客に表示するショーケースが形成されました。研磨が行われ、アプリがリリースされ、承認されて機能し、時間が経つにつれ、追加機能が追加され、バグが修正され、新しいバグが発生しています。 高いバス要因とスタートアップレースのために、開発は手に負えなくなりました。システムのコアアーキテクチャを完全に理解していないのに、ますます多くの機能が追加されました。それはまだ機能していますが、システムが元の場所から別の場所に進化したため、常に落とし穴があり、最初はさまざまなショートカットが開発をスピードアップするために行われました-回避策が使用されているため、これはすべて戻ってきて開発が遅くなりますプロジェクトに新しい開発者を紹介するのはかなり難しい。 今、私は物事の整理と整理を進めています-バグ追跡システムのインストール、テスト/品質の文化の構築、自動テストの実行方法の検討、コードレビュー(私たちが欠けていたすべての豪華な専門的なもの)はじめに)クラスの階層や関数を整理するなどの一般的なリファクタリングを行い、ものを使いやすくします。これですべてが少し良くなりますが、やるべきことはまだたくさんあります。私は最初にシステムを構築した人ではなく(以前のプログラマーは去りました)、それを経験していません(現在2.5年間開発していますが、これが今のところ私の唯一の「オープンワールド」の経験です)。行う。 これが私の問題です: リファクタリングは常に良いものであり、私は物事を簡単にするために常にそれを行っていますが、基本的なアーキテクチャ(つまり、システムが依存するライブラリ、アプリケーションサーバー、データベースなど)をいつ、どのように、なぜアップグレードする必要があるのか​​、というのは私を困惑させます。 例: 現在、JBoss 4.2.2を使用しています。JBoss7.1のどこかをすでに読んでいますが、それでもいいですか?これをどのように評価できますか? 大きなブロッカーのように見えるSeam 2.2を使用します(より高いJBossバージョンでは機能せず、JSF2をサポートしていません)。さらに、Seamの代わりにJEE機能を使用するように指示するソースが表示されます。 基本的に、私は上記の例で述べたものだけでなく、この問題の一般的なアプローチに興味があります-別のシステムの別のライブラリの別の時間にこの問題に遭遇する可能性があります(または他の誰かが同様の問題に直面する可能性があります) 。 だから、ポイントは何ですか?私は最新の状態で最先端のライブラリのみを使用する必要がありますか、それとも私が持っているものを使い続けるべきですか?私が使用している技術は文字通り死んだ馬であり、飛び降りることをどのように認識しますか?このようなテクノロジーのアップグレードはどのくらいの頻度で表示されますか? そして、一般的な「アップグレード方法」の横にある別の質問。私のソフトウェアが「専門家によって作成された」ものと呼ばれる可能性があることをどのように認識しますか?一般的なプログラマーのセンス以外に、よくできたソフトウェアのJoelテストはありますか?

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()); } } } クラスとメソッド名をログに記録しても安全ですか?

1
イベントソーシングはプライムタイムの準備ができていますか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 イベントソーシングは、速度、パフォーマンスのスケーラビリティ、透過的な永続性、透過的なライブミラーリングを提供する手段としてLMAXによって普及しました。イベントソーシングと改名される前は、このタイプのアーキテクチャパターンはシステム普及率と呼ばれていましたが、LMAXチームが公開されるまでは、このパターンに慣れていませんでした。 このパターンは多数の本番システムで証明されていますか?したがって、保守的な個人でさえ、このパターンを受け入れる力があると感じる必要がありますか、それともイベントソーシング/システムの普及は、恐れを知らない人のために残されたエキゾチックなパターンですか?

5
モバイルプラットフォームでパブリックメンバー変数を使用してJavaドメインオブジェクト/データ転送オブジェクトを作成するのは慣例ですか?
最近、外部の請負業者によって開発されたモバイルアプリケーションJavaコードのコードレビューを実行しましたが、すべてのドメインオブジェクト/データ転送オブジェクトが次のスタイルで記述されていることに気付きました。 public class Category { public String name; public int id; public String description; public int parentId; } public class EmergencyContact { public long id; public RelationshipType relationshipType; public String medicalProviderType; public Contact contact; public String otherPhone; public String notes; public PersonName personName; } もちろん、これらのメンバーには、コード内のどこからでも直接アクセスできます。これについて尋ねたところ、開発者は、モバイルデバイスはリソースに制限のある環境であるため、これはモバイルプラットフォームで使用される通常のパフォーマンス強化設計パターンであると私たちに話しました。それは意味をなさないようです。パブリックゲッター/セッターを介してプライベートメンバーにアクセスすることは、多くのオーバーヘッドを追加する可能性があるようには見えません。そして、カプセル化の追加の利点は、このコーディングスタイルの利点を上回るようです。 これは一般的に本当ですか?これは、上記の理由により、モバイルプラットフォームで通常行われることですか?すべてのフィードバックを歓迎し、感謝しています-

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