記事一覧

技術記事・日々の学びをまとめています。

アーキテクチャ設計の進め方
アーキテクチャ 2023-11-23

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

アーキテクチャ設計の進め方について、設計原則とトレードオフ、実践的な適用方法を詳しく解説します。

#アーキテクチャ#設計

最新記事

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

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

GoReleaserを使ってGoアプリケーションをクロスコンパイルし、バイナリを配布する方法を解説します。

#Golang#GitHub Actions
ADRのテンプレートファイルを生成するコマンド
アプリケーション 2023-11-10

ADRのテンプレートファイルを生成するコマンド

アーキテクチャ決定記録(ADR)のテンプレートを、自動採番やステータス管理つきで生成するMakeコマンドの実装を解説します。

#Architecture Decision Record
GraphQLとは?実例で学ぶ完全ガイド
アプリケーション 2023-11-09

GraphQLとは?実例で学ぶ完全ガイド

GraphQL の完全入門ガイド。クエリ・ミューテーションの仕組み、REST との比較、実際に使い始めるための実践的なサンプルを解説します。

#GraphQL
HTTP Routerの自作で参考にした資料
アプリケーション 2023-10-30

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

Goでのradix木やトライ木、ベンチマーク比較など、HTTPルーターを自作する際に参考になる資料を紹介します。

#router#HTTP#URLルーティング#リンク集
サービスメッシュとは?IstioとLinkerdの仕組みを解説
インフラストラクチャ 2023-10-29

サービスメッシュとは?IstioとLinkerdの仕組みを解説

サービスメッシュとは何か、Istio と Linkerd の仕組み・サイドカープロキシ・トラフィック管理・可観測性の実現方法を解説します。

#サービスメッシュ
CircleCIでphpunitの並列テストを行う
テスト 2023-10-21

CircleCIでphpunitの並列テストを行う

CircleCIでシェルスクリプトを使って設定を動的生成し、コンテナを分割してPHPUnitの並列テストを実行する方法を解説します。

#CircleCI#phpunit
slogを使ったContextual Logging
アプリケーション 2023-10-08

slogを使ったContextual Logging

Go 1.21以降のlog/slogを使ったコンテキスト付き構造化ログを解説。カスタムslog.HandlerやcontextからのトレースID注入、JSON出力を紹介します。

#slog#contextual logging
More Effective Agile
開発プロセス 2023-10-01

More Effective Agile

More Effective Agile

#アジャイル#書評
モジュラモノリスアーキテクチャ:マイクロサービスとの比較と選び方
アーキテクチャ 2023-09-25

モジュラモノリスアーキテクチャ:マイクロサービスとの比較と選び方

モジュラモノリスアーキテクチャとは何か、マイクロサービスとの比較、どんな場面で選択すべきかを実践的な観点で解説します。

#モジュラモノリス
CQRSとは?コマンドクエリ責務分離を使うべき場面
アーキテクチャ 2023-09-18

CQRSとは?コマンドクエリ責務分離を使うべき場面

CQRS(コマンドクエリ責務分離)とは何か、CRUD との違い、スケーラビリティ改善につながる場面と適用すべきでない場面を解説します。

#CQRS#マイクロサービス
Sagaパターンとは?マイクロサービスでの分散トランザクション管理
アーキテクチャ 2023-09-17

Sagaパターンとは?マイクロサービスでの分散トランザクション管理

Saga パターンとは何か、マイクロサービスにおける分散トランザクション管理の方法(コレオグラフィ型・オーケストレーション型)を解説します。

#マイクロサービス#Sagaパターン#TCCパターン#分散トランザクション#2phase commit
Goのresponse.WriteHeaderの副作用について
アプリケーション 2023-09-11

Goのresponse.WriteHeaderの副作用について

response.WriteHeaderの複数回呼び出しによる副作用を解析し、bytes.Bufferを使った回避方法とtemplateのExecute処理の実装パターンを提示。

#Golang#Tips
GoでServeMuxの機能拡張を提案するProposalがAcceptedになった
アプリケーション 2023-08-31

GoでServeMuxの機能拡張を提案するProposalがAcceptedになった

Goのnet/http ServeMuxに動的ルーティングとパスパラメータを追加するProposalがAcceptedに。goblinなどサードパーティルーターやGoのルーティングの今後への意味を解説します。

#Golang#router#HTTP
BFF(Backend For Frontend)とは?メリットと実装ガイド
アーキテクチャ 2023-08-29

BFF(Backend For Frontend)とは?メリットと実装ガイド

BFF(Backend For Frontend)とは何か、なぜ必要か、フロントエンドとバックエンドの間に BFF レイヤーを置くことで API 契約を簡素化する実装方法を解説します。

#BFF
通知基盤構築についてのメモ書き
アーキテクチャ 2023-08-28

通知基盤構築についてのメモ書き

構築する通知基盤。マルチチャネル対応、メッセージング、テンプレート管理、オプトイン制御、外部連携、スケーラビリティ設計要素

#通知
Go言語100Tips 開発者にありがちな間違いへの対処法
アプリケーション 2023-08-27

Go言語100Tips 開発者にありがちな間違いへの対処法

Go言語100Tips 開発者にありがちな間違いへの対処法

#Golang#書評
Goのhttp.RoundTripperについて
アプリケーション 2023-08-22

Goのhttp.RoundTripperについて

http.RoundTripperインターフェースを実装してHTTPクライアント側のミドルウェア的処理を実装し、ログ・認証・キャッシュ・リトライの例を示す。

#Golang
Goでfan-in/fan-outを実装する|並行処理パターン
アプリケーション 2023-08-21

Goでfan-in/fan-outを実装する|並行処理パターン

Goのchannelとgoroutineを活用したfan-in/fan-outパターンを実装し、複数入力を集約・分散する並行処理設計を解説。

#fan-in#fan-out
Template MethodパターンとStarategyパターンについて
アプリケーション 2023-08-20

Template MethodパターンとStarategyパターンについて

GoF行動パターンTemplate MethodとStrategyの違い、大枠処理の継承と戦略切り替えパターンの実装と使い分け

#Strategy#Template Method