エキサイト株式会社メディア事業部エンジニアの佐々木です。2024年アドベントカレンダー2日目を担当させていただきます。 サーバーローカルでのキャッシュはHashMap等で自作してもいいのですが、キャッシュ期限を自作するのは結構面倒なので、Caffeineを使用…
エキサイト株式会社エンジニアの佐々木です。エキサイトホールディングス 2023 advent calendar 1日目を担当させていただきます。 qiita.com 今回は、SpringBoot/Javaで、サーバローカルなキャッシュをRedHatが開発しているInfinispanの組み込みモードを使用…
エキサイト株式会社メディア事業部エンジニア佐々木です。開発で使用するタスクランナーは、一般的にMakefileを使うものが多いかと思います。より簡単なgo-taskを紹介いたします。 インストール タスクファイル 実行 タスク一覧 まとめ 最後に インストール …
エキサイト株式会社エンジニア佐々木です。ローカル開発環境でHTTPSを使いたい場面がありましたので、ご紹介します。 動作環境 mkcert mkcertコマンドのインストール ローカル認証局の作成 ローカル証明書の作成 SpringBootへの適用 アプリケーションサーバ…
エキサイト株式会社エンジニアの佐々木です。弊社では結構なリクエストがあるので、キャッシュをいたるところに使用しております。キャッシュサーバ等に一時的にデータを避難するために、シリアライズ・デシリアライズ処理が必須となります。一般的には、Pro…
エキサイト株式会社エンジニア佐々木です。IntelliJ x Gradle x SpringBoot で開発をしていますが、デフォルト設定だとローカル環境の実行時にGradle daemonが複数立ち上がってしまう事象が発生します。Gradle daemonが立ち上がると無駄にメモリを使用してPC…
エキサイト株式会社メディア事業部エンジニアの佐々木です。メディア事業部ではSpringBoot/Javaで開発を行っており、静的解析ツールはSpotBugsを使用しています。ごくまれに、SpotBugsの指摘を抑止したいことがあります。Tipsとしてご紹介します。 前提 問題…
エキサイト株式会社メディア事業部エンジニアの佐々木です。今回は、SpringBootとFlywayでDBマイグレーションを行います。DBマイグレーションなど後回しにしがちですが、簡単にマイグレーション設定ができますので、手作業を減らしていきましょう。 動作確認…
エキサイト株式会社エンジニア佐々木です。JavaでList分割する方法をJava標準のみで実装するTipsです。 環境 数字のリスト分割する List 文字列のリストを分割する List.subListを使う方法 Collectors.groupingByを使う方法 まとめ 最後に 環境 $ java --ver…
エキサイト株式会社メディア事業部エンジニアの佐々木です。htmxは、React.jsやVue.jsなどの大きいフロントエンドフレームワークを用いることなく、SPAのような仕組みを提供してくれるライブラリになります。 htmx.org htmxとSpringBoot Thymeleafを使用して…
エキサイト株式会社メディア事業部エンジニアの佐々木です。JVMでJSONを扱うときのライブラリであるJacksonのフィールド名の規則を定義します。 環境 UpperCamelCase のときのJacksonの設定 SnakeCase のときのJacksonの設定 キャメルケースやスネークケース…
エキサイト株式会社メディア事業部エンジニアの佐々木です。SpringBootのMulti Module構成を採用して、各プロダクトごとにモノリポでモジュラーモノリス構成を敷いています。各モジュールごとに設定ファイルを置きたいことがあります。普通にやるとハマるん…
エキサイト株式会社メディア開発の佐々木です。 Advent Calendarの季節が今年もやってきました。 昨年同様、エキサイトホールディングス Advent Calendarで毎日投稿される予定です。 様々な話題が投稿されるのでぜひ閲覧してみてください! qiita.com AWS La…
エキサイト株式会社エンジニア佐々木です。 Advent Calendarの季節が今年もやってきました。 昨年同様、エキサイトホールディングス Advent Calendarで毎日投稿される予定です。 様々な話題が投稿されるのでぜひ閲覧してみてください! qiita.com 前回、 ネ…
エキサイト株式会社エンジニアの佐々木です。 Advent Calendarの季節が今年もやってきました。 昨年同様、エキサイトホールディングス Advent Calendarで毎日投稿される予定です。 様々な話題が投稿されるのでぜひ閲覧してみてください! qiita.com 超初心者…
エキサイト株式会社エンジニア佐々木です。前回 JUnit5でパラメータテストをする(@ValueSource, @CsvSource, @MethodSource) - エキサイト TechBlog. でパラメータテストの一部を書かせていただきました。残りの機能をご紹介します。 前提 環境は下記になり…
エキサイト株式会社メディア事業部エンジニア佐々木です。JUnit5からパラメータテストが大変しやすくなったので、ご紹介します。 前提 @ValueSource @CsvSource @MethodSource まとめ 最後に 前提 環境は下記になります。 # Java openjdk version "19.0.1" 2…
エキサイト株式会社メディア事業部の佐々木です。SpringBoot/Javaでメディア開発を行っていますが、単体テストでよく使用するJUnit5の@Nestedと@Orderの紹介です。 前提 @Nested コード Order Classの実行順を指定する場合 メソッドの実行順を指定する場合 …
エキサイト株式会社メディア事業部エンジニアの佐々木です。前回アプリケーションの情報をSpringBootアプリケーションに組み込みましたが、これに追加でGitの情報を組み込んでみます。 前回: tech.excite.co.jp 前提 JDK Version openjdk 17.0.1 2021-10-19 …
エキサイト株式会社メディア事業部エンジニアの佐々木です。SpringBootのアプリケーション情報を生成し、取得活用する方法になります。 前提 Java Version openjdk 17.0.1 2021-10-19 LTS OpenJDK Runtime Environment Corretto-17.0.1.12.1 (build 17.0.1+1…
エキサイト株式会社メディア事業部エンジニアの佐々木です。Gradleでタスクを順番に実行する書き方をメモしておきます。 はじめに 環境は下記になります。 ------------------------------------------------------------ Gradle 7.3.3 --------------------…
エキサイト株式会社メディア事業部エンジニアの佐々木です。メディア事業部では、SpringBoot、Gradle、IntelliJでリビルド開発を日々行っています。Dockerを使ったローカル環境での開発を行っています。開発でのSpringBootの起動方法は複数ありますので、3つ…
エキサイト株式会社メディア事業部エンジニアの佐々木です。メディア事業部ではSpringBootで開発しています。SpringBootには標準でDockerFileなしでコンテナイメージを生成してくれる機能があるので、ご紹介します。 はじめに コンテナイメージ作成 まとめ …
結論 前提 設定方法 やってみて 最後に エキサイト株式会社エンジニアの佐々木です。立場上、複数のプロジェクトをIntelliJで立ち上げることが多く、Windowがバラバラになってしまい使いにくかったんで、技術ブログに書くほどではない小さなTipsですが、調べ…
エキサイト株式会社メディア事業部エンジニアの佐々木です。 メディア事業部では、最近JVMを利用した開発が増えてきており、プロジェクトやリポジトリごとにバージョンが変わったりが起きています。これをなるべく自動で切り替える方法をご紹介します。 前提…
エキサイト株式会社のエンジニアの佐々木です。SpringBootとThymeleafを使ってリビルドしていますが、既存テンプレートがモバイル用とデスクトップ用でわかれているので、Interceptorを使って対応します。 前提 SpringBoot x Gradleを使います。 build.gradl…
エキサイト株式会社メディア開発の佐々木です。build.gradle内でIntelliJのGroovyの補完を効かせる方法です。 Gradleとは Groovy製のビルドツールになります。Javaを始めAndroidやC/C++でも使えるようです。モジュールの依存関係の解決やちょっとした処理をG…
エキサイト株式会社エンジニアの佐々木です。Java17が昨年リリースされ、JEP378のテキストブロックがLTSとして入ったので改めてJEP378を読むとテキスト変換の方法がいくつか書いてあったので、復習がてらおさらいします。 openjdk.java.net テキストブロック…
エキサイト株式会社エンジニアの佐々木です。2021年エキサイトホールディングス アドベントカレンダー19日を担当させていただきます。 余談 エキサイトのメディア事業部では、SpringBootを使用して過去の技術的負債に立ち向かっております。私がジョインして…
エキサイト株式会社エンジニアの佐々木です。2021年Exciteホールディングスアドベントカレンダー17日目を担当させていただきます。 SpringBootでのイベントリスナーの実装についてです。 はじめに SpringBootでは、アノテーションを用いたイベントリスナーの…