← 戻る

Clean ArchitectureとWALK

2018-08-19

週末にやったことをブログにするテスト。この手のは今まで続いた試しがないので、たぶん今回も続かない

今週末は、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 機能がまだあまりわかってないので、そのあたりもう少し調べたい