アプリケーション

モノレポについて

アプリケーション

概要 モノレポについてまとめる。 モノレポとは モノレポとは複数プロジェクトのコードを単一のレポジトリで管理したもの。対して複数のレポジトリで管理するものをポリレポ、またはマルチレポと呼ぶ。 マイクロサービスの管理方針の1つではあるものの、マイクロサービスを前提としたものではない。 モノリスとは同義ではない。 モノレポの観点 モノレポの運用における観点を整理してみた。 コードの自治 複数チームで運...

モノレポ

HTTP Routerの自作で参考にした資料

アプリケーション

goblinの開発で参考にした各種ソースや自分の記事をリストアップする。 いくつかの自分のブログ記事に参考リンクを貼ったりしていたせいで分散していたので集約した。 参考 HTTP Routerの開発で参考にした資料リスト。 GitHub jba/muxpatterns importcjj/trie-go julienschmidt/httprouter gorilla/mux gowww/rou...

router HTTP URLルーティング

再帰処理の苦手なところ

アプリケーション

再帰処理はプログラマーの嗜み!エレガントにかけて当たり前!・・・と自信を持って言いたいところだが、自分は正直なところ苦手である。 日頃再帰処理を書く機会といえばコーディングクイズくらいで実際のところあまり書く機会がない.. 再帰処理はケースによってはメモ化や末尾最適化までエレガントにやらないと計算量が大きくなったり、メモリを食うだけのコードになってしまうが、アルゴリズムによってはシンプルなコードに...

再帰

デプロイ戦略について

アプリケーション

概要 デプロイ戦略についてまとめる。 デプロイ・リリース・ロールバックの定義 デプロイ戦略の前提知識として言葉の定義を明確にしておく。 デプロイとは、「実行環境に実行可能なプログラムを配置すること」 リリースとは、「ユーザーがアクセスできる状態にすること」 ロールバックとは、「古いバージョンのリリースをリリースすること」 デプロイ戦略の種類 代表的と思われるものを取り上げる。 インプレースデプロイ...

デプロイ

PyroscopeでContinuous Profiling

アプリケーション

概要 PyroscopeというContinous Profilingのツールを導入してみた。 Continous Profilingについてはこちら参照。 What is continuous profiling? 今年に入ってからGrafanaが買収したらしい。 Grafana Labs が Pyroscope を買収してコード プロファイリング機能を追加 買収してからは、Grafana Pyr...

プロファイリング

DefaultServeMux以外でpprofを使う方法

アプリケーション

概要 net/http/pprofをDefaultServeMux以外(Goの標準のルーター以外)で使う方法についてメモ。 ハマりどころ pprofをblank importするだけではだめ。 package main import ( _ "net/http/pprof" ) DefaultServeMux以外のルーターを使う場合はblank importするだけ...

Golang

Goのhtml/templateでURLをエンコードさせない

アプリケーション

概要 html/templateを使っているときに、テンプレートに渡すURLをエンコードさせたくなかった。 template.URLを使う Goのhtml/templateを使って、URLをテンプレートに渡すとエンコードされてしまう仕様になっている。 cf. https://pkg.go.dev/html/template#hdr-Contexts セキュリティ上の理由でこのような仕様になっている...

Golang

buildxを使ったGoアプリケーションイメージのクロスコンパイル

アプリケーション

概要 プライベートで開発しているアプリケーションのイメージをクロスコンパイルする必要性に駆られて(ローカルの開発環境と本番の環境でアーキテクチャが異なっていることが起因)対応したのでメモ。 buildx Docker Desktopにはbuildxが標準で備わっているのでそちらを利用する。 Docker Buildx buildxを使うことでマルチアーキテクチャ対応のイメージを簡単に作ることができ...

Golang Docker

FuelPHPの2023年3月現在の現況

アプリケーション

概要 2023年3月現在のFuelPHPの現況についてざっくり調べたことをまとめる。 独自に調べた情報なので正確性には欠けるかもしれない。 PHPのフレームワークはLaravelが圧倒的に人気があるように感じるが、FuelPHPもまだ現役で使っている人がいるかもしれないので、何か一助になれば嬉しい。 FuelPHPバージョン情報 独自に調べたFuelPHPの情報をまとめる。 Version ...

FuelPHP

GoのHTTP Routerを比較するベンチマーカーを実装した

アプリケーション

Makuake Advent Calendar 2022の5日目の記事です! 概要 GoのHTTP Routerのパフォーマンスを比較するためのベンチマーカーを実装した。 bmf-san/go-router-benchmark 現在のところ以下のHTTP Routerを比較対象としている。 bmf-san/goblin julienschmidt/httprouter go-chi/chi gi...

Golang