アプリケーション
223 件の記事
goのspannerクライアントのReadOnlyTransactionでハマった
GoのCloud Spannerクライアントで、ReadOnlyTransactionのtx.Close()漏れによるセッションプール枯渇を解消。トランザクションのライフサイクル管理とzaganeによる検出方法を解説します。
認証・認可の基本
認証・認可の基本を再確認するためにまとめた記事。認証サービスの開発に携わるなかで、識別やRBAC・ABAC、資格情報の種類、シングルサインオン、SAML 2.0、OAuth 2.0、OpenID Connectといった基礎を、実務の文脈をふまえて整理する。
Golangでインメモリなキャッシュを実装する
軽量でシンプルなインメモリキャッシュがあれば十分だったため、Goで期限付きキャッシュを自前で実装してみた記録です。要件の整理から、sync.Mapを使った同時参照時の安全性の確保、期限切れデータのメモリ破棄の仕組みまでを設計・検証します。
Go CodeReviewCommentsのまとめ
Go公式のCodeReviewCommentsからコードレビューのベストプラクティスを厳選し、レシーバー型・エラーハンドリング・メモリ効率について解説。
JWTとは?安全なAPI認証のためのJSON Web Token解説
JWT(JSON Web Token)とは何か、署名の仕組み・クレームの構造・API 認証を安全に実装するためのベストプラクティスを解説します。
gRPCとは?GoによるgRPCの実践入門
GoでgRPCに入門するための実践的なガイドです。gRPCとは何か、その前提となるHTTP/2やProtocol Buffersといった技術、サービス定義やストリーミングの仕組みを説明し、GoでgRPCのサーバーとクライアントを実装する手順を解説します。
Golang×chromedp×slack botでslackの絵文字自動生成ボットをつくってみた
Goとchromedpでcanvasのスクリーンショットを撮り、Slack APIと連携してSlack絵文字を自動生成するボットを作った話を解説します。
vscodeでgoのLanguage Serverを有効にしたらコード定義元ジャンプができなくなった
VSCodeでgoのLanguage Server(gopls)を有効にしたらコード定義元ジャンプができなくなった問題の原因と、go.modの配置を見直して解決する方法を解説します。
PHPでUMLを自動生成してくれるツールーphUML
クラス設計の全体像を把握するために、UMLを自動生成できるツールとしてphUMLを使い、PHPのクラス図を生成する方法を解説する記事です。PhpStormのような標準機能がないエディタでも、設計構造を可視化して複雑なコードベースの理解に役立てられるように紹介します。
GolangでgoblinというURLルーターを自作した
GoでURLルーターを自作した際の実装過程をまとめた記事です。トライ木というデータ構造を用いて、パスパラメータや正規表現によるマッチングに対応した高性能なURLルーター「goblin」を、設計の検討から実装まで順を追って解説します。
URLルーティング自作入門 エピソード2
「URLルーティング自作入門」シリーズのエピソード2です。エピソード1に続き、URLルーティングをトライ木を使って実装していきます。パスのマッチング処理や、HTTPメソッドに対応した動的なルーティングの構造について、図解を交えながら実装を進めていきます。
URLルーティング自作入門 エピソード1
「URLルーティング自作入門」シリーズのエピソード1です。趣味でURLルーティングを自作してきた経験から、自作の敷居や応用範囲について触れつつ、ルーティングに使う木構造のアルゴリズムや、各種Webフレームワークの参考実装を探索していくモチベーションを紹介します。
GolangのHTTPサーバーのコードリーディング (Go6 Advent Calendar 2019)
Qiita Go6 Advent Calendar 2019向けにGolangのHTTPサーバー内部実装をコードリーディング。net/httpパッケージのListenAndServe、ServeMux、Handlerインターフェースの動作を詳細に解析。
FuelPHP1.8.0→1.8.2、PHP5.6→PHP7.3へのバージョンアップした
FuelPHP 1.8.0から1.8.2、PHP 5.6から7.3へアプリケーションをバージョンアップした際の作業内容と対応ポイントをまとめます。
Goでクリーンアーキテクチャを実装する実践ガイド
Go でクリーンアーキテクチャを実践する方法を解説。レイヤー分離・依存ルール・ディレクトリ構成・実際のトレードオフを具体的なコードで学べます。
execコマンドによるリダイレクト
シェルのexecコマンドを引数なしで使うことで実現できる、ファイルディスクリプタの動的なリダイレクトについて解説します。標準入出力の切り替えやログ出力の制御、端末操作の仕組みを、具体的な使い方の例を交えて紹介します。
master直プッシュの際にプロンプトで確認するようにする
gitでmasterブランチへ誤って直接pushしてしまうのを未然に防ぐため、pushの前にプロンプトで確認を挿むセーフティネットの作り方を解説します。GitHub側の設定で禁止する方法もありますが、運用上の都合でそれが難しいケースを想定し、Gitのhooksを使って実現します。
PHPで学ぶデザインパターン - Stateパターン
「PHPで学ぶデザインパターン Advent Calendar 2018」の記事の1つで、Stateパターンを取り上げます。状態ごとの処理をそれぞれ別のクラスにカプセル化することで、状態に応じた振る舞いの切り替えを条件分岐に頼らず実現するこのパターンの仕組みと、PHPでの実装方法を解説します。
ゴリラで学ぶソフトウェアの法則10選
パーキンソンの法則、ブルックスの法則、コンウェイの法則など、プロジェクト管理やソフトウェア開発の現場で役立つ法則10選を、ゴリラのイラストとともに楽しく学べる記事です。以前書いたソフトウェア開発の法則の記事をベースに、代表的なものを整理して紹介します。
Realizeを使ってgoでホットリロードを実現するメモ
GoでソースコードのホットリロードをRealizeというツールで実現するためのメモです。go getでの導入から、.realize.yamlによる設定、監視サーバーの起動までの手順を紹介し、コードの変更を検知して自動でビルド・再起動させることで開発効率を高める方法を解説します。