#Golang

66 件の記事

GolangのHTTPサーバーのコードリーディング
アプリケーション 2021-06-30

GolangのHTTPサーバーのコードリーディング

goblinルーター開発時に調査したGoのHTTPサーバー内部実装を解説。http.Server構造体、ServeMux、Handler登録フロー、goroutineによるコネクション処理を実装コードから読み解く。

#Golang#コードリーディング
自作ルーティングをアップデートした
アプリケーション 2021-06-18

自作ルーティングをアップデートした

自作のGo製HTTPルーター「goblin」をアップデートした際の記録をまとめた記事です。新たに追加したミドルウェアへの対応や、内部実装の最適化について、パフォーマンスのベンチマーク結果とともに紹介し、これまでのルーティング関連の記事の続きとして書き残します。

#Golang#OSS#router
golang-migrateを使ってspannerのDBマイグレーションをする
アプリケーション 2021-03-17

golang-migrateを使ってspannerのDBマイグレーションをする

golang-migrateとGoogle Spannerを使い、Dockerとgcp認証管理のもとでDBマイグレーションを実行する方法を解説します。

#Google Cloud Platform#Golang#Spanner
Golangでインメモリなキャッシュを実装する
アプリケーション 2020-09-29

Golangでインメモリなキャッシュを実装する

軽量でシンプルなインメモリキャッシュがあれば十分だったため、Goで期限付きキャッシュを自前で実装してみた記録です。要件の整理から、sync.Mapを使った同時参照時の安全性の確保、期限切れデータのメモリ破棄の仕組みまでを設計・検証します。

#Golang#キャッシュ
Go CodeReviewCommentsのまとめ
アプリケーション 2020-09-15

Go CodeReviewCommentsのまとめ

Go公式のCodeReviewCommentsからコードレビューのベストプラクティスを厳選し、レシーバー型・エラーハンドリング・メモリ効率について解説。

#Golang#コードレビュー
gRPCとは?GoによるgRPCの実践入門
アプリケーション 2020-09-08

gRPCとは?GoによるgRPCの実践入門

GoでgRPCに入門するための実践的なガイドです。gRPCとは何か、その前提となるHTTP/2やProtocol Buffersといった技術、サービス定義やストリーミングの仕組みを説明し、GoでgRPCのサーバーとクライアントを実装する手順を解説します。

#Golang#gRPC#マイクロサービス#HTTP/2#RPC
Golang×chromedp×slack botでslackの絵文字自動生成ボットをつくってみた
アプリケーション 2020-08-11

Golang×chromedp×slack botでslackの絵文字自動生成ボットをつくってみた

Goとchromedpでcanvasのスクリーンショットを撮り、Slack APIと連携してSlack絵文字を自動生成するボットを作った話を解説します。

#Golang#Slack#chrome#chromedp#Emoji#Slack Bot
vscodeでgoのLanguage Serverを有効にしたらコード定義元ジャンプができなくなった
アプリケーション 2020-07-19

vscodeでgoのLanguage Serverを有効にしたらコード定義元ジャンプができなくなった

VSCodeでgoのLanguage Server(gopls)を有効にしたらコード定義元ジャンプができなくなった問題の原因と、go.modの配置を見直して解決する方法を解説します。

#Golang#gocode#gopls#Language Server#vscode#Tips
VPS×Docker Compose×Docker Machine×Golang×Nginx×Let's Encryptでの本番運用
ポエム 2020-06-07

VPS×Docker Compose×Docker Machine×Golang×Nginx×Let's Encryptでの本番運用

「VPS×Docker Compose×Docker Machine×Golang×Nginx×Let's Encryptでの本番運用」のまとめと読書メモ。重要なポイントと実践的な知見を整理します。

#Docker#Docker Compose#Golang#Let's Encrypt#Nginx#Docker Machine#VPS
GolangでgoblinというURLルーターを自作した
アプリケーション 2020-01-26

GolangでgoblinというURLルーターを自作した

GoでURLルーターを自作した際の実装過程をまとめた記事です。トライ木というデータ構造を用いて、パスパラメータや正規表現によるマッチングに対応した高性能なURLルーター「goblin」を、設計の検討から実装まで順を追って解説します。

