フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

Golang

middlewareってなに?インフラが思うミドルウェアとはちがうの?

ちがいます。 インフラエンジニアが思うミドルウェアやApacheやEnvoyなどのアプリを動かすソフトのことをさしています。 しかしGoでAPIサーバを立てるときなどに用いられるMiddlewareという言葉は、HTTPリクエストを途中で処理する層のことを指しています。 …

Type funcを使ってみて動作イメージを掴む

net/httpのHandler周りのコードを読んでいたらよくわからなくなったので理解のため簡単なコードを書いておきます。 HTTPserver package main import ( "fmt" "net/http" ) func main() { // HandlerFunc は与えられたパターン(/hello) をDefaultServeMuxに…

GoでDIを理解してみる(コードあり)

DIとはなにか? Dependency Injection の略(依存性の注入) プログラミングのデザインパターンの一つ DIが嬉しいこと 猿でも分かる! Dependency Injection: 依存性の注入 - Qiita で紹介されていた例がわかりやすかったです。 要点を摘むと以下の通り。 作っ…

構造体のSliceを任意の順番にソートする方法

構造体の中に含まれる一部の要素を使って構造体のスライスを任意の順番にソートする方法です。 イメージとしては以下のような構造体がスライスに格納されているとします。 type user struct { name: string bloodType: string } Users = []user { {"tanaka",…

【Go】runeについて理解する(サンプルあり)

結論 前提知識 Golangにおける文字の扱い runeについて 結論 runeはGoにおける型の1種類 rune型を用いることで、文字列を1文字づつ扱うことができる 前提知識 まず最初に文字コード(コードポインタ)や文字集合と符号化方式について理解しましょう。 こちらの…

【Go】パッケージ/モジュールやgo modコマンドについてまとめ

Packageとは Module(モジュール)とは go.modとは go.sumとは コマンドの意味 go get [import path] go install [import path] go mod init [import path] go mod tidy 試してみよう Moduleを作ってインストールしてみる Goを操作する上で基本となるPackageや…

Golang学習(値渡し/ポインタ/switch/for/defer/panic/recover)

教材 学んだ事 値渡しについて switch~caseの使い方 switchで関数呼び出し&caseで複数条件 caseで関数呼び出し可能 フォールスルー(fall through) forの使い方 通常 条件付きループ 無限ループ defer / panic / reccover defer panic recover 教材 Go で制御…