#Golang
64 件の記事
sqlcとは?Goで型安全なSQLを実現する実践入門
sqlc とは何か、SQL から型安全な Go コードを生成する仕組みを、SQLite を使ったハンズオンで解説します。スキーマとクエリからコードを生成する流れ、メリットやハマりどころまで簡単に理解できます。
gogocoin — セルフホスティング暗号資産の自動取引ボットの紹介
Go製セルフホスティング型ビットコイン自動取引ボット「gogocoin」の詳細解説。プラガブル戦略アーキテクチャ、レイヤー構成と依存ルール、取引フロー・データモデル・残高キャッシュの詳解。
gohan — インクリメンタルビルド対応のGo製静的サイトジェネレータの紹介
SHA-256マニフェストによる差分ビルド、i18n、Mermaid図、OGP、シンタックスハイライト、コンパイル済プラグインシステム(Amazon本カード、本棚ページ)を備えたGo製静的サイトジェネレータ『gohan』の紹介。
bmf-tech.comの gobel → gohan 移行記—完全静的サイト化の流れ
自作ヘッドレスCMS(gobel)+ MySQL + Vue.js構成から、gohanによる完全静的サイトへ移行しCloudflare Pagesでホスティングするまでの全工程。700件超の記事、英語スラッグ生成、画像移行、リダイレクト、Go製プリフライトチェッカーまで。
初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
継承より委譲について
継承より委譲が推奨される理由を解説。ダックタイピング・リスコフの置換原則(LSP)・Goのインターフェースを通じて、四角形と正方形の例から設計の落とし穴と委譲の利点を示します。
なぜインターフェースの方が実装より変更頻度が低いのか
インターフェース(契約)と実装(手段)の役割を区別し、外部公開される契約は安定的に保ち実装は自由に変える設計原則を解説。
Singletonパターンはなぜアンチパターンなのか
Singletonパターンはなぜアンチパターンなのかについて、設計原則とトレードオフ、実践的な適用方法を詳しく解説します。
TUI開発で役立つターミナル仕様の理解
TUI開発の基盤となるターミナル仕様、Line Discipline・termios・ANSIエスケープシーケンスの動作原理とGo実装
テストダブル解説:モック・スタブ・フェイク・スパイの違い
テストダブルを解説。モック・スタブ・フェイク・スパイ・ダミーそれぞれの違いと、ユニットテストでの適切な使い分けを学べます。
Goでプロセス・goroutine・メモリを覗いてみた
Goのプロセス・goroutine・メモリを解析し、仮想アドレス空間・ヒープ・スタック領域の独立性を確認する手法を実装例を通して解説。
Go製Git操作ツール『ggc』の紹介
ggcの全機能解説。CLI/インタラクティブ分離アーキテクチャ、Fuzzyサーチエンジンの実装、Workflow Mode内部構造、カスタマイズ可能なエイリアス、階層型キーバインドプロファイルシステム。
Goの並行・並列処理モデル|goroutineスケジューリング
Goの並行処理と並列処理の違いを解説。goroutineのスケジューリング、GOMAXPROCS、GMPモデル、OSスレッドとの関係、プリエンプションの仕組みをシーケンス図つきで紹介します。
GoReleaserを使ってDocker Imageをbuild&pushする
GoReleaserとGitHub Actionsを使い、複数プラットフォーム向けのDockerイメージのbuild&pushを自動化する方法を解説します。
自作HTTPルーターから新しいServeMuxへ
自作HTTPルーターgoblinからGo 1.22で強化されたnet/http ServeMuxへ移行。新しいルーティングパターンや他ルーターとの性能比較、ServeMuxで十分なケースを解説します。
Goのrune型について
rune型がint32のエイリアスでUnicodeコードポイントを表現することを解説し、string型とのループ挙動の違いやマルチバイト文字処理を詳述。
Goでオレオレ証明書がほしいときの一手
Go標準のgenerate_cert.goを使い、opensslやmkcertなしでローカルHTTPS用の自己署名証明書(cert.pem/key.pem)をワンコマンドで生成する方法を解説します。
Go1.22rcで変更されるServeMuxの仕様
Go1.22のServeMuxで導入されたHTTPメソッド指定・パスパラメータ・{$}ワイルドカードなどのルーティング拡張仕様を実装例で検証。
Goのマルチモジュール構成でWorkspace modeを使ってみる
Go 1.18以降のWorkspace modeでマルチモジュール開発を簡単にする方法。go work init、go.workファイルの構成、go.modを編集せずにローカルモジュールを参照する手順を解説します。
GoReleaserを使ってのGoのアプリケーションを配布する
GoReleaserを使ってGoアプリケーションをクロスコンパイルし、バイナリを配布する方法を解説します。