週末にやったことをブログにするテスト。この手のは今まで続いた試しがないので、たぶん今回も続かない
今週末は、Clean Architecture という本を半分ほど読んだのと、WALK という Go 言語の GUI ライブラリを触っていた
Clean Architecture は以前 WEB の記事を読んだことがあったのだけど、よく記事で出てくる 4 重の円がなんなのかよくわからなかった。本を読んだらいいたいことがわかってきた気がする。モジュールの依存関係を DAG(循環のないグラフ)にしたくて、そのためにインタフェースを使って処理の流れと依存関係を逆にするのねと
構造化プログラミングやオブジェクト指向、関数型プログラミングなどのプログラミングパラダイムは、プログラマに制限を課すことがキモだという話、なるほどーとなった。無法地帯だと収拾つかなくなりそう。GOTO 滅すべし。そして言及されない論理型プログラミング…
今回、内容を Dropbox Paper にまとめながら読むのを試してる。まとめることにより頭に定着しそうなのと、後で見返す時に読み直すより時間かからなそうなのがねらい。今のところ感触は悪くないけど、ただ読むより時間かかってそう。まとめが大量になっても読み返すのが大変だし、いいバランスにしたい
Dropbox Paper は、ざっくりいうと Cloud Markdown WYSIWYG Editor なのだけど、感触は悪くはない。欲を言えばオフラインでも動いてほしい。メモ取りたいとき常にオンラインでいられるかというと、そうではなさそう
WALK は、最初ドキュメントも薄いし微妙かなーと思ってたけど、慣れてきたらまあいいじゃんと思えるようになってきた。WALK はマルチプラットフォームではなく完全に Windows にしか対応してない GUI ライブラリなのだけど、その分プログレスステータス(処理中にアプリのアイコンがびよびよなるやつ)とかタスクトレイとか、Windows の機能がちゃんとあるのがよい。マルチプラットフォームのやつだとそのあたりあんまり充実してなさそうな印象(あまり触ったことないけど…昔 Tkinter 触ってたぐらい)
GUI アプリ作るのになぜ Go かというと、やっぱりワンバイナリで exe をコピーするだけで動くの、よいなーと。goroutine や defer は GUI プログラミングでも有用そうだし、いいんじゃないかなという感触。もちろんでかいものなら C#で作った方が良いと思うけど、そんな手間かけずに作れる選択肢も欲しい
https://github.com/neguse/go-gui-sandbox/blob/master/src/cmd/main.go
ソースはこちら。今回は ping を実行して結果を出力するだけのプログラムを作った。ping は結果が徐々に出るし、非同期プログラミングの練習にもってこいだった。まだ DataBinding 機能がまだあまりわかってないので、そのあたりもう少し調べたい