記事一覧
技術記事・日々の学びをまとめています。
Goのマルチモジュール構成でWorkspace modeを使ってみる
Go 1.18以降のWorkspace modeでマルチモジュール開発を簡単にする方法。go work init、go.workファイルの構成、go.modを編集せずにローカルモジュールを参照する手順を解説します。
最新記事
OpenAPIを使ったスキーマ駆動開発
OpenAPIを使ったスキーマ駆動開発について解説する記事です。OpenAPI Specificationとは、言語に依存しない形でHTTP APIの仕様を定義するためのフォーマットです。この仕様を起点に、REST APIの仕様定義やコード生成、モックサーバーの活用といったメリットを紹介します。
世界一流エンジニアの思考法
『世界一流エンジニアの思考法』の書評。一流のエンジニアに共通する思考法や姿勢を紹介する一冊。より少ない時間で価値を最大化する「Be Lazy」の考え方や、一度で理解しようとせず理解に時間をかける姿勢など、日々の働き方に取り入れたいマインドセットが語られる。
2023年の振り返りと来年の抱負
2023年の1年を振り返り、来年の抱負をまとめた記事。キャリア上のハイライトや個人での取り組み、読んだ本などを振り返りつつ、2024年に向けて設定した目標を綴る。
開発生産性についての記事漁り
開発生産性について調べた記事やリソースをまとめました。DORAのFour KeysやSPACEフレームワークを使った計測の考え方を紹介し、デプロイ頻度・変更のリードタイム・変更障害率・復元時間といった指標や、生産性を捉えるうえでの観点を整理します。
アーキテクチャ設計と組織設計についての記事漁り
ソフトウェアアーキテクチャと組織設計の関係について、読んだ記事やリソースをまとめた記事。コンウェイの法則が及ぼす影響などをテーマに、アーキテクチャと組織のあり方を考えるうえで参考になる情報を随時リストアップしていく。
Aurora Serverlessについて調べた
Amazon Aurora Serverlessに興味を持って調べた内容をまとめた記事。Aurora Serverless v2のマルチAZ対応やオートスケーリング、コスト最適化、導入時に検討したいポイントなどを、参考にした記事とともに整理する。
GrafanaでContact PointsとPoliciesをプロビジョニングするようにする
GrafanaのContact Pointsとアラートポリシーを、YAML設定ファイルでプロビジョニングしてSlack通知を自動化する方法を解説します。
ソフトウェア開発のプロジェクトにおける不確実性への向き合い方
ソフトウェア開発における不確実性への向き合い方を、アジャイルな計画づくりの観点から解説。既知の未知と未知の未知を区別し、リスクを抑える方法を紹介します。
モニタリングシステムにおけるPull型とPush型のアプローチの違い
モニタリングシステムにおけるPull型とPush型のアーキテクチャの違いを、それぞれのメリット・デメリットと代表的なツールとともに整理して解説します。
アーキテクチャ設計の進め方
構成図レベルでアーキテクチャを設計するときの、個人的に良いと思う進め方を1つ取り上げてまとめた記事。要件定義や調査がある程度済んだ前提で、構成図を書きながら段階的に設計を進めるアプローチを紹介し、思考の整理やチームの合意形成、過剰設計の防止につなげる。
GoReleaserを使ってのGoのアプリケーションを配布する
GoReleaserを使って、Goで書いたアプリケーションをクロスコンパイルし、バイナリとして配布する方法を解説した記事です。GoReleaserとはどのようなツールなのかを説明したうえで、実際に設定してリリースを行うまでの手順を紹介します。
ADRのテンプレートファイルを生成するコマンド
アーキテクチャ決定記録(ADR)のテンプレートファイルを生成するMakeコマンドの実装を紹介する記事。自動採番やステータス管理を備えたコマンドの中身を、実際のMakefileの記述とともにメモとして残す。
GraphQLとは?実例で学ぶ完全ガイド
GraphQL の完全入門ガイド。クエリ・ミューテーションの仕組み、REST との比較、実際に使い始めるための実践的なサンプルを解説します。
HTTP Routerの自作で参考にした資料
自作のHTTPルーター「goblin」の開発で参考にした、各種の資料や自分のブログ記事をまとめた記事です。radix木やトライ木といったデータ構造、ベンチマーク比較など、GoでHTTPルーターを自作する際に役立つ情報を、分散していたものを集約して紹介します。
サービスメッシュとは?IstioとLinkerdの仕組みを解説
サービスメッシュについて調べたことをまとめた記事です。分散システムにおけるサービス間の通信を管理するためのネットワークインフラであるサービスメッシュとは何かを、サイドカープロキシの仕組みや、IstioとLinkerdによるトラフィック管理・可観測性の実現方法とあわせて解説します。
CircleCIでphpunitの並列テストを行う
CircleCIでPHPUnitの並列テストを実行するアプローチを解説した記事。シェルスクリプトでテスト設定ファイルを動的に生成し、コンテナを分割してテストを並列化することで、実行時間を短縮する方法を具体的に紹介する。
slogを使ったContextual Logging
Go 1.21以降のlog/slogを使ったコンテキスト付き構造化ログを解説。カスタムslog.HandlerやcontextからのトレースID注入、JSON出力を紹介します。