Go言語の強力な機能の一つに、軽量なスレッドがあります。Goroutineを活用して、MySQLに対して複数のクエリを並列に実行することで、パフォーマンス向上を図りたいと考えたりもするかもしれません。
でも、並列クエリには注意が必要です。
ちゃなことで。この記事では、Goroutineを使って並列クエリを投げたくなるようなパターンと、その回避方法について詳しく解説します。特に、SQLのUN...
Go言語は、その設計哲学から「シンプルさ」や「明快さ」を重視しています。その一方で、Goコミュニティには公式思想からやや外れた「便利ツール」や「シンタックスシュガー的な関数」を提供するサードパーティライブラリが数多く存在します。その代表格の一つが、samber/lo ライブラリです。
lo、結構実務では使ってるんですが、簡単に言うと、Go標準にはないMapやFilterといった関数型プログ...
Go言語は2009年にリリースされて以降、「シンプルで明快」な設計哲学を貫いてきたことで知られています。C言語やJavaといった、多機能で柔軟性の高い言語から移行してくると、Goの最小主義的な設計には「そこ切り捨てちゃう?」という驚きがありますよね。
そんなGoでは、「あえて存在しない」ものがいくつかあります。そのうちの一つが「三項演算子」ですよね。三項演算子が大好きな私です。切ない別れです...
前回の記事で解説したように、Kubernetes(K8s)のクラスタ内ではPod間通信は主にDNSによって行われ、Service → Endpoints → Podという仕組みを通じてPodが入れ替わるたびにトラフィック先を動的に更新します。DNS TTLも短く設定され、Pod入れ替え時のDNSキャッシュ問題を最小化していることがポイントでした。
しかし、このメカニズムを前提にしたK...
Go言語プロジェクトでのセマンティックバージョニングの採用とそのメリット
はじめに
前回はGo言語プロジェクトでのChangelogの管理について、特にコンベンショナルコミットとの連携を中心に解説しました。今回はその続きとして、セマンティックバージョニングについて解説します。
セマンティックバージョニングとは
セマンティックバージョニングは、ソフトウェアのバージョンを明示的かつ一貫性を持って...
Go言語プロジェクトにおけるChangelogの効率的な管理
はじめに
前回の記事で「コンベンショナルコミット」について詳しく解説しました。今回はその前提として、特にGo言語のプロジェクトでどのようにChangelog(変更履歴)を効率よく管理できるのかについて探ります。
なぜChangelogが必要なのか
Changelogはプロジェクトの各リリースで何が変わったのかを一覧形式で示したドキ...