RAKUS Developers Blog | ラクス エンジニアブログ

株式会社ラクスのITエンジニアによる技術ブログです。

Java

JavaのComparatorまとめ

はじめに こんにちは、Hiropyです。 今回は、JavaのComparatorについて簡単に解説できればと思います。 はじめに Comparatorとは? compareメソッドの使用方法 使用例 Comparableとの違い 主なメソッド comparing reversed naturalOrder・reverseOrder nullsF…

【JDK】Javaの更新で考えたこと

考えること1: JDKのEOL 考えること2: 使用しているMW(ミドルウェア)の対応バージョン 考えること3: JDK本体の更新内容 考えること4: 性能テスト まとめ 皆さんはJDKの更新をしたことがありますでしょうか。 私はこれまでやったことはありませんでした。。 理…

複数サーバーでE2Eテストを並列実行してみた

noriharu3 です。 E2Eテストの実行時間短縮を目指して、複数サーバーでテストを並列実行してみましたのでご紹介します。 複数のサーバーでE2Eテストを実行する方法 E2Eテストを並列実行させる E2Eテストを複数のサーバーで並列実行させる 結果 Before After …

Javaのメモリ解放は誰がやっているのか

はじめまして!バックエンドエンジニアのnnhkrnkと申します! 先日組み込み系エンジニアの友人と話していた際、C言語ではメモリをユーザが意図的に開放しないとメモリリークが起きるということを初めて知りました。 自分は普段Javaを書いてますが、メモリを…

【初心者向け】 Spring Bootにおける入力値チェック

はじめに はじめまして、新卒1年目のTKDSです! 先日、Spring Bootの入力値チェックについて触れる機会があったため、入力値チェックの使い方について調べてました。 今回は、調べた内容と簡単な使いかたについてご紹介したいと思います。 はじめに 入力値チ…

GoFの次に覚えたいデザインパターン ~Type Objectパターン~

ユーザーによるカスタマイズ 型と実体(クラスとインスタンス) Type Object パターン 例 申請書クラス 既定の申請書のクラス カスタム申請書のクラスの検討 Type Object パターンを適用 まとめ 関連するデザインパターン Flyweight パターン Interpreter パ…

GoFの次に覚えたいデザインパターン ~Specificationパターン~

ビジネスアプリケーションとビジネスルール 用語について パターン適用前 Specification パターン Hard Coded Specification Parameterized Specification Composite Specification 条件の再利用性が向上する テスト性が向上する ルールと条件を統一したイン…

GoFの次に覚えたいデザインパターン ~Null Objectパターン~

楽楽精算開発部の id:smdr9p です。主に Java を使ったサーバーサイドを担当しています。 前置き GoF のデザインパターンはご存知でしょうか。 ご存知の方も多いかと思いますが簡単に説明すると、GoF のデザインパターンとは Erich Gamma, Richard Helm, Ral…

【Java】JDK Flight Recorder を調査・検証してみた

こんにちは、技術推進課の uemura_rks です。 私が所属する技術推進課では「各商材の開発チームから課題をヒアリングし、その解決に向けた調査を行う」という取り組みをしています。 取り組みの一環で Java のパフォーマンス分析、診断ツールである JDK Flig…

JUnit5: 便利なパラメータ化テストの使いどころと実装方法

本記事ではJUnit5におけるパラメータ化テストの使いどころと実際の実装方法について紹介します。 使いどころ 実装方法 パラメータ化テストの宣言 @ParameterizedTest パラメータ指定 単一データの入力 @ValueSource 列挙型 @EnumSource 複数データの入力 @Cs…

JUnit5: テストを仕様書にする方法

テストを仕様書にする方法としてJUnitの階層化を紹介

JUnit4からJUnit5への移行メモ、変更箇所をまとめてみた

先日、JUnit4からJUnit5への移行作業を実施しました。 移行する際に色々とコードの変更が必要なのですが、作業しながら「パッケージと名前の変更点が一括でまとまってる記事があったらな~」と思ったのでこの記事でまとめることにしました。 アノテーション …

【JJUG CCC 2022 Fall 発表レポート】Javaで実現するフォールトトレランス 〜Resilience4jを使ったサーキットブレーカーの実装〜

楽楽勤怠開発1課のy_konnoです。 先日開催されたJJUG CCC 2022 Fallに登壇しましたので、今回はそのレポートになります。 プロポーザル 登壇資料 登壇を振り返って Q:競合ライブラリは検討したか? Q:楽楽勤怠の事例においてミドルウェアではなくあえてJav…

JJUG CCC 2022 Fallで登壇してきました!

はじめに JJUG CCC とは 発表内容 資料 テーマの選定理由 さいごに はじめに JJUG CCC とは 日本Javaユーザーグループ(Japan Java User Group/JJUG)が主催として、年2回(春と秋)に開催する1日カンファレンスです。 今回はオンラインで開催され、各セッシ…

Javaのソート〜CollectionsはやめてStreamを使おう〜

はじめに こんにちは!新卒1年目の hachimd です! 先日、先輩エンジニアの方に「Javaでソートする時って Collections 使うんですよね?」って話をしたら「いやいや、Javaのソートは Stream が便利だよ!」って教えていただきました。 そこで今回は、Stream…

【Java 配列】使い方 まとめ