#Golang#URLルーティング#router
GolangのHTTPサーバーのコードリーディング (Go6 Advent Calendar 2019)
アプリケーション 2019-11-03

GolangのHTTPサーバーのコードリーディング (Go6 Advent Calendar 2019)

Qiita Go6 Advent Calendar 2019向けにGolangのHTTPサーバー内部実装をコードリーディング。net/httpパッケージのListenAndServe、ServeMux、Handlerインターフェースの動作を詳細に解析。

#Golang#コードリーディング#router
Golangでトライ木(Trie)を実装する|前方一致検索
アルゴリズムとデータ構造 2019-09-24

Golangでトライ木(Trie)を実装する|前方一致検索

トライ木(プレフィックス木)というデータ構造のアルゴリズムと、そのGoでの実装についてまとめた記事です。O(m)で検索・挿入ができる特徴や、HTTPルーティングなどへの応用、Radix Treeとの使い分けについて、挿入・検索の実装例を交えて解説します。

#Golang#データ構造
Goでクリーンアーキテクチャを実装する実践ガイド
アプリケーション 2019-08-18

Goでクリーンアーキテクチャを実装する実践ガイド

Go でクリーンアーキテクチャを実践する方法を解説。レイヤー分離・依存ルール・ディレクトリ構成・実際のトレードオフを具体的なコードで学べます。

#Clean Architecture#Golang#DIP
Realizeを使ってgoでホットリロードを実現するメモ
アプリケーション 2019-04-11

Realizeを使ってgoでホットリロードを実現するメモ

GoでソースコードのホットリロードをRealizeというツールで実現するためのメモです。go getでの導入から、.realize.yamlによる設定、監視サーバーの起動までの手順を紹介し、コードの変更を検知して自動でビルド・再起動させることで開発効率を高める方法を解説します。

#Golang#realize
Goでmysqldumpツールをつくる
アプリケーション 2019-02-04

Goでmysqldumpツールをつくる

SSHとTOML設定ファイルを使い、リモートサーバーのデータベースを自動バックアップするGo製mysqldumpツールをつくる方法を解説します。

#Golang#MySQL#SSH
Goならわかるシステムプログラミング
アプリケーション 2018-11-30

Goならわかるシステムプログラミング

『Goならわかるシステムプログラミング』の書評。Goを通じて、低レイヤーに近いシステムプログラミングを学べる一冊。標準パッケージの内部的な仕様にも触れながら、OSとやり取りする仕組みを手を動かして理解できる。

#Golang#書評
Goのインターフェースを解説:柔軟でテスタブルなコードの書き方
アプリケーション 2018-11-15

Goのインターフェースを解説:柔軟でテスタブルなコードの書き方

Goのインターフェースについて実践的にまとめた記事です。特定のメソッドの型を列挙する仕組みや暗黙的な実装、インターフェースの合成、依存性の注入への活用、そしてよくある設計上の落とし穴までを、具体例を交えて解説します。

#Golang
Goのポインタを解説:使うべき場面とよくある落とし穴
アプリケーション 2018-11-13

Goのポインタを解説:使うべき場面とよくある落とし穴

Goのポインタについて解説する記事です。値型とポインタ型の使い分けや、ポインタがメモリとパフォーマンスに与える影響、nilポインタやポインタレシーバの扱いなど、実務でつまずきやすいよくある落とし穴を具体例とともに学べる内容にまとめています。

#Golang
Golangでの変数定義・宣言のパターンまとめ
アプリケーション 2018-11-13

Golangでの変数定義・宣言のパターンまとめ

Goにおける変数の定義・宣言のパターンを、var宣言や短縮形式(:=)といった書き方ごとに整理した記事です。型推論や複数変数の同時宣言、識別子の1文字目の大小による可視性制御のルールまで、実際のコード例を交えて網羅的に解説します。

#Golang
Golangの関数についてー関数値/コールバック関数/無名関数
アプリケーション 2018-10-04

Golangの関数についてー関数値/コールバック関数/無名関数

Goの関数について、関数値として扱う場合の関数、関数を引数として渡すコールバック関数、無名関数とクロージャの3つを中心にまとめます。それぞれの定義や仕組みを、具体的なコード例を交えて実践的に解説する記事です。

#Golang#コールバック#関数#無名関数