アプリケーション

Golangでロードバランサーを実装する

アプリケーション

概要この記事はMakuake Advent Calendar 2021の24日目の記事です。(大遅刻しました・・)ラウンドロビンで負荷分散するロードバランサーをGolangで自作してみるという話です。 ロードバランサーとは何かロードバランサーはリクエストを複数のサーバーへ振り分けて負荷分散する(ロードバランシング)機能を持ったサーバーです。 サービスの可用性を高めてくれるリバースプロキシの一種で...

Golang ロードバランサー ラウンドロビン

net/httpでつくるHTTPルーター自作入門

アプリケーション

はじめに本記事では、Golangの標準パッケージであるnet/httpを用いて、HTTPルーターを自作する方法について解説します。 標準パッケージはあまり多くのルーティングの機能を提供していません。 例えばHTTPメソッドごとのルーティングの定義ができなかったり、URLをパスパラメータとして利用できなかったり、正規表現を利用したルーティングの定義ができなかったりします。 その為、実際のアプリケーシ...

Golang HTTP

textlintとreviewdogを使ってCircleCIでテキスト校正する

アプリケーション

概要長文の執筆をする際にテキスト校正を自動化しておきたかったのでやってみた。 構成テキストはGithub上で管理するようにしており、ディレクトリ構成は以下のようになっている。 ├── .circleci │ └── config.yml ├── README.md ├── documents │ ├── はじめに.md │ └── おわりに.md ├── images ├── .tex...

CircleCI npm textlint

Gitでコミットを分割する方法

アプリケーション

Gitでコミットを分割する方法のメモ。たまにやりたくなる。  // 分割したところを指定。対象commitをeditする。 git rebase -i HEAD~5 // 対象commitがunstageされる git reset HEAD~ // 任意の粒度でadd&commit git add ~ git commit ~ git rebase --continue ...

Git

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

アプリケーション

概要 Goでrouterを作ったときにHTTPサーバーのコードの内部を読んだので、その時のメモ。 github.com - bmf-san/goblin HTTPサーバーのコードリーディング 基本形 Goに入門したとによく見るであろう形のコード。 色々なものが省略されてこの形になっている。 package main import ( "net/http" ) fun...

Golang コードリーディング