2019 JSConf.Asia尤雨溪:在框架设计中寻求平衡
我特别喜欢 Steele 这个家伙在一场演讲中说的一句话:“培养一种语言”。在演讲期间,他给自己制定了一条规则,他在演讲期间必须使用单音节词,如果你想用任何类似于多音节词的话,他必须先用单音节词来定义它。 他只有非常有限的、非常原始的一些东西,去构建一些复杂的想法。 所以你可以想象一下那次演讲是怎么回事。 在他每次想要说出自己喜欢的一句话之前,他都要翻出一些幻灯片然后找出一堆单词,然后继续。这有点像用非常低级的原始语言去构建一个非常复杂的生产级别的应用程序。 你必须构建大量的抽象概念,以便在此过程中提高自己的效率。 正因为如此,模式自然会随着时间的推移而出现。 当我们说 React 是真的容易上手的时候,我们是否有些忽略了你或多或少需要学习 Redux 的事实。在你认为自己是一名真正的 React 开发人员之前,你必须先去了解 HOC 高阶组件、render props。然后现在,你又要去学习 Hooks 以及在 JS 中使用 CSS 的各种方式。 尽管这些模式随着时间的推移而出现,但它们却变成了半需要的状态。如果你不了解这些,你真的可以称自己是一名 React 开发人员吗? 而这些东西往往没有官方文档。如果你去 React 官方网站,它是不会告诉你某个 CSS 和 JS 的解决方案的,你必须自己去研究并学习它。 这就是为什么使用者真的需要有自主学习能力的原因所在。 现如今,生态系统发展太快可能会导致碎片化和使用者的不断流失。我相信早期 Flux 思想的追随者,会发现每天都有一个新的 Flux 方案具体实现,然后每个 Flux 的具体实现都会对应新的 CSS/JS 的实现。 这样很好,同时好处就是总会有新的想法出现。同样,我们也在努力寻找最佳方案。 但是,这对于那些只想跟在后面去使用的人来说是不好的,你会不断的有FOMO思想(Fear of Missing Out,害怕错过),总是怕错过下个最好的东西。 3、Large Scope我们已经说完了小职责范围(设计理念)的缺点。现在让我们来谈谈大职责范围的一些优点。 优点 ![]() 最明显的优点是可以通过构建抽象概念来解决最常见的问题。 如果你只是想做一些开发,我只需要一个路由、一些动画以及一个 HTTP 客户端来获取一些数据。 像 Angular 这样的框架则提供了所有你需要的东西,来实现这一目标。 事实就是你不必到处查资料,你只要照着它的文档去用框架,你就可以搞定这些事。 集中式的设计确保了它本身与其生态系统的一致性。 当你遇到一个具体问题的时候,你不必去找一些不同的解决方案,你只需要看看框架它让你做什么,最大的可能就是它(框架)对此已经有解决方案。所以你压根不必去挖掘所谓的10种不同的解决方案,然后找出对你案例最佳的那一个。 缺点 ![]() 现在来说下缺点,这样的缺点就是会有一个更高的学习门槛。 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |