#Golang
66 件の記事
Go言語に至るプログラミング言語の系譜
Algol 60からGo言語に至るプログラミング言語の系譜を、公式FAQや各言語の資料をもとに整理する記事である。ニクラウス・ヴィルトのPascalからOberonへ続く流れと、トニー・ホアのCSPからNewsqueak、Alef、Limboへと続く並行処理の流れが、いかにしてGoへ合流したのかを解説する。
Go言語を学ぶためのおすすめ本9選【入門から実践まで】
Go言語を体系的に学ぶための定番書を、入門から実践まで9冊まとめた。文法の入門、言語の深い理解、Web・システム・分散の実装の順に紹介し、各書の個別レビューへ移動できる。
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の思想やイディオムを数多く紹介し、言語への理解を深められる一冊。他の入門書が拾わない細部にも踏み込んでおり、他言語の経験者がGoらしい書き方(イディオマティックGo)を身につけるのに向いている。
継承より委譲について
継承より委譲が推奨される理由を解説。ダックタイピング・リスコフの置換原則(LSP)・Goのインターフェースを通じて、四角形と正方形の例から設計の落とし穴と委譲の利点を示します。
なぜインターフェースの方が実装より変更頻度が低いのか
『クリーンコードクックブック』を読んで気になった、「インターフェースは実装よりも変更頻度が低い」という主張を言語化した記事です。インターフェース(契約)と実装(手段)の役割の違いに着目し、外部に公開する契約は安定的に保ちつつ実装は自由に変える、という設計原則を解説します。
Singletonパターンはなぜアンチパターンなのか
シングルトンパターンはなぜアンチパターンだと言われるのかについて、具体的なGoのコード例を交えて解説する記事です。最もよく知られ広く使われるパターンの1つでありながら、クリーンコードや保守性の観点で抱える問題点を整理し、依存性の注入といった代替となる設計を紹介します。
TUI開発で役立つターミナル仕様の理解
TUI(Terminal User Interface)アプリケーションを開発する基盤となる、ターミナルの仕様について解説する記事です。既存ライブラリの裏でターミナルがどう動作しているのかに踏み込み、Line Disciplineやtermios、ANSIエスケープシーケンス、Raw Modeの動作原理を、Goでの実装を交えて紹介します。
テストダブル解説:モック・スタブ・フェイク・スパイの違い
単体テストにおいて、テスト対象が外部のデータベースやAPIサーバーなどに依存することで生じる問題を解決するテストダブルについて解説する記事です。モック・スタブ・フェイク・スパイ・ダミーそれぞれの違いと、ユニットテストでの適切な使い分けを学べる内容にまとめています。
Goでプロセス・goroutine・メモリを覗いてみた
Goを使って、プロセスのアドレス空間・goroutineの動作・スタックとヒープの挙動を軽く覗いてみた記録です。子プロセスとの仮想アドレス空間の違いやメモリ領域の独立性を、os/execなどを用いた実装例を通して確認します。
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メソッド指定・パスパラメータ・{$}ワイルドカードなどのルーティング拡張仕様を実装例で検証。