pflaggoで設定ファイルを読み込むときに設定の一部だけを上書きしたいことがある。それ用のコードのメモ。mergoというのはけっこう古くからあるライブラリみたい。memoこの話に似た話。aliasを使った型の読み替えで手抜きができる(場合がある)。aliasを使って同一パッケージ上にimportしてくる。cli昔にも似たような記事を書いていたみたいだった。最近のgoでのCLIツールを書く際の心境の変化があったのでその辺をメモしておく。memoそろそろDIについてもまじめに考える必要が出てきたので考えることにする(この記事では終わらない)。答えになっていないようなメモでも。昨日に引き続きgo-webtestの話。現在時刻のような実行の度に値が変わるようなresponseを含んだAPIのテストがしたいとする。いう場合はそもそも固定値を返せるように依存するコンポーネントを注入できるような構成にしておくのが良い。go-webtestというパッケージを作ってました。json昔以下の様な記事を書いていた。リンク先の記事ではpointerを使わないstruct定義に対してUnmarshalJSONを自前で定義することでどうにかやろうという感じのものだった。optionsを使う場合には、こういう感じで書かれていると嬉しいという話。golang今日は素朴な話。optionsの利用者がこういう感じでコードを書いてくれると嬉しいよという話。goでわりと有名なデザインパターン(?)。optionsを使う場合には、こういう感じで書かれていると嬉しいという話。探すのが面倒なのでここにメモしておく。後者はcontextの対応が含まれていないコードなので少し古いかもしれない。した作業をするのに欲しくなったから。loggingの部分が欲しい。loggingはzapを使えばおしまいで良さそうだった。できそうなことが多すぎそうだったので絞った。serverのようなコードがあるとする2。go用のテストライブラリを作りました(言いたいことは分かります)。使いかたはこんな感じです。reflectencoding/jsonパッケージの範囲を越えてJSONと戯れようとする。動的な何かが必要になる。reflectパッケージに触れることになる。触りたくないけれど触る必要がある汚泥のような存在。それがreflect。重い腰をあげてreflectと少し仲良く...reflect経由でgoのmethodを呼んだり存在を確認したりする2019-04-06.vueに似た記述からwasmを出力するgo製のツールのvuguについてgolang少し前に微妙にvuguがバズっていた。触らずに分かった気になったりするのも良くないと思い実際に触ってみた。そのときに感じたことや思ったことのつぶやきをまとめてみた。memoN個のchannelがcloseされるまで読み込む方法についてのメモ。はじめにN=1の場合について。これは単にforループで取り出せば良い。memoたまに標準ライブラリのみを使ってnet/httpのhandlerを実装することがある。その時の種々の操作で呼び出す順序を気にする必要があるものがある。先に結論を言ってしまうと以下の順序で記述しましょうという話。memogoで依存するパッケージを調べたい。listコマンドが便利に使えた。GOPATH外で作業したりするときなどに相対importが使いたくなる。packageの関数を利用したい。log標準のlogパッケージの使いかたをちょっと変えるだけで便利な形式で出力できそうなのでメモ。runを実行するものを作っていた。詳しい話はアドベントカレンダーに記事を書いた。PoC的なものだったのでまじめには作っていなかったのだけれど意外と便利なので常用してみようとした。runは以下の様にして使う。このときxxx.goはソースコードとして扱われてbuild時のpackageに含まれる。ところで、go/astなどのコードを試しているときには、.goのファイルを入力として扱いたいときがある。memo過去の以下の記事の続き。この方法はたまに使われていたりする。リンク先の記事ではinterfaceを実装したstruct(アプリで実際に利用しているstruct)を埋め込んでいる。memo何も考えずにgoimportsで補完された結果のコードを残しておいたら、pkg/errorsのerrorが独自定義のerrorに使われてしまって微妙だった。具体的に言うと意図しないスタックトレースを表示してしまうことになる。以下の様なコードのとき。statik以前はgo-bindataを使っていたのだけれど。いえば、作者がアカウント削除したあとに他の人がリポジトリ作成したみたいなことがあったな−。いうことを思い出したりしたので代替品を探してみることにした。statikはこちら。https://gith...go-bindataの代わりにstatikを使うことにした2018-04-28goでは自分自身を返すメソッドは定義しないほうが良いのでは?という話。golang最近色々コードを書いていた中で、goでは自分自身を返すメソッドは定義しないほうが良いのでは?という思いを抱くことがあった。自分自身を抱えすメソッドを定義するということを一般に悪いとする主義主張の人もいたりもするけれど。そこまで強硬に主張した...goでは自分自身を返すメソッドは定義しないほうが良いのでは?という話。gomvpkg-lightみたいなものを作りたい理由は2つあって。2つ目が常にpackageの指定が再帰的に扱われるのがちょっと困るという感じ。astgoはASTの解析が手軽なのが便利。ところでこれにgo/typesの機能を使うととても便利になる。その威力を一番わかりやすく体験できそうな例を思いついたので紹介する。memogo言語でローカルで定義した関数で再帰したいと思うことありますよね。横着してクロージャに環境をキャプチャすることを任せてしまってそのコンテキストで木などを再帰的に辿りたいみたいな場合などに。(個人的なコード生成のための環境を作っている。コード生成用のツールに欲しいものを思いつくままにあげていく。(個人的なコード生成のための環境を作っている。コード生成用のツールに欲しいものを思いつくままにあげていく。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。