最近のGoのOpenAPI Generatorの推しはogen

6 min read | #開発 #Go #OpenAPI

はじめに

OpenAPI の yaml ファイルから Go のコードを生成する OSS ツールは何種類か存在します。 よく使われるのはOpenAPITools/openapi-generatordeepmap/oapi-codegenでしょうか。

ググると日本語の記事もたくさん出てきます。

もちろんこれらの OSS は便利なのですが、生成される interface や型が個人的にあまり好みではなく、モヤモヤしながら使っていました。

そんな中、新しめの OSS であるogen-dev/ogenというツールが良さげだという情報をキャッチし、実際に使ってみたところ自分の好みにフィットするツールだということが見えてきました。

続きを読む

Goのmath/bigパッケージを使ってbase62エンコードをする

4 min read | #開発 #Go

こんにちは @p1ass です。

Go で base62 エンコード、つまりあるバイト列を [a-zA-Z0-9] の範囲の文字を使ってエンコードする方法を調べたのでまとめます。

最終的には、math/big パッケージを使うことで実現できることを知りました。

続きを読む

Google DomainsからCloudflareにドメインを移管した

2 min read | #開発 #Google Domains #Cloudflare

こんにちは、@p1assです。

先日、Google から Google Domains を Squarespace に譲渡すると発表されました。 (Edited(2023/06/18): Squarespace のスペルが間違っていました。)

何もせずともドメインを失うことはないですが、良い機会なのでドメインを Cloudflare に移管することにしました。 Cloudflare を選んだ理由は、既にネームサーバーとして Cloudflare を利用していたからです。

続きを読む

Vercel・Cloud Run間の通信をIAMで認証する

5 min read | #開発 #Vercel #Google Cloud #Cloud Run

こんにちは、@p1assです。 Google Cloud の IAM を使ったテクニックを紹介します。

モチベーション

とある趣味のプロジェクトで、Vercel に Node.js のフロントエンドサーバー、Cloud Run にバックエンド API をホスティングするアーキテクチャを設計しました。 Cloud Run にホスティングしている API は、フロントエンドサーバーが SSR するときに呼び出されます。 一方で、ブラウザから直接 API を叩くことはありません。

アーキテクチャ 簡略化したアーキテクチャ

このようなアーキテクチャでは、Vercel から Cloud Run にアクセスできるようにするために、Cloud Run のエンドポイントをインターネットに公開する必要があります。 しかし、何も対策をせずインターネットに公開してしまうと、URL が露出してしまった際に第三者から API を叩かれてしまう危険性がありました。

そこで、IAM の仕組みを使うことで、エンドポイントをインターネットに公開しつつも、Vercel からしか Cloud Run の API を叩けないようにする仕組みを導入したいです。

続きを読む

有機ELテレビを買った 【SONY BRAVIA XRJ-48A90K】

7 min read | #雑記 #テレビ

今回購入したテレビ

こんにちは、@p1assです。

タイトルの通り、数ヶ月前に有機 EL テレビを買いました。 高い買い物でしたが、非常に満足しています! このブログでは、テレビを買った経緯や使い心地、テレビを買うために調べたことなどを紹介します。

続きを読む

バックエンドエンジニアがNext.jsのApp Directoryに夢を見る

6 min read | #設計 #Next.js #React

こんにちは、@p1assです。

最近、Next.js 13 から beta で導入されている App Directory を趣味で触っているのですが、今まで SPA を採用しづらかった事業領域でも React のエコシステムを使えるようになりそうな予感がして、ワクワクしています。

このブログでは、今までどういった課題があり、Next.js の App Directory がそれをどのように解決するのかを紹介します。 なお、内容はあくまで考察であり、実際に運用をしているわけでない点に注意してください。 これは「夢」なのです。

続きを読む

2022年にやったこと

3 min read | #ポエム #アニメ #ライブ #引っ越し #旅行 #ゲーム

こんにちは、@p1assです。

年末なので 2022 年にやったことをまとめようと思います。

続きを読む

『Googleのソフトウェアエンジニアリング』を読んだ

3 min read | #読書 #テスト

こんにちは、@p1ass です。 最近はどっぷり Splatoon 3 にはまっています。

さて、ここ 1 年近く読み進めていた『Google のソフトウェアエンジニアリング』をようやく読み終えました。 大ボリュームで時間がかかってしまいましたが、学びが多くある本だったので感想をまとめようと思います。

続きを読む

ISUCON 12 本選に参加しました

5 min read | #ISUCON #Go

こんにちは、@p1ass です。

前回のブログに引き続き、ISUCON 12 の本選に @km_conner@atrn0 で参加しました。

結果は、参考スコア 218,852 点で失格になりました 😭

PASS してたら総合 5 位のスコアのようです。 僕のミスのためとても悔しいし、申し訳ない気持ちでいっぱいです。

スコア

この記事ではいつも通りやったことを書こうと思います。

GitHub はこちらです。

なお、スコアグラフはこのようになりました。

スコアグラフ

続きを読む

ZigでISUCON 12 の予選をCGOクロスコンパイルする

2 min read | #開発 #Zig

こんにちは、@p1ass です。

先日投稿した記事「ISUCON 12 の予選に参加して、7 位で本選進出を決めました」にて、CGO クロスコンパイルに苦労した話をしました。

その後色々調べたところ、Zig を使うと簡単にコンパイルできることを知ったので試してみました。

続きを読む