Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Java

システム開発の現場改善記 - ゆとり教育がスタートしたころに JUnit を導入した昔話

概要 ゆとり教育がスタートしたころに JUnit を導入した昔話です

システム開発の現場改善記 - Template Method パターンでチームの開発工数を 1 / 10 にした話 ※オチ付

概要 Template Method パターンでチームの開発工数を 1 / 10 にした話です

Java | Eclipseの設定でJavaDoc未記載の箇所を警告表示にする

概要 Eclipseの設定でJavaDoc未記載の箇所を警告表示にする 内容 下記の設定でJavaDocの警告表示が可能 ・設定=>Java=>コンパイラ=>Javadoc=>Process Javadoc commentsにチェック 例:publicとprotectedの要素でJavaDocがないものや、文法が誤っているものを…

Gradle | Javaのpackage-info.javaを自動生成するGradleカスタムPluginを作成

概要 Javaのpackage-info.javaを自動生成するGradleカスタムPluginを作成 内容 下記の記事で作成した内容をGradleのカスタムPlugin化します。 RubyでJavaのpackage-info.javaを一括生成するスクリプト http://d.hatena.ne.jp/tbpg/20120808/1344447924 要件 …

Java | Eclipse + Gradle + Cobertura PluginでJavaのテストカバレッジを計測する

概要 Eclipse+Cobertura PluginでJavaのテストカバレッジを計測する Cobertura=>コヴェルトゥーラ。スペイン語でcoverageの意。 詳細 Gradleプロジェクトを作成します。build.gradleに下記の設定を追加することでカバレッジを計測します。 build.gradle buil…

Eclpse | EclipseのコードテンプレートでJavaの流れるようなIFのSetterを生成

