アプリケーション
223 件の記事
FuelPHPの2023年3月現在の現況
2023年3月時点でのFuelPHPの現況について、独自に調べた範囲でざっくりまとめた記事です。開発やリリースの動向、コミュニティの状況などを整理します。Laravelが主流のなかで、FuelPHPを使い続けている人に向けた覚え書きです。
Goを学びなおす
何年かGoを触ってきたものの、このタイミングで改めて学び直すと効果的ではないかと考え、言語仕様やジェネリクスの実装、Go 1.18以降の新機能などをひと通り見直してコーディング力を鍛えなおした記録です。その際に参考にした記事もあわせて紹介します。
GoのHTTP Routerを比較するベンチマーカーを実装した
GoのHTTP Routerのパフォーマンスを比較するために、ベンチマーカーを実装した記事です。静的なルートやパスパラメータを含むルートなど、複数のテストケースを設計し、さまざまなGo製ルーターのパフォーマンスの差分を計測・比較します。
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
『Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る』の書評。Goの標準ライブラリだけを使い、ゼロからWebアプリケーションをつくる実践的な方法を学べる一冊。フレームワークに頼らず、HTTPやテンプレートなどの仕組みを手を動かして理解できる。
homebrewで過去バージョンをインストールする
Homebrewでインストールするパッケージについて、過去のバージョンを指定してインストール・ダウングレードする方法を解説した記事です。Homebrewが最新版のみを保持する方針になったことで必要になったひと手間を、vimを例にとって具体的に紹介します。
Cloud Functionsを使ってSlack AppのSlash Commandを実装
Google Cloud FunctionsでSlack Slash Commandを実装。サーバーレス、低コスト、Signing Secret認証、Cloud Buildでデプロイするボット実装ガイドを紹介します。
SLI・SLO・SLAを解説:エンジニアのための実践ガイド
SLI・SLO・SLAについて調べたことをまとめた記事です。これらがサービスレベル(Service Level)に関わる指標・目標・合意であることを整理したうえで、それぞれの意味と違いや、エラーバジェットの考え方、信頼性の目標を実際の運用に組み込むための実践的なガイドを解説します。
GoでClean Architectureのレイヤーを静的解析する
GoでClean Architectureのレイヤー間の依存関係を静的解析で検証する方法についてのメモです。自作せずに手軽に導入できるgo-cleanarchというツールを使い、依存の方向がアーキテクチャのルールに沿っているかをチェックする手順を紹介します。
スクラムマスター vs プロダクトオーナー:役割と責任の比較
認定スクラムマスターの研修を受けたことをきっかけに、スクラムマスターとプロダクトオーナーの役割・責任の違いを改めて整理した記事です。それぞれがスクラムチームに対して何をもたらす存在なのかを、スクラムの文脈に沿って比較しながら解説します。
マークダウン形式のファイルをPDFファイルに変換する(mermaid・emoji・toc対応)
マークダウン形式のファイルをPDFへ変換する仕組みを紹介。mermaid・emoji・目次(toc)に対応したシンプルなドキュメント管理ツールです。
PHP7.4からPHP8.1までの新機能をキャッチアップ
PHPの知識が7.3で止まっていたため、8.1までに追加された新機能を駆け足でキャッチアップした記事です。型付きプロパティやアロー関数、Union型、match式、Attributes(アトリビュート)など、各バージョンで導入された主要な新機能を実例とともに整理します。
Golangでロードバランサーを実装する
ラウンドロビンで負荷分散するL4ロードバランサーをGoで一から自作してみた記事です。httputilを使ったリバースプロキシの仕組みや、ラウンドロビンによるスケジューリング、アクティブ・パッシブなヘルスチェックの実装を、構築例を通して解説します。
net/httpでつくるHTTPルーター自作入門
Golangのnet/httpでHTTPルーター自作を解説。ルートマップ、URLパス解析、メソッド別ルーティング、パスパラメータの仕組みをステップバイステップで実装ガイドします。
textlintとreviewdogを使ってCircleCIでテキスト校正する
長文を執筆する際にテキスト校正を自動化したいと考え、textlintとreviewdogを使ってCircleCI上で校正を自動化した方法を解説する記事です。GitHubで管理しているテキストに対し、CI上でtextlintを実行し、その指摘をreviewdogでプルリクエストにフィードバックする構成を紹介します。
OAuth2、OIDCのキャッチアップのための資料
OAuth2、OIDC、JWTといった認証・認可の標準仕様をキャッチアップするために読み漁った資料をまとめた記事です。OpenID Connect Coreなどの仕様書をはじめ、書籍や実装ガイドまで、これらの技術を理解するうえで参考になったリソースを紹介します。
Gitでコミットを分割する方法
Gitでコミットを分割する方法についてのメモです。git rebase -iやreset、addといったコマンドを組み合わせて、1つにまとまったコミットをより細かい粒度に分割し、レビュアーが読みやすい形に提案を整形するための手法を、実際のコマンド例とともに紹介します。
GolangのHTTPサーバーのコードリーディング
goblinルーター開発時に調査したGoのHTTPサーバー内部実装を解説。http.Server構造体、ServeMux、Handler登録フロー、goroutineによるコネクション処理を実装コードから読み解く。
自作ルーティングをアップデートした
自作のGo製HTTPルーター「goblin」をアップデートした際の記録をまとめた記事です。新たに追加したミドルウェアへの対応や、内部実装の最適化について、パフォーマンスのベンチマーク結果とともに紹介し、これまでのルーティング関連の記事の続きとして書き残します。
Gitでcommitを分割する方法|rebase -iで履歴整理
1つにまとまってしまったコミットを分割したいときの手順を、Gitのインタラクティブなrebase(rebase -i)を使って解説します。対象コミットをeditに指定して粒度を調整し、force pushで反映するまでの一連の流れをメモとして残します。
golang-migrateを使ってspannerのDBマイグレーションをする
golang-migrateとGoogle Spannerを使い、Dockerとgcp認証管理のもとでDBマイグレーションを実行する方法を解説します。