マイクロサービスアーキテクチャ 買った

www.oreilly.co.jp

買った

3章まで呼んだざっと感想

とにかく内容が広い、概念からはじまりアーキテクトとして検討すべき項目はなにか、どのように分割するべきなのかなど。

自分は今日購入して3章までしか読んでないけどいままでがWEB記事をなんとなく読んできただけだったのでとても勉強になった。

誤解してた部分が多かったこと、考えもしてなかった検討事項があったことがこんなに多かったとは。。。

決して銀の弾丸ではなく、あくまでベストプラクティスのパターンの一種なんですね。

マイクロサービスを実際に導入したが分割に失敗して、結局モノシリスアーキテクチャに戻して1年後にマイクロサービスに分割しなおした話やわけかたに失敗してデプロイフローが複雑になりすぎた話など自分が経験したくないけど知らなければ意図せず再現してしまいそうな問題が多数紹介されてるので少しでも興味がある人は読むべき。

明日から4章を読むのが楽しみだ。

それにしても、DDD本やIDDD本が前提に語られるとかハイコンテクストすぎません?

Javaマルチスレッド入門: 並行処理の最新API対応 読んだ

Amazon CAPTCHA

2ヶ月くらい前に読んだ。

値段の割に内容がしっかりしててよかった。

内容的には基礎的なものが多くて、正直Java並行プログラミングに書いてあったようなことしか書いてないのだけど、あの書籍は絶版になってしまったので今から人にすすめるならこっちかな。

自分は知識の整理に役立ったのでよかったです。

【Android】UniWebViewでWebViewを開いた状態でアプリをバックグランドにしてフォアグラウンドにするとUrlSchemeが効かなくなる問題

AndroidManifestでUniwebView.AndroidPluginがLaunchActivityになってないと発生するそうです。

他のライブラリでLaunchActivityにする必要があるものがある場合はそれを含めてjarをリコンパイルする必要がありました。

下記のサイトに従うとできると思います http://uniwebview.onevcat.com/manual#manual-recompile

原因はAndroidに詳しくないのでなんとも言えないのだけど、LaunchActivityでないとバックグランドからフォアグランドに戻ったタイミングでアプリがメインスレッドを取得できずにUrlSchemeをハンドリングした時の処理に到達しないため。

Unity5.3.3でファイルのタイムスタンプを更新しようとしたら一部のAndroidでハマった

                                                                       
File.SetLastWriteTime(outPath, lastModified.Value);

↑の関数でUnityでファイルのタイムスタンプを更新しようとしたらInvalidParameterって例外が出る端末があった。

再現性を調べたわけではないけど再現した端末はすべてAndroid4.2~4だった。

調べていくうちにXamarinでも似たようなエラー報告があることがわかって、おそらくXamarinのバグだろうって思ったのでAndroidのみAndroidJavaClassを使用して解決した。

  #if !UNITY_EDITOR && UNITY_ANDROID
                                        using(var file = new AndroidJavaObject("java.io.File", outPath)){
                                            var lm = lastModified.Value;
                                            var result = file.Call<bool>("setLastModified", lm.ToFileTimeUtc());
                                            Debug.LogFormat("{0}", result);
                                        }
                                        #else
                                        File.SetLastWriteTime(outPath, lastModified.Value);
                                        #endif

いまのところこれで問題は起きてない。

iOSでUniWebViewのインスタンスの生成・破棄を繰り返すとクラッシュする

面倒くさいバグを踏んだ。

※UniWebViewとはUnityで簡単にWebViewを扱えるライブラリ。難しいことがなくてやりたいことに集中できるので重宝してる。 http://uniwebview.onevcat.com/

iOS版の実装に何か問題があったんだろうね。

メモリリークしてるんだろうけど、WebViewのインスタンスを破棄する直前に about:blank を読み込んだら解決した。

まぁ、iOSのWebViewがすごくメモリを食うのでインスタンス破棄時に動くGCが原因なんじゃないかと思う。