設計書のメンテナンスについて

設計書について思うこと 設計書いる? 設計書みる? 設計書のメンテいる? 設計書とコードの乖離 設計書はどうあるべきか 前提 初期開発 保守開発 参考文献 設計書について思うこと 設計書いる? 初期開発では必要 ゼロから作るので設計書がないと作れない …

【Java】CompletableFutureの使い方

実行環境 CompletableFutureとは CompletableFutureの使い方 CompletableFutureの生成 CompletableFutureの結果取得 CompletableFutureの後処理 CompletableFutureの合成 CompletableFutureのエラーハンドリング get() vs join() get()の特徴 join()の特徴 …

【Java】TaskExecutorについて

実行環境 TaskExecutorの種類 ThreadPoolTaskExecutorの設定値 ThreadPoolTaskExecutorのデフォルト値 Springの場合 Spring Bootの場合 TaskExecutorの設定方法 メソッドレベル アプリケーションレベル 参考文献 Executor/TaskExecutorとは TaskExecutorの使…

【Java】Springで@Asyncを使わずに非同期化する方法

実行環境 @Asyncを使えないケース @Asyncを使わない非同期化方法 1. Configurationクラスに@EnableAsyncを付与する 2. Executorを定義する 3. ExecutorをDIする 4. CompletableFutureのsupplyAsync/runAsyncで非同期化する 参考文献 実行環境 OS:Windows 10…

【Java】Springで非同期処理

実行環境 Springの非同期化方法 1. Configurationクラスに@EnableAsyncを付与する 2. Executorを定義する 3. 非同期化したいメソッドに@Asyncを付与する 4. @Asyncを付与したメソッドを呼ぶ @Asyncの制約 エラーハンドリング Future.get()でハンドリング Asy…

【Java】商品一覧をソートし、商品タイプごとにソート順が1位の商品を抽出する

実行環境 やりたいこと 単一ソートの場合 複数ソートの場合 参考文献 実行環境 OS:Windows 10 Java:17 やりたいこと 商品一覧をソートする 商品タイプごとにソート順が1位の商品を抽出する 抽出結果をソートする 単一ソートの場合 価格の降順でソートする …

APIと画面を疎結合にする

業務で携わっているWEBアプリは内部APIを採用している。 しかし、APIが画面と密結合していて問題になっているので、その問題点と解決策をまとめる。 WEBアプリの構成 APIと画面が密結合になる APIが画面を意識し過ぎている APIレスポンスをビューにアサイン…

【Java】オブジェクトの生成方法

ゴール 実行環境 Builderパターンとは オブジェクトの生成方法 Constructorでオブジェクトを生成する メリット デメリット Setterでオブジェクトを生成する メリット デメリット Builderでオブジェクトを生成する メリット デメリット ゴール Builderパター…

【Java】ループ処理を並列化し、ループの要素ごとにエラーハンドリングする

実行環境 ループ処理を並列化し、ループの要素ごとにエラーハンドリングする 並列化処理をSpring Bootに乗せ換える Main Service Runner 実行結果 実行環境 OS:Windows 10 Java:17 Spring Boot:2.6.2 ループ処理を並列化し、ループの要素ごとにエラーハン…

Dockerを試す

ゴール 実行環境 Dockerの概要 Dockerのインストール Docker Desktop on Windowsのインストール WSLのインストール Dockerのバージョン確認 hello-worldのコンテナを試す Apacheのコンテナを試す Apacheコンテナの起動 Apacheの動作確認 コンテナの停止 コン…

JMeterで負荷テストをする

実行環境 JMeterのインストールから初期設定 Javaのインストール JMeterのインストール JMeterの日本語化 JMeterの起動 プラグインのインストール Webサーバの用意 Spring Initializrからアプリを作成 コントローラの作成 アプリの起動 テスト計画の作成 テ…

【Java】Spring Data Redisを試す

実行環境 Spring Data Redisとは IntellijでSpring Data Redisの公式チュートリアルを試す 1. Redisをインストールする 2. Spring Initializrからアプリの雛型(zipファイル)をダウンロードする 3. zipファイルを解凍し、Intellijにインポートする 4. 必要…

【Java】Spring Cacheを試す

実行環境 Spring Cacheとは IntellijでSpring Cacheの公式チュートリアルを試す 1. Spring Initializrからアプリの雛型(zipファイル)をダウンロードする 2. zipファイルを解凍し、Intellijにインポートする 3. 必要なファイルを作成する 4. プログラムを実…

【Java】Spring Batchを試す

IntellijでSpring Batchの公式チュートリアルを試す 1. Spring Initializrからアプリの雛型(zipファイル)をダウンロードする 2. zipファイルを解凍し、Intellijにインポートする 3. 必要なファイルを作成する 4. JARを作成する。 5. JARを実行する Linux環…

【Vagrant】仮想マシンにファイルを転送する方法

仮想マシンにファイルを転送する方法 PowerShellは文字コードを指定する 参考文献 仮想マシンにファイルを転送する方法 Vagrantfileがあるフォルダに移動する OpenSSHの設定をする scpコマンドで転送する C:\work>cd C:\work\vagrant\bionic64 C:\work\vagra…

【IntelliJ】Community版はSpring Initializrが使えない

