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

2020排行榜!Realworld前端框架对比

时间:2023-03-13 02:29:08 科技观察

本文转载自公众号《读书芯》(ID:AI_Discovery)过去三年我们都在讨论这个话题,那么今年会发生什么?首先,本文并不是关于未来前端选择的比较,而是从三个方面(性能、大小、类似应用下的代码行数)进行小范围的简单比较。读者注意:本文比较的是真实世界的软件,而不是开发中的软件,后者通常缺乏足够的知识和想法,因此难以实施。由专家撰写或审阅-理想情况下,技术领域的专家将评估该项目。以某种方式标准化-项目存在符合特定规则的规范,提供后端API、静态标记和样式。正在比较哪些库/框架?在撰写本文时,Realworld存储库中有24个管道实现,截至撰写本文时,它们之间的从属关系并不重要,唯一的判断标准是它是否出现在RealWorld存储库页面上。你在看什么指标?性能——这个应用程序需要多长时间才能显示内容并可用?大小——应用程序有多大?我们只会比较编译后的JavaScript文件的大小。HTML和CSS对所有变体都是通用的,并从CDN(内容分发网络)下载。所有技术都可以编译或转译为JavaScript,因此只调整该文件的大小。代码行数——根据规范创建一个RealWorld应用程序需要多少行代码?有些应用程序很麻烦,但应该不会产生重大影响。我们量化的唯一文件夹是每个应用程序中的src/。无论是否自动生成,您仍然需要维护它。标准#1:性能我们通过Chrome附带的LighthouseAudit查看性能分数,范围为0到100。详情请见《Lighthouse计分指南》。ReviewSetupLighthouseReviewSetupRationalforAllTestedApps越早开发的应用程序,人们越早开始使用它,用户体验相对更好。性能得分(0–100)—越高越好注释注意:由于缺少演示应用程序而跳过了PureScript。总结通过LighthouseAud可以看出,今年未维护/未更新的应用程序跌破了90个大关。当然,如果分数>90,可能差别不大。AppRun、Elm和Svelte的表现令人印象深刻。标准#2:大小传输大小取决于Chrome网页选项卡、服务器提供的GZIP响应标头和文本。这取决于框架的大小和添加的任何其他依赖项。此外,构建工具可以很好地清理捆绑包中未使用的代码。较小的文件下载速度更快,需要的解析也更少。文件大小:KB-文件越小,传输速度越快Comments由于缺少演示软件而跳过了PureScript。Angular+ngrx+nx,请不要怪我使用Angular+ngrx+nx-检查ChromeDevTools网络选项卡,如果有计算错误,请在评论中查看。Rust+Yew+WebAssembly包括also.wasm文件总结Svelte和Stencil社区将其压缩到20KB以下的伟大工作确实是一项成就。Criterion#3:LinesofCodecloc可以统计每个repository的src文件夹中的代码行数,空行和注释行不算,有什么意义呢?如果调试程序是消除软件缺陷的过程,那么编写程序就是将软件错误放入的过程——EdsgerDijkstra的基本原理这说明给定的库/框架/语言是多么简洁。按照规范,你需要多少行代码才能实现一个功能基本相同(有的功能更多)的应用。#代码行-越少越好注释Svelte被跳过,因为cloc无法处理.svelte文件。由于cloc无法处理.riot文件,因此跳过了Riotjs-effector-universal-hot。Angular+ngrx:使用/libs文件夹完成的LoC计算仅包括.ts和.html文件。你有什么意见?欢迎讨论。总结只有重新架构的Imba和ClojureScript才能实现1000LoC以下的应用。Clojure以极富表现力而著称。Imba首次出现(去年是cloc,没有.imba文件格式),看起来它会一直存在。如果您关心LoC,您就知道该怎么做。