golang
いま仕事で、一斉にTestを書いている つまり、今までのツケが回ってきた Goのテストフレームワークの中でも、Testifyが一番シェアが多いように思われる testifyにはAssertion、mock、suiteなどがある 今日始めたばかりでノウハウはまだないが、いずれまとめ…
interface呼び出しのパフォーマンスが気になったので ついでに値レシーバとポインタレシーバの比較もしてみた package main import ( "fmt" "time" ) type IHoge interface { Print() } type HogeImpl struct { num int } func (s *HogeImpl) Print() { //fm…
インタフェース使ってDIの作成していたときに 構造体なら暗黙的に ポインタでも実体でも "." でアクセスできます C++的にいえば "->" が必要な場所でも暗黙的に "." でアクセスできる ところが interfaceにすると (*s).Hoge() と、明示的にキャストしないと…
gRPCとは HTTPによるREST APIみたいなものですが、RESTではなく RPCである事など違いがあります REST APIと比較すると 仕様が柔軟である ヘッダが小さくオーバーヘッドが少ない HTTP2に対応しており、非同期通信が効果的に行える protoファイルを作成し、プ…
Golangの仕事再び 不満点はいっぱいあるけど、今の主流言語のひとつであることは間違いない Golang 仕事の内容は詳しくは書けないが、暗号化とセキュリティが重要な巨大基盤 OpenStackで作ったインフラ上で動かす 前のプロジェクトでGolandを購入したので、G…
プログラミング言語の覚え方は色々ある が、たいていの人は新しい言語を覚えるときに、自分が得意な言語と比較して xxもないのか! とか文句を感じると思う そして いくらかの人は得意な言語に戻ってしまう ということで、GoをDisって楽しみ、Disっているう…
言語をDisるのは良くないことだ。どれも良さがある。Brainfuckであってもな だけど、人間の言語を覚えるモチベーションを考えてみた 自然言語であればおおよそモチベーションは下記が考えられる 仕事で必要になった 友達や恋人と会話するため その国の漫画や…
Bitcoinのサーバとして オフィシャルの bitcoindがあります それの Go実装が btcd btcdでtestnetでは正しく動いたのですが mainnetだと 途中からブロック取得が出来なくなったので 結局 bitcoindにしました bitcoindはC++で実装されています また、BCHに関し…
Class そんなものはない が、C言語で使うような構造体ポインタを明示的に渡す事で、ステートを持たせ同じことが出来る // 構造体の作成。C言語と違い関数の定義は必要ない hoge:= &Hoge{ name: "Name", } // メソッドを呼ぶ hoge.Print() // Print関数の定義…
仕事で1か月間に新しく6言語を使ったのだが、その中で最も触ったのがGo 色々と想像と違ってたので、Goを勉強始めるあたりから書いていく 使う前の印象(全然間違えてた) 天才技術者エリート集団 Googleの作った最高の言語 コンパイル言語で、C言語並みの実…
はじめに 以外と困ったのでメモ まず結果からいえば、現在のGoはWindowsではプラグイン(ダイナミックリンク)が出来ない ので、出来るだけLinuxで開発しましょう Windows インストールは簡単だ Windowsのばあいはmsiでインストールできるのでそれで問題が無…