当前位置: 首页 > 科技观察

逆向思维:如何判断一个JS框架不符合实际需求?_0

时间:2023-03-22 13:27:37 科技观察

JS框架可以说是层出不穷,几乎每周都有新的框架与用户见面。在今天的文章中,我们将基于逆向思维,考虑如何得出一套JS框架不符合实际需求的结论。作为一名JavaScript架构师、培训师和导师,我经常面临这样的问题——你最喜欢的框架是什么?或者哪个框架最好?而我给出的两个答案,往往会让提问者大吃一惊。目前,我个人最喜欢的框架是ReactJS。但是如果要为企业选择框架,我给出的答案是Angular2.0。但是你更应该问的可能是“为什么要准备两个答案?”或者更进一步,“我们如何完成框架选择过程?”接下来,我会和大家分享一些使用框架的实际感受。为了公平起见,先说说我个人的喜好吧。我个人更喜欢以下几套框架:ReactJSAngular2Angular1ExtJS5或6ExtJS4而如果你想为大型企业推荐一个框架,答案会略有不同:Angular2Angular1ExtJS5或6ReactExtJS4考虑了这些先决条件,让我们详细考虑下一个问题。谁将使用该框架?在我工作的公司里,大部分员工都是Java程序员。这意味着JavaScript及其各种衍生版本可以被大家快速熟悉和掌握。然而,虽然这些框架之间有相当大的共性,但也有一些差异需要强调。目前Ext或者Angular2的发展势头可能更好一些,因为它们能够以更接近Java或者C#的方式产生效果,从而吸引更多相关的开发者加入。学习曲线陡峭吗?那么在上面提到的框架中,分别学习需要多少时间呢?要找出答案,我们还需要考虑以下问题:是否可以购买支持来回答技术问题?文档是否清晰明确?该框架有多受欢迎?您的团队中是否已有相关专家?该框架是否有公共Slack频道?框架开发者是否关注企业客户的需求?话虽如此,ExtJS与Angular2的优势应该已经很明显了,这正是我总结我最喜欢的两个选项的方式。框架是否提供了良好的约束机制?我记得当VB1.0刚出来的时候,每个人都兴奋地高呼“看看它构建和运行的速度有多快”作为选择的理由。没错,VB允许你以任何方式编写代码,以达到你的目的。但历史告诉我们,只要框架本身还提供一些结构,用户仍然有可能写出糟糕的代码,而这种糟糕结果的比例与框架提供的结构数量正相关。当与多个开发人员一起工作时,有些人可能会要求其他成员关注代码结构,而不仅仅是“运行”。基于这个问题,Angular2再次脱颖而出,而Ext垫底。Ext虽然提供了所谓的MVC和MVVM机制,但并不能保证开发者编写的代码结果与他们的设计模式相匹配。在MVC中,我什至不确定作者是否知道他们正在开发什么。行业标准为了使Ext的运行效果更接近于桌面开发环境,它可以生成HTML并利用其布局机制来控制各个元素在屏幕上的显示位置。上面提到的其他框架都是使用CSS来进行布局控制的。Ext的好处是我不需要懂HTML或CSS就可以达到想要的显示效果。但缺点是,如果我想尝试一些超出Ext支持能力的效果,我将面临巨大的障碍。此外,使用HTML和CSS会大大增加屏幕渲染时间,尤其是当组件嵌套超过三层时。此外,Ext使用了一种特殊的类定义机制,使JavaScript看起来更像Java和C#。这不禁让人担心,随着ECMAScript标准的演进和自身类似机制的引入,Ext选择的方式在未来是否会得到广泛支持。Ext还采用了专门的构建过程。虽然这绕过了大部分构建障碍,但您可能会问,“为什么不使用像gulp、grunt或npm脚本这样的标准呢?”尽管Angular2主要使用TypeScript,但Angular2与Ext的区别在于:1)虽然强烈推荐,但您不一定需要使用TypeScript;2)TypeScript只负责实现部分功能,实际效果与ECMAScript标准类似。因此,Angular2的发展前景显然更加光明。在这方面,另一个值得关注的框架是ReactJS。它的应用构建过程全部采用行业标准,但是这个单元测试框架不允许你在测试中使用Karma。可测试性如何?毫无疑问,我个人要求所有框架都具备单元测试能力,所以ExtJS4直接被淘汰。你可能会强调MVC可以用来测试控制器,但这是MVC的一个特性,并不是Ext本身实现的。另一方面,React拥有最好的测试能力,这也是我支持它的原因。但我认为它对于企业客户来说仍然不是一个好的选择,因为它的学习曲线很长而且文档很差。研究工作做完了,原则性的问题到这里已经很清楚了,问题是我们如何提前准备?大多数特定信息往往要等到员工实际使用一套框架后才会出现。最好的方法是听取框架老用户的意见。在测试框架时,我最初的问题是,“我可以在Internet上找到多少关于这个框架的信息?”第二个问题是,“这个框架有多受欢迎?”最后,我会联系这个框架的反对者,听听他们对它的负面评价。如何判断一个框架不符合实际需求?现在回到标题——框架选错,听信推销员的虚张声势,不要问任何问题,忽略前面提到的所有考虑因素。然后后悔自己的一时冲动……原标题:如何不选择框架