CircleCIでphpunitの並列テストを行う
2023年10月21日概要 CircleCIでphpunitの並列テストを行うアプローチについてかく。 PHPUnitの設定ファイルを生成するスクリプトを用意する #!/bin/sh basePath="/foo/bar" testFiles=$@ xmlFileStringData="" for file in $testFiles; do xmlFileStrin...
概要 CircleCIでphpunitの並列テストを行うアプローチについてかく。 PHPUnitの設定ファイルを生成するスクリプトを用意する #!/bin/sh basePath="/foo/bar" testFiles=$@ xmlFileStringData="" for file in $testFiles; do xmlFileStrin...
概要 Goでlog/slogを使ったcontextual loggingについてまとめる。 log/slogとは Go1.21で追加された構造化ロギングのためのパッケージ。 構造化ロギングとは、ログを構造化されたデータとして出力すること。 今まではGoで構造化ロギングをする場合はサードパーティのパッケージを利用するか、自前でスクラッチするかしか手段がなかったが、今後は標準パッケージも視野に入るよう...
More Effective Agileを読んだ。 アジャイルを実践するためのプラクティスがまとめられた本。 アジャイルワークショップの教科書として活用させてもらった。 ...
概要 モジュラモノリスについて調べたことをメモする。 モジュラモノリスとは モジュール分割をしたモノリス モジュール分割はドメインによる分割が一般的に見えるが、機能分割や技術分割など様々なパターンを検討することができる モノリスと同じく単一のデプロイメントパイプラインを持つ メリット モジュールが分割されているのでモジュール単位で開発を独立して行うことができる マイクロサービスへの移行が容易...
概要 CQRSについて調べたことをメモ。 CQRSとは Command Query Responsibility Segregation CommandとQueryに責務分離するパターン Command データの更新を行う データではなくタスクにフォーカスしたコマンドを設計 DDDのドメインモデルを内包することが想定されている Query データの参照を行う ユースケースごとに最適化されたオ...
概要 Sagaパターンについて調べたことをメモ。 Sagaパターンとは マイクロサービスにおいては、分散トランザクション(2phase commitなど)は推奨されていない 分散トランザクションを避け、整合性を担保するパターンとしてSagaパターンがある 長時間のロックを避け、結果整合性を利用する 補償トランザクション 一連のトランザクションの取り消しを行う操作 Sagaパターンでは単純なロ...
概要 Goのresponse.WriteHeaderの副作用についてメモする。 superfluous response.WriteHeader 以下は愚直な例だが、次のようにWriteHeaderを複数回呼ぶと、http: superfluous response.WriteHeader call from main.handlerというエラーが出る。 package main import ...
以前からウォッチしていたnet/http: enhanced ServeMux routing #61410がAcceptedになったので、それについてポエムをかく。 最終的な仕様がどうなるかはわからないが、静的なルーティングの機能(/foo/barのような固定値のルーティング)しか持っていないServeMuxに動的なルーティング(/foo/:idのようなパスパラメータを使ったルーティング)の機能...
概要 BFFについて調べたことをまとめる。 BFFとは Backends For Frontendsの略。Best Friends Forever(ズッ友だよ)ではない。 名前の通り、フロントエンドのためのバックエンドサーバーのことで、フロントエンドのためのAPIやHTMLをレスポンスするなどUI・UXのための役割を担っている。 クライアント(サーバーの呼び出し側)の多様性に応えるのが難し...
概要 通知基盤の構築に関してざっくりと考えたことや調べたことなどをまとめておく。 通知基盤とは ユーザーに通知(メール・プッシュ・SMS・音声など)を行うためのシステム基盤。 クライアント(通知を依頼するシステム)からリクエストを受けて、送信先・送信内容など通知に関する処理を担うシステム。 通知基盤の設計・実装における観点 考えることが一杯ありそうだと思ったので、思いついた順で雑に書いた。整理でき...