あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、取り上げたりしています。

JWT for Google Apps ScriptというライブラリをGitHubとnpmで公開しました

はじめに JWT for Google Apps Script というライブラリを、GitHub と rpm で公開しました。 jwt-for-google-apps-script - GitHub jwt-for-google-apps-script - npm このライブラリは、TypeScript で作成された Google Apps Script 用の ライブラリです。 …

TypeScriptで外部プロジェクトの参照設定とエイリアスをつける方法

はじめに TypeScript には プロジェクト参照(Project References) という、別プロジェクトのソースコードを読み込んで使用できる仕組みがあります。 ただ、このプロジェクト参照は、以下のように 1 つの tsconfig.json を持つ大きなプロジェクトがほぼ前提に…

OpenSSLでHMAC-SHA256の秘密鍵を生成し署名する方法

Google Apps Script で JWT の仕組みを作ろうと思って、HMAC-SHA256 を使用する際の秘密鍵の生成方法と署名方法を調べました。 本当は独自実装なんてしたくないのですが、ないものは仕方ですからね。。 まず HMAC-SHA256 の秘密鍵のサイズなのですが、RCF に…

Javaで動的キャストを行う方法

はじめに Java で動的キャストを行いたいというケースはあるかと思います。 例えば、受け取った内容によって生成するインスタンスを切り替えたいとかですね。 まずは設計を見直せと言われそうですが。。 結論から言うと、Java で動的キャストは可能ですが、…

Google Apps ScriptのClaspでWebアプリのURLを変えないでデプロイする方法

Google Apps Script には、TypeScript で開発するための Clasp というとても便利なライブラリがあります。 Clasp を使用すると、コマンドラインからも Web アプリをデプロイできるのですが、デプロイするごとにデプロイ ID が変わるため、Web アプリの URL …

Apache Commons LangのStringUtilsはとても便利

はじめに Java で文字列を扱う時に、null や空白文字("")がある関係で、ちょっと条件判定が面倒なことがあります。 こんな感じですね。 if (value == null || value.isEmpty()) { // 値がない場合の処理 } そんな時に、Apache Commons Lang の StringUtils …

Spring BootでSLF4J+logback+Lombokを使いログ出力を行う

はじめに Spring Boot のプロジェクトで簡単にログ出力を行いたい場合は、SLF4J + logback + Lombok を使うとよさそうです。 簡単にログ出力ができますし、高速で多機能、書籍『Java本格入門』でもよく使われていると書かれていました。 この記事では、SLF4J…

JUnitのテストクラスでLombokのアノテーションを使えない問題の解消方法

JUnit5 のテストクラスで、Lombok のアノテーションが使えなくて非常に悩んでいたのですが、build.gradle の設定に問題があったようです。 Spring Initializr で作成したプロジェクトは、以下のような build.gradle を作成します。 dependencies { compileOn…

Spring Boot にソースコードを整形する Spotless を組み込む

はじめに Java のシステム開発に限らないのですが、ソースコードの整形方法って人によって異なるし、場合によっては言い争いになりかねないので、開発プロジェクトではコード規約を作って遵守するようにします。 ただ、ソースコードの整形方法を目視で確認す…

Spring BootプロジェクトをIntelliJ IDEA CEで作成する

はじめに Spring Boot の開発をしたいけれど、最初はどうしたらいいか分からないことも多いかと思います。 そこで、以下の開発環境を構築する方法をご紹介したいと思います。 Spring Boot 2.7.0 Java 11 IntelliJ IDEA Community Edition はじめに IntelliJ …