Java
概要 ゆとり教育がスタートしたころに JUnit を導入した昔話です
概要 Template Method パターンでチームの開発工数を 1 / 10 にした話です
概要 Eclipseの設定でJavaDoc未記載の箇所を警告表示にする 内容 下記の設定でJavaDocの警告表示が可能 ・設定=>Java=>コンパイラ=>Javadoc=>Process Javadoc commentsにチェック 例:publicとprotectedの要素でJavaDocがないものや、文法が誤っているものを…
概要 Javaのpackage-info.javaを自動生成するGradleカスタムPluginを作成 内容 下記の記事で作成した内容をGradleのカスタムPlugin化します。 RubyでJavaのpackage-info.javaを一括生成するスクリプト http://d.hatena.ne.jp/tbpg/20120808/1344447924 要件 …
概要 Eclipse+Cobertura PluginでJavaのテストカバレッジを計測する Cobertura=>コヴェルトゥーラ。スペイン語でcoverageの意。 詳細 Gradleプロジェクトを作成します。build.gradleに下記の設定を追加することでカバレッジを計測します。 build.gradle buil…
概要 EclipseのコードテンプレートでJavaの流れるようなIFのSetterを生成 内容 以下の設定をテンプレートに追加する。名前:fluent 説明:流れるようなIF形式のSetter パターン /** * {@code ${name}}を設定し、自クラスのインスタンスを返却する. * * @para…
概要 Selenium WebdriverでWebの自動テストを行う構成の1例 準備 Selenium Webdriverによるテスト作成の設定について。Gradleの場合、build.gradleのdependenciesに以下を追加 compile 'org.seleniumhq.selenium:selenium-java:2.32.0'手動の場合は下記よりj…
概要 JMeterのBSF Lisnerを利用してレスポンス内容を加工して変数に格納する 内容 ・リスナーからBSF Lisnerを追加 BSF Lisner内の処理 var body = sampleResult.responseDataAsString; var search = body.slice(564,568); OUT.println(search); vars.put('h…
概要 JavaMailをラップして流れるようなIFにする 内容 JavaMailをラップして流れるようなIFにしてみます。 ※他のライブラリにも流用可能。 サンプルコード インターフェース import javax.mail.MessagingException; import javax.mail.internet.AddressExcep…
概要 opencsvでCSVファイルを操作する 詳細 以下の手順でインストールする ・下記URLからtarボールを取得 http://sourceforge.jp/projects/sfnet_opencsv/・mavenでビルドする ・出来上がったjarをプロジェクトのビルドパスに設定する下記に入出力のサンプル…
概要 EasyMockで単体テストをMockする 詳細 EasyMockで単体テストをMockします。 導入手順 ・下記URLからjarをダウンロード http://sourceforge.net/projects/cglib/files/ http://sourceforge.net/projects/easymock/files/EasyMock/3.1/easymock-3.1.zip/d…
概要 opencsvでCSVファイルを操作する(tsv対応版) 詳細 下記の記事のTSV対応版サンプルを作成。Java | opencsvでCSVファイルを操作する http://d.hatena.ne.jp/tbpg/20130514/1368543588 サンプルコード package opencsv; import java.io.ByteArrayInputStre…
概要 Futureパターンで非同期処理の結果を先に受け取る 詳細 Futureパターンにより、非同期処理の結果を先に受け取ります。 イメージとしては予約券。 サンプルコード package thread; import java.util.Date; import java.util.concurrent.Callable; import…
概要 mockitoで単体テストをMockする 詳細 mockitoで単体テストをMockします。 業務ではdjUnitしか使って居なかったのですが、djUnitのMock機能は メソッドを文字列で指定するためリファクタリング対象外になる、という欠点があります。メソッドのリファクタ…
パンくずリスト JavaDB JavaDBをサーバーモードで起動 概要 JavaDBをサーバーモードで起動 詳細 JavaDBをサーバーモードで起動する方法について。 DBサーバーの起動、停止について 操作 起動 起動 Javaのインストールディレクトリ\db\binstartNetworkServer.…
パンくずリスト JavaDB Eclipse DBViewerプラグインでJavaDBを新規作成 概要 Eclipse DBViewerプラグインでJavaDBを新規作成 詳細 Eclipse DBViewerプラグインでJavaDBを新規作成する方法について。・メニュー>ウインドウ>パースペクティブを開く>DBViewe…
概要 当ブログで取り扱っているJavaDB関連情報メニュー 内容 Eclipse DBViewerプラグインでJavaDBを新規作成 JavaDBをサーバーモードで起動
概要 複合キーのMap>取得ユーティリティについてまとめます 詳細 Map>のKが複数キーを持つデータクラスとなるMapを Listから取得するユーティリティを作成する。KのすべてのカラムはTと同じ名前、同じデータ型であることを前提とする。 代表的な用途 テーブ…
パンくず Java Eclipseのファイル検索機能でHashMapをEnumMapに一括置換 概要 Eclipseのファイル検索機能でHashMapをEnumMapに一括置換 詳細 Enumをキーとして利用する場合、HashMapよりもEnumMapのほうが高速に機能します。 既存システム上でEnumMapを全く…
概要 配列を文字列として出力する方法についてまとめます 詳細 配列を文字列として出力する場合にはArrays.toStringを利用します。 サンプルコード import java.util.Arrays; import java.util.Date; public class Sample { public static void main(String[…
パンくず Java HashMapとEnumMapの比較 概要 HashMapとEnumMapの比較 詳細 HashMapとEnumMapの性能を比較します。比較時の使用はHashMapとEnumMapそれぞれに100個のEnumをキーに設定。 Valueには100個のIntegerを設定します。 設定後に、100個のEnumで100回M…
パンくず Java java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 概要 java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 内容 java.lang.reflect.Proxy を利用して、AOPによるTraceログ機能を実装します。※補足 AOP=アスペクト…
パンくず Java JUnit 汎用Validator 概要 汎用Validator 内容 汎用的なValidatorを作成します。 要件は以下とします。・1つのValidatorの中に複数のエラー判定処理が存在する それぞれのエラー判定のどれか一つのエラーが成立した場合に Validator全体として…
パンくず Java JUnit JUnit4のDataPointsによるテストと特定ケースの実行 概要 JUnit4のDataPointsによるテストと特定ケースの実行 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 パラメータ化されたケースはFixtureの配列と…
パンくず Java 流れるようなデータクラス生成ツール 概要 流れるようなデータクラス生成ツールについて 要件 定義用クラスに以下の内容を指定 ・データクラス名 ・データクラスJavaDoc ・データクラスJavaDoc用author ・フィールドコメントのリスト ・フィー…
パンくず Java JUnit JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 概要 JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 …
パンくず Java JUnit JUnit4のDataPointsによるテストとパラメータ化の基準 概要 JUnit4のDataPointsによるテストとパラメータ化の基準 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 詳細はTheoryとDataPointsとFixitureによ…
概要 レビュー指摘「不要な分岐」について ※Javaの話です 内容 私が実際に指摘した「不要な分岐」について。 コードを見ていただくのが手っ取り早いかと思います。こういうコードを書くJava開発経歴10年のプログラマーとかが 居たりするのが日本の開発現場の…
概要 レビュー指摘「不適切な命名」について ※Javaの話です 内容 「不適切な命名」のコードは可読性が下がります。 項目 内容 不適切な理由 汎用的な名前 param,obj等広い意味を表す名前 用途を読み取れない 日本語のローマ字読み helloではなくkonnichiwa等…
概要 レビュー指摘「マジック分岐」について ※Javaの話です 内容 自分が独自に定義した数値に意味を持たせて 自分にしか分からない分岐を作成すること。 サンプルコード package review.ex3.magic_branch; public class MusicPlayer { enum MusicType { JPOP…