Spring InitializrでSpring Bootアプリを作成しようとしたが、Spring Initializrが見当たらない。 Community版はSpring Initializr(Spring)をサポートしてない Community版はSpring Initializrのサイトから作るしかなさそう 参考文献 Community版はSpring …

【IntelliJ】プロジェクトとモジュールの違い

IntelliJのプロジェクトとは IntelliJのモジュールとは IntelliJとEclipseとの用語の違い IntelliJで複数モジュールのプロジェクトを作成する方法 参考文献 IntelliJのプロジェクトとは IntelliJ IDEA のプロジェクトは、モジュールをまとめて保持し、モジュ…

【Linux】シェルスクリプト(bash)入門

シェルスクリプト入門 シェルスクリプト例題 bash_profile/bashrcの使い分け シェルスクリプト入門 シェルスクリプトを書くためにはvi(vim)の使い方を知る必要があります。 eng-entrance.com シェルスクリプトの作成方法と実行方法です。 shellscript.sunone…

【Java】LinuxでJava環境を構築してJARを実行する

実行環境 Javaのインストール Javaの動作確認 JARの作成と実行 実行環境 動作確認を行った環境は以下になります。 vagrant@vagrant:~$ cat /etc/os-release NAME="Ubuntu" VERSION="18.04.3 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubu…

【Windows】VagrantでLinux(Ubuntu)環境を構築する

VirtualBoxのインストール Vagrantのインストール VagrantでLinux(Ubuntu)環境を作る Ubuntuでのrootユーザーの利用方法 VirtualBoxのインストール 下記からインストーラーをダウンロードして、ウィザードに従ってインストールします。 www.virtualbox.org V…

簡単なタスクと難しいタスクはどちらを先にやるべきか

簡単なタスクと難しいタスクはどちらを先にやるべきでしょうか? 私は簡単なタスクから消化していくのが好みなので、基本的に簡単なタスクから先にやります。 前提条件 簡単なタスクを先にやるメリット 時間と心に余裕がある状態で簡単なタスクを消化できる …

【Windows】スクリーンショットを撮るにはScreenpresso(無料)がおすすめ

Windowsでスクリーンショット(画面キャプチャ)を撮るツールとしてScreenpresso(無料)がおすすめです。 以前はWindows標準のSnipping Toolを使っていました。 気軽にスクリーンショットを撮れるので重宝していたのですが、画像の編集機能がほぼないのが欠…

【Oracle】vagrantでOracle21cをインストールする

VirtualBoxのインストール Vagrantのインストール Oracleのインストール VirtualBoxのインストール 下記からインストーラーをダウンロードして、ウィザードに従ってインストールします。 www.virtualbox.org Vagrantのインストール 下記からインストーラーを…

【Windows】容量が逼迫してきたのでシステムの復元ポイントを削除する

Oracleをインストールしようと思って容量を確認したら、残りが30GBしかありませんでした。 PCを買ってまだ半年しか経っていないですし、アプリや写真もそんなに入れた記憶がないので、びっくりしました。 容量を圧迫している原因を探す システムの復元を削除…

Windowsのシェル(ターミナル)をどれにするか

コマンドプロンプト PowerShell GitBash 結局どれにするか Windows Terminal コマンドプロンプト 出来ることが限られているし、後継のPowerShellがあるので積極的に使うべきではないと思います。 以下の主要コマンドを押さえておけばOKです。 techacademy.jp…

【IntelliJ】ターミナルのシェルを変更する

IntelliJ IDEAのターミナルのシェルを変更する方法です。 変更方法 IntelliJバージョン 参考文献 変更方法 画面上部のメニューの「File」をクリック 「Settings」をクリック 「Tools」をクリック 「Terminal」をクリック 「Shell path」から任意のシェルを選…

【IntelliJ】メニューのVCSをGitに変更する方法

IntelliJ IDEA の画面上部にあるメニューのVCSをGitに変更する方法です。 手動で変更する方法 自動で変更する方法 VCSに戻す方法 IntelliJバージョン 参考文献 手動で変更する方法 画面上部のメニューの「VCS」をクリック 「Enable Version Control Integrat…

【Java】Mockitoでモック化したメソッドを複数回呼ぶ方法

Mockitoでモック化したメソッドを複数回呼ぶ方法です。 実行環境は以下になります。 JDK:17 Junit:4.13.2 Mockito:4.0.0 引数が基本型の場合 引数が参照型の場合(フィールドが基本型のみ) 引数が参照型の場合(フィールドに参照型が含まれる) ソースコ…

【Java】Mockitoでモック化したメソッドの引数を検証する方法

Mockitoでモック化したメソッドの引数を検証する方法です。 JunitはJunit4を使用しています。 引数が基本型の場合 引数が参照型の場合(同一インスタンス) 引数が参照型の場合(フィールドが基本型のみ) 引数が参照型の場合(フィールドに参照型が含まれる…

【Java】テストライブラリのMockitoをインストールする

テストライブラリのMockitoをインストールする手順です。 IDEにIntelliJ IDEA、プロジェクトにMavenを使用します。 Mavenプロジェクトを作成する テストライブラリ(Junit)を追加する Mockitoをインストールする Mockitoの動作確認をする Mavenプロジェクト…