render_differential
と render_line_differential
を読み終わったぞ...!!!レンダリングがこれらのメソッドにおおむね集約されたことが0.5.0.preでの一番の変更点だと思うので、山場を越えた感がある。
render_line_differential
のいいところはもらったものが入力行だろうがdialogだろうがmenu_infoだろうがすべてcontentsとして扱い、前回レンダリング時の情報と差分があれば更新するということだけに特化していることだと思った。目的がわかりやすい。そして @output.write
している箇所も最小限になった。
ここ数日読んでいくなかで自分のこのPRへのレビューのスタンスがだんだん固まってきた。自分がなにか手を入れたいと思ったりバグがあったりしたときにどのあたりが怪しいかあたりをつけられるレベルで理解しておけばいいかな、と思っている。普段のおしごとのレビューだとコードベースへの理解やどんな入力があるかなどのパターンが大体頭に入っているのでバグを事前に潰せないかという観点でも見ている。Relineはそのレベルでの理解はしていないからまだ無理だ。それよりはこのPRを前にすすめたほうが良いなという気持ちが固まってきた。
diffの行数的にはまだ半分以上残ってるけどあとはivarの廃止とかの変更が大きそうで、概念の変更とかはないからやっていくだけだと思う。がんばるぞ