ブラックボックスなコードに対して少しずつテストを書いていくためのテクニック @k_katsumi #orecon_ios
こちらは、コレクションビューで出来ているかのような画面ですがそう簡単ではなくて、 FacebookのようにEmptyステートを表示したり、ログインしているか指定内科によって出るものが違ったり、ログインしていても口座開設が途中なら再開とかで言葉が違うとか #orecon_ios
2018-09-12 20:48:44リボンが出てくるがお知らせがあるとバナーでニュースがでる、それも複数出る可能性がある グローバルなエラーもあって、そのときは画面をまるっと変える。ただしその画面にもニュースのバナーは出る。 #orecon_ios
2018-09-12 20:48:50コードを見てみるとそんなに大変ということはなくて、 ViewControllerはきれいに作ってあってReduxを使っている。 コードとしてはわからないものではない。 情報の表示はIGListKitを使っていてデータ内容ごとにSectionControllerに行くのでコードはスッキリしているように見える。 #orecon_ios
2018-09-12 20:50:00難しかったのはIGListKitになっているため、個々のケースの場合に表示がどうなるかを確認するのが難しい。 状態によって正しくビューが反映しているのかは不安があった。正常系は普段確認しているが、普段見ないパターンも有る。そこに影響がないかという不安は拭えない。 #orecon_ios
2018-09-12 20:51:15Reduxなので状態は自明、そこはテストしなくてよいと思うが、それによるUIの振る舞いに対しては不安があった #orecon_ios
2018-09-12 20:51:50Reduxも結局慣れれば, と思いつつシンプルなステートマシンを実装した方がわかりやすいんじゃないかなとも思う #orecon_ios
2018-09-12 20:52:04グローバルなエラーのハンドリングの部分が使いにくい半面もあって それぞれのエラーのハンドルに、プロトコルに準拠するという形になっている。プロトコルのデフォルト実装でエラーを表示するということになっている。 #orecon_ios
2018-09-12 20:52:46誰が実装してもこの状態に対応できることが分かっていて、Viewの下のパターンが累計できるのだけど、おまかせの表示でやっていると画面が複雑になっている割に共通化されていてどうなっているかわからなくなっていく、DRYにしすぎた弊害 #orecon_ios
2018-09-12 20:52:49folio collectionView でIGListKit github.com/Instagram/IGLi… #orecon_ios
2018-09-12 20:52:53今のコードがどうとか、書いた誰がどうとかではなくて、とにかくやらなくてはいけないのは、改善を続けていくことができるようにすること。 #orecon_ios
2018-09-12 20:53:50いまベストだと思って書いていることも、半年とか1年後には直さなくてはいけないことも当然おこる。 改善を続けられるにはあまり巨大なわからないところを放置する訳にはいかない。触るのが怖いところはなんとかしていかなくてはいけない。 #orecon_ios
2018-09-12 20:53:54