Go

myawsにbrew tapを作った

Go

思いのほか簡単だった。 Golangで書いたCLIツールのビルド済みバイナリをbrew tapでインストールできるようにする - Qiita技術ネタのメモはQiitaに書くようにすると、このブログがリンク集みたいになってしまうのは致し方ない。

Goその3アドベントカレンダー

Go

GolangでAPIを叩くCLIツールを作る方法を書いた。書き始めたらなんだかボリュームが膨らんで長文になってしまって疲れたけど、最近覚えたことなどを整理してまとめてアウトプットできたのでよかったんじゃなかろうかと思う。 GolangでwebサービスのAPIを叩く…

myaws v0.0.7リリース

Go

myaws v0.0.7をひっそりとリリースした https://github.com/minamijoyo/myaws/releases/tag/v0.0.7ほぼ機能増えてないけど、リファクタリングしてこねくり回してたら内部実装がだいぶ変わりまくりでdiffがヒドイことになってた。 https://github.com/minamij…

json.UnmarshalはフィールドをExportしてないと読み込めない

Go

APIのレスポンスがJSONで返ってくるので、json.Unmarshalでstructに変換しようとしてなぜだかうまく読み込めなくて悩んだ。 原因はstructでExportしていないフィールドは読み込めない罠だった。エラーにならずに単にゼロ値が埋まるから余計にわかりづらい。

Makefileを作る

Go

Goのプロジェクトはビルドツールにmakeを使ってることが多い。myawsはビルドとかパッケージ周りの作業は雑なシェルスクリプトで作業してたんだけど、やっぱりMakefileあった方がよいかなぁとか思って、Makefileを作った。随分前にC++とかやってたときは書い…

名前空間が平らになっていく

Go

GoでCLIツールを作ってるのを見ると大体Clientの型を定義して、それをレシーバーにしたメソッドを生やすというスタイルになってるように思う。 でもサブコマンドぐらいだったらそれでよいんだけど、サブサブコマンドぐらいになってくるとファイルがごちゃご…

goimportsをignoreしたい

Go

vim-goでバッファの保存時にgoimportsを自動化する設定を入れてるのだけど、GOPATHの下にファイルがいっぱいあるとgoimportsが重い。 ghq使ってるとGoとGoじゃないものを分けて管理したくなくて、GOPATHに$HOME/goみたいにgoという文字列を入れたくない。 結…