概要 EclipseのコードテンプレートでJavaの流れるようなIFのSetterを生成 内容 以下の設定をテンプレートに追加する。名前:fluent 説明:流れるようなIF形式のSetter パターン /** * {@code ${name}}を設定し、自クラスのインスタンスを返却する. * * @para…

Java | JUnit4 + Selenium WebDriverでWebの自動テストを行う構成の1例

概要 Selenium WebdriverでWebの自動テストを行う構成の1例 準備 Selenium Webdriverによるテスト作成の設定について。Gradleの場合、build.gradleのdependenciesに以下を追加 compile 'org.seleniumhq.selenium:selenium-java:2.32.0'手動の場合は下記よりj…

Java | JMeterのBSF Lisnerを利用してレスポンス内容を加工して変数に格納する

概要 JMeterのBSF Lisnerを利用してレスポンス内容を加工して変数に格納する 内容 ・リスナーからBSF Lisnerを追加 BSF Lisner内の処理 var body = sampleResult.responseDataAsString; var search = body.slice(564,568); OUT.println(search); vars.put('h…

Java | JavaMailをラップして流れるようなIFにする

概要 JavaMailをラップして流れるようなIFにする 内容 JavaMailをラップして流れるようなIFにしてみます。 ※他のライブラリにも流用可能。 サンプルコード インターフェース import javax.mail.MessagingException; import javax.mail.internet.AddressExcep…

Java | opencsvでCSVファイルを操作する

概要 opencsvでCSVファイルを操作する 詳細 以下の手順でインストールする ・下記URLからtarボールを取得 http://sourceforge.jp/projects/sfnet_opencsv/・mavenでビルドする ・出来上がったjarをプロジェクトのビルドパスに設定する下記に入出力のサンプル…

Java | EasyMockで単体テストをMockする

概要 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…

Java | opencsvでCSVファイルを操作する(tsv対応版)

概要 opencsvでCSVファイルを操作する(tsv対応版) 詳細 下記の記事のTSV対応版サンプルを作成。Java | opencsvでCSVファイルを操作する http://d.hatena.ne.jp/tbpg/20130514/1368543588 サンプルコード package opencsv; import java.io.ByteArrayInputStre…

Java | Futureパターンで非同期処理の結果を先に受け取る

概要 Futureパターンで非同期処理の結果を先に受け取る 詳細 Futureパターンにより、非同期処理の結果を先に受け取ります。 イメージとしては予約券。 サンプルコード package thread; import java.util.Date; import java.util.concurrent.Callable; import…

Java | mockitoで単体テストをMockする

概要 mockitoで単体テストをMockする 詳細 mockitoで単体テストをMockします。 業務ではdjUnitしか使って居なかったのですが、djUnitのMock機能は メソッドを文字列で指定するためリファクタリング対象外になる、という欠点があります。メソッドのリファクタ…

Java | JavaDB | JavaDBをサーバーモードで起動

パンくずリスト JavaDB JavaDBをサーバーモードで起動 概要 JavaDBをサーバーモードで起動 詳細 JavaDBをサーバーモードで起動する方法について。 DBサーバーの起動、停止について 操作 起動 起動 Javaのインストールディレクトリ\db\binstartNetworkServer.…

Java | JavaDB | Eclipse DBViewerプラグインでJavaDBを新規作成

パンくずリスト JavaDB Eclipse DBViewerプラグインでJavaDBを新規作成 概要 Eclipse DBViewerプラグインでJavaDBを新規作成 詳細 Eclipse DBViewerプラグインでJavaDBを新規作成する方法について。・メニュー>ウインドウ>パースペクティブを開く>DBViewe…

JavaDB関連情報まとめ

概要 当ブログで取り扱っているJavaDB関連情報メニュー 内容 Eclipse DBViewerプラグインでJavaDBを新規作成 JavaDBをサーバーモードで起動

Java | 複合キーのMap>取得ユーティリティ

概要 複合キーのMap>取得ユーティリティについてまとめます 詳細 Map>のKが複数キーを持つデータクラスとなるMapを Listから取得するユーティリティを作成する。KのすべてのカラムはTと同じ名前、同じデータ型であることを前提とする。 代表的な用途 テーブ…

Java | Eclipseのファイル検索機能+正規表現でHashMapをEnumMapに一括置換(命名の前提あり)

パンくず 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[…

HashMapとEnumMapの処理時間を比較

パンくず Java HashMapとEnumMapの比較 概要 HashMapとEnumMapの比較 詳細 HashMapとEnumMapの性能を比較します。比較時の使用はHashMapとEnumMapそれぞれに100個のEnumをキーに設定。 Valueには100個のIntegerを設定します。 設定後に、100個のEnumで100回M…

java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装

パンくず Java java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 概要 java.lang.reflect.Proxyによる自作AOPでトレースログ機能を実装 内容 java.lang.reflect.Proxy を利用して、AOPによるTraceログ機能を実装します。※補足 AOP=アスペクト…

汎用Validator

パンくず Java JUnit 汎用Validator 概要 汎用Validator 内容 汎用的なValidatorを作成します。 要件は以下とします。・1つのValidatorの中に複数のエラー判定処理が存在する それぞれのエラー判定のどれか一つのエラーが成立した場合に Validator全体として…

JUnit | JUnit4のDataPointsによるテストと特定ケースの実行

パンくず Java JUnit JUnit4のDataPointsによるテストと特定ケースの実行 概要 JUnit4のDataPointsによるテストと特定ケースの実行 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 パラメータ化されたケースはFixtureの配列と…

Java | 流れるようなデータクラス生成ツール

パンくず Java 流れるようなデータクラス生成ツール 概要 流れるようなデータクラス生成ツールについて 要件 定義用クラスに以下の内容を指定 ・データクラス名 ・データクラスJavaDoc ・データクラスJavaDoc用author ・フィールドコメントのリスト ・フィー…

JUnit | JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース

パンくず Java JUnit JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 概要 JUnit4のDataPointsによるテストとFixtureと流れるようなインターフェース 内容 JUnit4のDataPointsによって、テストをパラメータ化することができます。 …

JUnit | 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…