单向数据流动的函数式 View Controller
View Controller 向来是 MVC (Model-View-View Controller) 中最让人头疼的一环,MVC 架构本身并不复杂,但开发者很容易将大量代码扔到用于协调 View 和 Model 的 Controller 中。你不能说这是一种错误,因为 View Controller 所承担的本来就是胶水代码和业务逻辑的部分。但是,持续这样做必定将导致 Model View Controller 变成 Massive View Controller,代码也就一天天烂下去,直到没人敢碰。
对于采用 MVC 架构的项目来说,其实最大的挑战在于维护 Controller。而想要有良好维护的 Controller,最大的挑战又在于保持良好的测试覆盖。因为往往 View Controller 中会包含很多状态,而且会有不少异步操作和用户触发的事件,所以测试 Controller 从来都不是一件简单的事情。
