記事

Goでオレオレ証明書がほしいときの一手

アプリケーション

GoでHTTPサーバーを書いているときなどオレオレ証明書がほしいときに役立つワンライナー。 go run $(go env GOROOT)/src/crypto/tls/generate_cert.go -rsa-bits 2048 -host localhost cert.pemとkey.pemが用意できる。 openssl使ったりmkcert使ったりしていたけどGo使っていたらこれで良さそう...

Golang Tips

入門 考える技術・書く技術――日本人のロジカルシンキング実践法

ビジネス

入門 考える技術・書く技術――日本人のロジカルシンキング実践法を読んだ。 クリティカルシンキングとかロジカルシンキングとかそのへんのテーマの本も一読しておくと理解が深まりそう。昔読んだその手の本が割と役立った。 ...

ロジカルシンキング

Goで指数バックオフとジッターを実装してみる

アプリケーション

指数バックオフ(Exponential backoff) リクエストの遅延を乗算的に増加させる(リトライ間隔を遅延させていく)形で失敗したリクエストを定期的に再試行(リトライ)する手法。 ex. 1回目のリトライは1秒後、2回目は2秒後、3回目は4秒後、4回目は8秒後... リトライ設計においては、バックオフのみに依存するのではなく、リトライ上限やタイムアウト(接続タイムアウトとリクエストタイムア...

指数バックオフ リトライ ジッター

FuelPHPとPHPのアップデートプロジェクトレポート

アプリケーション

この記事はMakuake Advent Calendar 2023の24日目の記事です。 概要 10年以上運用しているサービスのPHPとFuelPHPのアップデートを行ったプロジェクトのレポーティングをする。 アップデート対象 メインサービス(会社が運用する主要なサービス)のアプリケーション FuelPHP利用 メインサービスが利用している社内ライブラリ(2つ) PHP製 メインサービス...

PHP FuelPHP

Go1.22rcで変更されるServeMuxの仕様

アプリケーション

この記事はMakuake Advent Calendar 2023の19日目の記事です。 なんでこんな大遅刻かというと、唯一埋まっていなかった19日の枠を急遽埋めようと思って投稿したため。元々掴んでいた枠ではないので遅刻ではない。 概要 去年くらいからGoのnet/httpに含まれるServeMuxの機能拡張の提案が出ていてウォッチしていたのだが、最近Closedになったらしい。 cf. net/...

Golang

gRPCとProtocol Buffersについて復習するためのリンク集

アプリケーション

概要 gRPCとProtocol Buffersについて改めておさらいしておきたかった。 リンク gRPC grpc.io 公式ドキュメント zenn.dev - 作ってわかる! はじめてのgRPC まだ読んだことなかったので読んでみたのだが大変勉強になった。日本語情報はまずこれ読んでみると良いかも。 www.wantedly.com - gRPC Internal - gRPC の設計...

gRPC Protocol Buffers リンク集

モブプログラミングについて

ソフトウェア工学

最近モブプロを人生で初めて経験したので、その体験の良さを忘れないようにメモ書きしておく。 モブプログラミングとは 3人以上のメンバーで1台のコンピューターを共有してプログラミングする手法のこと。 通常コードを書くドライバーと、それを支えるナビゲーターの二手に分かれて作業をする。 Pros / Cons Pros ナレッジ共有がしやすい 同期的なフィードバックを得ることができる 認識を合わせやすい...

モブプログラミング アジャイル

OpenAPIを使ったスキーマ駆動開発

アプリケーション

OpenAPI Specificationとは 言語依存のない形でHTTP APIの仕様を定義するためのフォーマット。YAMLまたはJSONで記述する。 Swagger SpecificationはOpenAPI Specificationの前身である。 OpenAPIを採用するメリット・デメリット メリット REST APIの標準化されたフォーマットであり、開発者間のコミュニケーションコストを...

OpenAPI スキーマ駆動

Goのマルチモジュール構成でWorkspace modeを使ってみる

アプリケーション

Go1.18から追加されたWorkspace modeを使ったことがなかったので、使ってみた。 Workspace modeとは Goのマルチモジュール構成を便利するための機能。 Workspace modeの使い方 次のような構成を用意する。 . ├── bar │ └── bar.go └── foo └── foo.go // foo.go package foo func ...

Golang

世界一流エンジニアの思考法

ビジネス

世界一流エンジニアの思考法をちょっと前に読んだのでメモ。 この本で書かれていることはどこかで聞いたり学んだりしたことが多かったので個人的にはあまり目新しいことがなかったのだが、2つほど頭に留めておきたいことがあった。 1つはBelazyであれということ。より少ない時間で価値を最大化しようという考え。 これは一人でも実践できるマインドセットだが、周りの環境もBelazyであることがより大事かなと思っ...

思考法