初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイド
2025年10月26日初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイドを読んだ。 久しぶりに業務でGoを書く機会に恵まれたので、新しい情報のキャッチアップや復習を兼ねて読んだ。 この本は単なる入門書ではなく、Goの思想やイディオムを沢山紹介しており、Goという言語の理解を深めることができる。 他の入門書は拾わなさそうなことも拾われており、良書であった。 ...
初めてのGo言語 第2版 ―他言語プログラマーのためのイディオマティックGo実践ガイドを読んだ。 久しぶりに業務でGoを書く機会に恵まれたので、新しい情報のキャッチアップや復習を兼ねて読んだ。 この本は単なる入門書ではなく、Goの思想やイディオムを沢山紹介しており、Goという言語の理解を深めることができる。 他の入門書は拾わなさそうなことも拾われており、良書であった。 ...
はじめに 単体テストを書く際、テスト対象のコードが外部のデータベース、APIサーバー、ファイルシステムなどに依存していると、以下のような問題が発生する: テストの実行が遅い テスト環境の準備が複雑 テスト結果が不安定(ネットワークエラーなど) 特定の状態やエラーケースの再現が困難 これらの問題を解決するために使われるのがテストダブル(Test Double)である。 テストダブルとは、テストに...
クリーンコードクックブック ―コードの設計と品質を改善するためのレシピ集を読んでいて、インターフェースの実装よりも変更頻度が低いという主張が気になったので、言語化してみた。 インターフェースは「契約(contract)」であり「抽象」 インターフェース(interface)は、 「この機能はこう使える」という"契約"を表すものである。 一方で実装(implementatio...
はじめに シングルトンパターンは、デザインパターンの中でも最もよく知られ、広く使われているパターンの一つである。しかし、クリーンコードや保守性の観点から見ると、多くの問題を抱えている。 本記事では、シングルトンパターンの主要な問題点について、具体的なGoのコード例を交えながら解説する。 シングルトンパターンとは シングルトンパターンは、クラスのインスタンスが常に1つだけ存在することを保証するデザイ...
概要 Go言語は、軽量なgoroutineとランタイム機構により並行処理(concurrency)を強力にサポートし、Go 1.5以降はデフォルトでGOMAXPROCSが利用可能CPUコア数に設定されるため、適切に設定することでマルチコアを活かした並列実行(parallelism)も可能とする。本記事では、goroutineのスケジューリングやCPUバウンド処理でのマルチコア活用の仕組み、OSプロ...
以前、GoReleaserを使ってのGoのアプリケーションを配布するというタイトルの記事でGoReleaserを使ったバイナリ配布の方法について書いたが、Dockerhubへのイメージプッシュもやってみたのでまとめておく。 ソースコードの全体像はbmf-san/gondolaを参照。 .goreleaser.yamlを設定 ockers: - image_templates: - ...