皆さんこんにちは!開発エンジニアをしているnkumaです! 最近、業務でJava 配列を見かけたのですが、久しく触っていなかったためにかなりド忘れしていました。 そのため、復習がてらJava 配列についてブログに起こしてみようと発起した次第です。 本記事で…

【イベントレポート】JJUG CCC 2022 Springに登壇・協賛しました!

こんにちは、技術広報のyayawowoです。 皆さん! 2022年6月19日(日)に開催したJJUG CCC 2022 Springに参加されましたでしょうか? 今回は、弊社テックリードが発表した内容をまとめさせていただきましたので 当日JJUGを視聴できなかった方、視聴したけれど改…

Java 18 インストールと新機能紹介【最新版】

2022/03/22 に Java 18が公式にリリースされたので今回は新しく追加された機能からいくつかをピックアップして紹介していこうかと思います。 また、本記事ではJava18のインストール方法についても書いていきます。 Javaとは Java 18のインストール方法 Java …

【JJUG CCC 2021 Fall 発表レポート】JMeter・Grafana・Influxdbを活用したパフォーマンステストの自動化

新規サービスの開発チームに所属しているkarabishです。 2021年11月にJJUG CCC 2021 Fallにて「勤怠管理サービスでの継続的テストの取り組み」というテーマで登壇しました。 パフォーマンステストの自動化について発表したのですが、発表時はどういうこ…

【多言語対応】Spring Boot+Java - 動的に言語を切り替る方法 -

はじめに 多言語対応とは さっそく環境準備から message.propertiesを作成する Configを設定する ResourceBundleMessageSourceを継承した独自クラスを作成する Controllerから作成したMultiMessageSourceを呼び出す 実行してみる まとめ はじめに はじめまし…

【イベントレポート】JJUG CCC Fall 2021に登壇・協賛しました!

こんにちは、技術広報のyayawowoです。 皆さん!2021/11/21(日)に開催したJJUG CCC 2021 Fallに参加されましたでしょうか? 今回は、弊社エンジニアの登壇資料をまとめさせていただきましたので JJUGに参加した人、参加できなかった人のご参考になれば幸いで…

オブジェクト指向を学ぶためのオブジェクト指向エクササイズ

こんにちは。west-cです。 オブジェクト指向を意識した開発を行うようになってからしばらく経ちました。 当初に比べると手続き的な考え方からいくらかは脱却できたかと思いますが、オブジェクト指向的な設計手法やコーディング方法が完璧に身に付いたと言え…

排他制御の「は」の字も知らない人が排他制御について調べてまとめてみた

こんにちは。エンジニアのrs_shoです。 投稿は4回目になります。今回は排他制御についてお話ししようと思います。 はじめに 排他制御の種類 楽観ロック(楽観的排他制御) 悲観ロック(悲観的排他制御) それぞれの特徴 Javaにおける排他制御 Semaphore CountDow…

マイクロサービスアーキテクチャをあきらめないための、モノリスで始めるアーキテクチャテスト/JJUG CCC 2020 Fall 登壇レポート

この記事は アーキテクチャテスト Advent Calendar 2020 - Qiita の 25 日目のエントリです。 qiita.com こんにちわ。株式会社ラクスで「楽楽労務」を開発している @kawanamiyuu です。遅くなりましたが、先月開催された JJUG CCC 2020 Fall の登壇レポート…

【入門】Spring Bootとは~実践まで

Spring Boot入門 こんにちは。高照です。 Webアプリケーションを作成する際にどうすれば作成できるのか、またはSpring Boot聞いたことあるけど、どういうものなのかよくわからない!という方に向け今回は簡単にWebアプリケーションを作成できるフレームワー…

Java開発エンジニアが紹介する、7つのフレームワーク

はじめに こんにちは。sts-250rrです。 いきなりですが、皆さま開発においてフレームワークは使われていますでしょうか? 世の中のサービスはもちろん、ラクスのシステムにおいても様々なフレームワークが使われているわけですが、フレームワーク自体も時代…

お前のデメテルの法則は間違っている ~getter/setterの必要性~

今後の新サービスの立ち上げに向けて技術検証を行う技術推進課に所属している鈴木(@moomooya)です。今年度から新設の部署に(課長とふたりぼっちで)異動となりました。 最近マイクロサービスと関連してオブジェクト指向について取り組んでいるので、デメ…

分かりやすいコードを書いていますか?~他の人に優しいコードを書くポイント~

はじめに 名前に情報を詰め込む 明確な単語を選ぶ 汎用的な名前を避ける(あるいは使う状況を選ぶ) 抽象的な名前よりも具体的な名前を使う 接尾辞や接頭辞を使って情報を追加する 名前の長さを決める 名前のフォーマットで情報を伝える 制御フローを読みや…

Java14からswitchがより便利に

id:logy0704です。 もうすぐJava14がリリースされますね。 いくつかの変更が予定されていますが、その中でも今回はswitch文の変更についてご紹介しようと思います。*1 そもそもswitch文って? 従来のswitch文の課題 fall through ブロック 文であること これ…

実装の際に気を付けるべき汎用メソッドの落とし穴

こんにちは。新卒1年目エンジニアのrs_shoです。 投稿は3回目になります。 今回は実装の際に気を付けるべき汎用メソッドの落とし穴についてお話ししたいと思います。 はじめに そもそも何に困ったのか 解決するためにどういう案があるのか おわりに 参考資料…

Copyright © RAKUS Co., Ltd. All rights reserved.