昨日発生していたサイトログインできない不具合は修正されております(詳細はこちら)

ブラックボックスなコードに対して少しずつテストを書いていくためのテクニック @k_katsumi #orecon_ios

https://fortee.jp/iosdc-japan-2018/proposal/51b4f787-3341-462e-8b50-c875915613d9 継続的に開発していく上で、テストは非常に重要です。意図しない影響を防ぎ、毎回のレビューの負荷を大きく下げます。一方で、テストがない複雑なコードはすぐにブラックボックス化し、変更もレビューも大変になります。しかし最初からテストを書くことは難しいことも多く、テスタブルなコードでないこともあります。そのような場合でも、大幅な書き換えをすることなく、最小限の負荷でテストを書いていくさまざまなテクニックを、私の経験から実例を用いて解説します。
5
前へ 1 2 ・・ 8 次へ
にわタコ @niwatako

こちらは、コレクションビューで出来ているかのような画面ですがそう簡単ではなくて、 FacebookのようにEmptyステートを表示したり、ログインしているか指定内科によって出るものが違ったり、ログインしていても口座開設が途中なら再開とかで言葉が違うとか #orecon_ios

2018-09-12 20:48:44
にわタコ @niwatako

リボンが出てくるがお知らせがあるとバナーでニュースがでる、それも複数出る可能性がある グローバルなエラーもあって、そのときは画面をまるっと変える。ただしその画面にもニュースのバナーは出る。 #orecon_ios

2018-09-12 20:48:50
ぶらこん @burakon

合いの手スタイルの登壇の斬新さよ #orecon_ios

2018-09-12 20:49:28
Kenta.Kase @Kesin11

取りうる状態が多いと手作業で確認するのは大変そうだ #orecon_ios

2018-09-12 20:49:34
Daiki Matsudate @d_date

うん、知ってる知ってる(棒) #orecon_ios

2018-09-12 20:49:34
にわタコ @niwatako

コードを見てみるとそんなに大変ということはなくて、 ViewControllerはきれいに作ってあってReduxを使っている。 コードとしてはわからないものではない。 情報の表示はIGListKitを使っていてデータ内容ごとにSectionControllerに行くのでコードはスッキリしているように見える。 #orecon_ios

2018-09-12 20:50:00
トビ @tobi462

IGListKit って初めて聞いた。 #orecon_ios

2018-09-12 20:50:32
にわタコ @niwatako

難しかったのはIGListKitになっているため、個々のケースの場合に表示がどうなるかを確認するのが難しい。 状態によって正しくビューが反映しているのかは不安があった。正常系は普段確認しているが、普段見ないパターンも有る。そこに影響がないかという不安は拭えない。 #orecon_ios

2018-09-12 20:51:15
サ/ (○=×=△=□) @kz56cd

Reduxなので状態は自明、そこはテストしなくてよいと思うが、それによるUIの振る舞いに対しては不安があった #orecon_ios

2018-09-12 20:51:50
Yu Kadowaki @gates1de

Reduxも結局慣れれば, と思いつつシンプルなステートマシンを実装した方がわかりやすいんじゃないかなとも思う #orecon_ios

2018-09-12 20:52:04
くろるり @kuroruri

Reduxの差分更新問題をIGLIstKitで解決してるパターンかー #orecon_ios

2018-09-12 20:52:32
にわタコ @niwatako

グローバルなエラーのハンドリングの部分が使いにくい半面もあって それぞれのエラーのハンドルに、プロトコルに準拠するという形になっている。プロトコルのデフォルト実装でエラーを表示するということになっている。 #orecon_ios

2018-09-12 20:52:46
サ/ (○=×=△=□) @kz56cd

DRYにし過ぎたことによる弊害があった #orecon_ios

2018-09-12 20:52:49
にわタコ @niwatako

誰が実装してもこの状態に対応できることが分かっていて、Viewの下のパターンが累計できるのだけど、おまかせの表示でやっていると画面が複雑になっている割に共通化されていてどうなっているかわからなくなっていく、DRYにしすぎた弊害 #orecon_ios

2018-09-12 20:52:49
サ/ (○=×=△=□) @kz56cd

「フルスクラッチの誘惑に抗う」 #orecon_ios

2018-09-12 20:53:29
にわタコ @niwatako

今のコードがどうとか、書いた誰がどうとかではなくて、とにかくやらなくてはいけないのは、改善を続けていくことができるようにすること。 #orecon_ios

2018-09-12 20:53:50
にわタコ @niwatako

いまベストだと思って書いていることも、半年とか1年後には直さなくてはいけないことも当然おこる。 改善を続けられるにはあまり巨大なわからないところを放置する訳にはいかない。触るのが怖いところはなんとかしていかなくてはいけない。 #orecon_ios

2018-09-12 20:53:54
まいまい @sunny_maimai

ここ触りたくないな!あるあるw #orecon_ios

2018-09-12 20:54:04
前へ 1 2 ・・ 8 次へ