誰かの役に立てばいいブログ

by @ymmt2005 役に立ったらスターつけてね。

Go

code-server で実現する Windows 上で Linux 向けの快適な Go 開発環境

業務で Linux 向けの Go プログラムを多数開発しています。 しかしながら、開発している機材の OS は好きこのんで Windows です。 在宅から勤務するときに、Windows のリモートデスクトップが最強すぎるので手放せないのが大きな理由です。 そんなわけで、Wi…

Go で GitHub v4 GraphQL API を使って draft pull request を自動作成

先日 GitHub に「開発中のためまだマージするべきでない」プルリクエストを作ることができる Draft Pull Request 機能が追加されました。 今の業務では複数人でモブプロしたりする関係で、開発途中のブランチを GitHub に push してひとまずプルリクエストを…

WSL で快適な Go 開発環境を作る

Go

個人的な備忘録です。 仕事上 Ubuntu をターゲットに Go のプログラム開発をする必要があるのですが、従前 Windows デスクトップに Hyper-V の Ubuntu で Emacs で開発していたところをVisual Studio Code(vscode) に開発環境を変えたいと考えました。理由は…

golang.org/x/crypto/ssh で固まらないようにする

Go

最近 CKE というベアメタル向けの Kubernetes 管理ツールを作っています。 ブートストラップツールではなく自律的・継続的にクラスタの構成を修正していくツールで、以下が特徴です。 ネットワークプラグイン非依存 HA 対応 CKE 自体の高可用性 今日は CKE …

http.Response を返すような関数は作らないのが賢明

go Go

Go 1.7 から本体に入った context パッケージは便利、というより今や必須の道具です。以下のように書くことで、一定時間で処理をキャンセルできたりします。 func slowOperationWithTimeout(ctx context.Context) (Result, error) { ctx, cancel := context.…

「みんなの Go 言語」は忙しいプログラマこそ読むべき本

@songmu 氏からご恵贈いただいた「みんなの Go 言語」(みんGo)、早速拝読しました。 書評としてはタイトル通り、なのですがそれではあんまりなのでもう少し。 本書でも述べられている通り、Go 言語は早ければ一日で大体学べてしまう学習効率の良さが魅力で…

Go のポインタメソッドとバリューメソッドのどちらが良いのか

Go

TL; DR ほとんどの場合ポインタメソッドにしておけば良い。 Go のメソッドは、レシーバーとして値(value)を受け取るかポインタを受け取るか選択できます。

手軽に Go スクリプトを実行する

Go

Linux 限定ですが、binfmt_misc を使えば shell script や Python と同じように実行ビットを立てるだけで実行できるようになります。 以下のスクリプトを /usr/local/bin/gorun とでもして保存 #!/bin/sh exec go run "$@" Debian/Ubuntu なら update-binfmt…