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

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

Java

新規アプリケーション設計の全体像 - 設計の流れと考え方を振り返る

はじめに こんにちは、楽楽精算開発チームの坂田です。 私は今年、楽楽精算における新機能追加プロジェクトにアサインされ、その中で新規アプリケーションの開発を担当する機会をいただきました。 アプリケーションの新規開発は様々な要件を考慮しながら進め…

BtoB SaaSにおけるPasskey認証の可能性 - 技術検証から見えた課題と展望

はじめに こんにちは、@rs_tukki です。 ラクスの開発部では、これまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「技術推進プロジェクト」というプロジェクトがあります。 今…

【Java】GradleとGitHub ActionsでCIテスト実行時間を約50%短縮する方法 - カスタムタスクによる並列化実装

目次: はじめに 前提知識 当時の課題 実施した改善策 結果 その他 まとめ はじめに こんにちは。今年に入って2ヶ月に1回以上K-POPなどのライブに行っている、楽楽債権管理開発チームの冨澤です。 楽楽債権管理は新サービスとして2025年7月1日から販売を開始…

並列処理で発生したスレッド増加問題と解決策

はじめに こんにちは。楽楽請求でバックエンド開発を担当しているmarumoです。 楽楽請求は2024年10月にサービスを開始した新サービスで、請求書を一元管理し、経理業務を効率化する請求書受領システムです。 その中で、請求書の内容をデータ化するために OCR…

JDKバージョンとBigDecimalの挙動について

BigDecimalの値保持について BigDecimalから値の抽出 誤った表記変換方法 正しい文字列を取得する方法 まとめ お金の計算など正確にJavaで計算をするうえで欠かせないBigDecimalですが、 一部JDKバージョンで挙動に変更が入っていました。 この改修により問…

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アプリケーションを作成できるフレームワー…

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