Go
https://www.amazon.co.jp/dp/B0BVZCJQ4F 知っていることは復習がてらfmfmと読めて、知らないこともたくさんあって楽しかったです。つどつど見返すGoの本がまた増えましたね。 以下、メモの中からかいつまんで。 1章はGoの特徴に触れながらなぜGoが選ばれて…
今更ながら Go 1.93 及び 1.8.8 のマイナーリリース、security fix の内容について。 リリース内容はこちら groups.google.com どういう問題があったか github.com Windowsにおいて、環境変数をサブプロセスに渡す際にヌル文字(NUL)が含まれていると別の環…
https://groups.google.com/g/golang-announce/c/xtuG5faxtaU 3つの security fix が含まれている。 archive/tar : ヘッダー読み込み時のメモリ消費量に制限をかけた net/http/httputil : ReverseProxy でパース不可能なクエリパラメータを転送しないように…
以下のPRをマージする過程で調べる必要があったのでメモしておく。 github.com 結論http.NewRequestがerrorを返すパターンは、HTTPメソッドが不正な場合と、URLのパースに失敗した場合の2パターンある。 http.NewRequestはgodocにもあるとおりhttp.NewReques…
本の約半分がハンズオン形式になっていて、実際にWeb APIを開発しながら必要となる知識をインストールできる本でした。ハンズオンで作るWeb APIはBeyond the Twelve-Factor Appに準拠した形で、お題もMySQLを使ったデータ永続化、RedisとJWTを使った認証・認…
こちらのもくもく会も活用して、簡単なLinterをつくりました。 gostaticanalysis.connpass.com つくったもの github.com Goの静的解析の事始めとして、エラーのラップフォーマットの間違いを検知するLinter errwrapfmtをつくりました。 errwrapfmtは文字列リ…
スタックトレース周りについて調べたので放流。 概要 Goでエラーを扱う標準パッケージ errors はGo1.18現在スタックトレースに対応していません。Go2では標準パッケージerrorsにスタックトレースがサポートされる予定です(proposal)。それまでの間、スタック…
Goのリンターの1つであるstaticcheckのルールを全部読みました。 staticcheck.io 全部書くとただのコピーになってしまうので、その中からかいつまんでいくつか紹介します。 SA1 – Various misuses of the standard library SA1004 - Suspiciously small unty…
httptest.ResponseRecorderを使ってHTTPサーバーのテストをしている際、レスポンスのHTTPステータスコードが意図した値にならないなぁと思って色々調べたのでそのメモです。 例えば以下のようなコードで再現することができます。 type MyHandler struct{} fu…
https://www.amazon.co.jp/dp/4873119693 実務レベルでGoを読み書きする際に考えるであろう様々な「問い」とその回答が体系的にまとまっている超良書でした。ぼくは最近Goを触り始めたペーペーなので、本書を読むと昨日自分が書いたコードを書き直したくなっ…
andmorefine.gitbook.io TDDをしながらGoの型や標準パッケージについて学べる教材です。対象としては他のプログラミング言語で一定経験があり、GoについてもA Tour of Goはやったことある以上の人かなという気がします。全くの未経験だとそもそもTDDやテスト…
belong.connpass.com connpassで参加する際のアンケートに質問書いたところ、丁寧に用意して答えてくれました。ありがとうございます! Idomatic Go知らなかった〜〜〜。 dmitri.shuralyov.com Go による API クライアント実装の勘所 docs.google.com ディレ…
Go言語でSlack APIを使ったシステムを作る場合https://pkg.go.dev/github.com/slack-go/slackが便利なのですが、テストどう書くと良いかな〜と迷いました。 github.com 先に結論 結論から言うとhttps://pkg.go.dev/github.com/slack-go/slack/slacktestパッ…
Go Code Review Comments · GitHub Effective Go - The Go Programming Languageとどっち先に読もうかなと思って、分量が短いのでGo Code Review Commentsを読んだのですが、冒頭で「Effective Goの補足として使えるで」って書いてあったので結局両方読むし…
gocon.jp 楽しかった〜〜 ぼく自身は会社で「Go書いていくぞ!」って状況に最近なって、すぐこういう大きいカンファレンスに参加してもどうせ内容ついていけないだろうなぁとか思ってたのですが、もちろんわからないやつもあるけど総合的にめっちゃ楽しめま…
mixi.connpass.com 各発表と気になったところ〜(発表資料見つけたら追記) Go移行におけるJSON-RPC対応 speakerdeck.com せっかくRPCつかうならスキーマ駆動開発したいですよね〜。RESTとRPCが両方あるから、RESTにも対応できるOpenAPIを選んで、JSON-RPCに…
Udemyの『Go言語で学ぶ実践gRPC入門』を受講しました ٩( ᐛ )و www.udemy.com Goに関する基本的な情報はわりとネット上に無料で見つけられたので、実践的・応用的な内容を期待して購入しました。 この講座は、gRPCのサーバーとクライアントをGoで実装するので…
普段Swiftを使ってiOSアプリを開発している私が、GoでAPIを開発した際に感じたことを紹介します。 列挙型(Enum)がない! SwiftではEnumをめちゃめちゃ使います。ですがGoにはありません。が、Goではtypeを用いて擬似的にEnumっぽいことを実現できるようです…