記事

アーキテクチャ設計の進め方

システムアーキテクチャ

概要 構成図レベルでのアーキテクチャの設計をする時の進め方として個人的に良いと思ったやり方を1つ取り上げてまとめておく。 進め方 事前に要件定義や調査がある程度済んでいるという状態を前提として、アーキテクチャの構成図を書きながら設計を進めていく作業の取り組み方法について書く。 といってとても単純で、「最初からゴールの絵を描こうとせずに、段階を踏んで設計する」というだけである。  上図のように...

アーキテクチャ 設計

GoReleaserを使ってのGoのアプリケーションを配布する

アプリケーション

GoReleaserを使ってGoのアプリケーションをクロスコンパイルしてバイナリ配布をやってみた。 GoReleaserとは GoReleaserは、Go言語で書かれたアプリケーションのビルド、パッケージング、およびリリースを自動化するツール。 クロスコンパイル、バイナリの圧縮、アーカイブの作成、GitHubなどのプラットフォームへのアーティファクトのアップロードができる。 GitHub Acti...

Golang GitHub Actions

GraphQLについて

アプリケーション

概要 GraphQLの素振りをしていたので調べたことについてまとめておく。 親切なチュートリアルが用意されており、始めやすい。 cf. www.howtographql.com GraphQLとは Meta社によって開発されたWeb API開発のためのクエリ言語。 GraphQLはGraphQL Foundationによって管理されており、Meta社はその一員である。 GraphQLの仕様と全ての...

GraphQL

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

アプリケーション

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

router HTTP URLルーティング リンク集

サービスメッシュについて

インフラストラクチャ

概要 サービスメッシュについて調べたことをまとめる。 サービスメッシュとは サービス間(分散システム)の通信を管理するためのネットワークインフラストラクチャのこと。 一般的にはサービスにプロキシをサイドカーとして追加することで構成する。 サービスメッシュが解決すること 可観測性の向上 サービス間の通信の管理・制御 サービス間の通信のセキュリティ向上 サービスメッシュの機能 サービスディスカバ...

サービスメッシュ

slogを使ったContextual Logging

アプリケーション

概要 Goでlog/slogを使ったcontextual loggingについてまとめる。 log/slogとは Go1.21で追加された構造化ロギングのためのパッケージ。 構造化ロギングとは、ログを構造化されたデータとして出力すること。 今まではGoで構造化ロギングをする場合はサードパーティのパッケージを利用するか、自前でスクラッチするかしか手段がなかったが、今後は標準パッケージも視野に入るよう...

slog contextual logging

モジュラモノリスについて調べたことをメモ

システムアーキテクチャ

概要 モジュラモノリスについて調べたことをメモする。 モジュラモノリスとは モジュール分割をしたモノリス モジュール分割はドメインによる分割が一般的に見えるが、機能分割や技術分割など様々なパターンを検討することができる モノリスと同じく単一のデプロイメントパイプラインを持つ メリット モジュールが分割されているのでモジュール単位で開発を独立して行うことができる マイクロサービスへの移行が容易...

モジュラモノリス

CQRSについて調べたことをメモ

システムアーキテクチャ

概要 CQRSについて調べたことをメモ。 CQRSとは Command Query Responsibility Segregation CommandとQueryに責務分離するパターン Command データの更新を行う データではなくタスクにフォーカスしたコマンドを設計 DDDのドメインモデルを内包することが想定されている Query データの参照を行う ユースケースごとに最適化されたオ...

CQRS マイクロサービス