城陽人の本棚 このページをアンテナに追加 RSSフィード

2016-12-09

[]名前空間が平らになっていく

GoでCLIツールを作ってるのを見ると大体Clientの型を定義して、それをレシーバーにしたメソッドを生やすというスタイルになってるように思う。

でもサブコマンドぐらいだったらそれでよいんだけど、サブサブコマンドぐらいになってくるとファイルがごちゃごちゃして来るのが想像に難くないので、初期の段階からディレクトリを分けてパッケージを分けるようにしてた。

でもパッケージをまたがったレシーバーメソッドが生やせないので、Client型のレシーバーのような表現ができなくて、引数で引き回すしかなく、これはこれでどうもGoっぽくない。無理矢理に構造体の埋め込みで型を変換してみたりするのも試してみたけど、型変換のコードが至る所にでてきてこれもなんだか違う感。

他の人が書いたGoのコードを眺めてると結構平らなパッケージが多いので、そういうもんだとあきらめてパッケージを平らにしよう。

名前空間が分けられないのだけが気になるのだけど。細かいヘルパ関数的なのも雑多に突っ込んでみて、数が多くなってから共有処理的なを分離することを考えよう。

色々リファクタリングしながらコードをこねくり回してしっくり来るところを手探りで探す感じ。

2016-12-08

[]Docker難民

開発環境のDocker化を進めるとDockerの使い方分からない勢が色々ハマって大変そうである。うーん。何をするのにも一定学習コストは必要なんだけど、Chefは難しいと言ってたのがDocker難しいって言ってるだけで結局何も変わっちゃいないので、あんまり気にしてはいけない。

2016-12-07

[]ELBのアクセスログを無効にすると収束しない

どうやら既知のバグを踏んだっぽい。

aws_elb access_logs Continuously Recreated ? Issue #10138 ? hashicorp/terraform ? GitHub

なんとなく原因は分かったけど、もともと別のバグ修正で追加した条件分岐が原因で埋め込まれたバグのようにも見えるので、埋めた人にメンションして様子を伺ってみる。