1. 移动APP开发框架盘点2:Web移动前端框架大全
开源项目其实有一个成熟周期,这个周期大概是三年左右,自React框架在2013年发布并引爆了前端框架的大潮,这个属于前端的周期就此开始了。
之后在2015年5月开源的React Native又开启了属于Web移动前端的周期,15-16年,18-19年,21-22年正好就是属于移动前端的三个爆发点。
三年前,在第一个成熟收获期,我盘点了移动开发框架。在这第二个成熟收获期,理所当然要来盘点一波。
不过,当我点开github项目的code-frequency时,还是被这个准到吓人的周期猜想惊呆了,先给你们看一波,剩下的自行验证。
1、https://github.com/youzan/vant/graphs/code-frequency
2、https://github.com/quasarframework/quasar/graphs/code-frequency
再来说第二个比较有意思的发现,停止维护的项目绝大多数是Vue框架项目。
盘点开始的时候我还觉得React框架处于绝对劣势,到完成时我发现React无论在选择面还是成熟度上都超过了Vue。
原因我这里就不分析了,反正大家都有自己的看法。
网页类框架就是前端组件框架,这一次虽然有大量项目停止维护,但是也有很多项目坚持了下来,而且还涌现出了一批新项目。
大厂占了主导,因为这些年大厂在移动开发上的需求,远高于其它方面。个人项目要坚持确实不易。
本来是想要做一个验证项目,把所有框架都试用一遍并给出推荐度的。由于进度太慢,还是下一次再发吧。
这次的重点是渐进类框架,就是所谓多端同构框架(小程序框架)。这几年国内的重点的各种小程序平台,所以多端框架的需求很是旺盛。
不过大多数先行者都没挺过来还是让我很意外,只有Taro成功了,想想还是有很多让人唏嘘的东西。
在这里还是先预测一波吧,因为这一类框架最变化最大,最终还是有很多框架要出局的。
渐进类框架是一个过渡性的产品,最终会变成桥接类框架的一部分,所以,与桥接类框架协同才是框架的出路。
这个赛道基本全是大厂了。
腾讯新一代跨端开发框架Hippy
Hippy一看就是淘宝Weex的对标项目,Kpi功能全面压制。所以官方支持 React 和 Vue 两种主流前端框架。在Weex2019年实质停更后发布,要不要这么卷?
Hippy 2.x 架构主要分成三层,UI(JS) 层 Hippy-React 和 Hippy-Vue 负责驱动 UI 指令生成;中间层 C++ HippyCore 负责抹平平台差异性和提供高性能模块;渲染层 Android 和 iOS 负责提供终端底层模块、组件,并与布局引擎通信。
对Weex惨遭遗弃,我上次就说过:“ReactNative提供工具,Weex提供框架,将平台差异化屏蔽(Write Once, Run Everywhere)。所以Weex则注定功能相对弱小,并且坑比较多。”Weex最终下马也是必然的,淘宝又发布升级版北海,为了实现(Write Once, Run Everywhere),它采用自绘,而且是基于Flutter自绘。
所以Hippy3.x就一如既往的Kpi功能层层加码,很有腾讯风格。在未来的 3.x 中业务与渲染层中的具体实现可根据用户实际场景进行切换:业务层上不再局限于 JS 驱动,还可选择(如:DSL/Dart/WASM 等)其它语言进行驱动;在渲染层中,渲染引擎除了支持现有原生(Native)渲染之外,还可以选择其他渲染 Renderer,如 Flutter(Voltron) 渲染。
“Kraken 北海”是一款高性能Web渲染引擎。底层基于 Flutter 进行渲染。
Kraken 不限制上层开发者使用的框架,无论你是使用 Vue 、Rax 还是 React 都可以开发 Kraken 应用。
Kraken 的 runtime 通过 JS Engine Binding 的方式提供了一系列 Web 标准的 API 接口,调用相应 API 会执行相关逻辑并创建一系列需要发送给 Dart 层处理的指令。
Kraken 其实就是一个小程序平台,而且追求全平台完全一致。我虽然认为各平台不一致是很自然的事情,但是也表示理解,毕竟别人吹牛有当真的传统(KFC表示认同)。
Kraken 现在也是一个小号浏览器,所以它的主要工作就是抠标准,毕竟它是一款基于 W3C 标准的高性能渲染引擎。
最后,我劝淘宝领导定Kpi要理智些,毕竟Hippy4我还蛮期待的。
滴滴出品的超轻量级动态化跨端开发框架,主打轻量和实用。
Hummer 以 JS 引擎为基石,目前已支持 JavaScriptCore、Hermers、QuickJS 等业内知名 JS 引擎(这里本来还有个V8的,我删除了,源码里面没有,Kpi需要)。再配合经过调优的 Yoga 布局引擎,抹平了两端视图布局差异(性能更佳的自研布局引擎开发中)。顺便提一下,Hippy采用V8(功能更强)自研布局引擎(性能更佳)。
Hummer 的特点是抛弃了业界其他动态化跨端框架普遍使用的DSL层和VDOM层,因此原生 Hummer 不具备前端开发常用的响应式编程的能力,但同时换来的是接近原生开发的体验和性能。再以原生 Hummer 为基础,在此之上开发了一套基于MVVM架构的开发框架 —— Tenon ,通过 Tenon,可以把使用 Vue/React 编写的代码,转换成原生 Hummer 的代码。
Hummer也是一个小程序平台,而且超轻量。如果想要无限提升自己APP的能力,可以考虑嵌入Hummer。
Web移动前端框架正在迎来第三个高速发展期,各类框架得到极大繁荣。
个人在具体项目的贡献已经微乎其微了,创新、架构创新是唯一制胜的手段,这也是我看好React的根本原因。
最后,还是想做点微不足道的 探索 ,现在前端组件库层出不穷,更换组件库带来的代价有点大。想创建一个框架,来实现上次说的组件公约数和公倍数,无缝切换组件库。理论上支持所有组件库 ,也能为后来者提供弯道超车的机会。我想大厂可能没有需求,也不会愿意发布这种框架,毕竟都是平台部门说了算。
这个库就是useMobile,当然分为useMobileReact和useMobileVue。下次先发布useMobileReact。等我发布后,再来填上面表中缺的推荐度。
原文地址: https://www.cnblogs.com/windfic/p/16019457.html
2. aws(亚马逊WEB服务)详细资料大全
AWS即Amazon Web Services,是亚马逊(Amazon)公司的云计算IaaS和PaaS平台服务。AWS面向用户提供包括弹性计算、存储、资料库、应用程式在内的一整套云计算服务,能够帮助企业降低IT投入成本和维护成本。
AWS提供了一整套基础设施和应用程式服务,使几乎能够在云中运行一切应用程式:从企业应用程式和大数据项目,到社交游戏和移动应用程式。
基本介绍 中文名 :aws 外文名 :Amazon Web Services 程式类别 :应用程式 项目基础 :大数据项目 官网 ::aws.amazon// 服务介绍,分类,竞争对手,存储辞汇表, 服务介绍 很多公司选择AWS作为其IT解决方案,AWS有很多云服务,以下介绍AWS中几类比较重要的服务。 分类 计算类: EC2(Elastic Compute Cloud) 是一种弹性云计算服务,可为用户提供弹性可变的计算容量,通常用户可以创建和管理多个虚拟机,在虚拟机上部署自己的业务,虚拟机的计算能力(CPU、记忆体等)可以根据业务需求随时调整。 Elastic IP Addresses(弹性IP位址) – 弹性IP位址是为动态云计算设计的静态IP位址。一个弹性IP位址是和你的账户相关,而不是和你的一个特定实例相关。不像传统的静态IP位址,弹性IP位址可以通过重新匹配你的共有IP位址到你账户任意的实例,从而让你可以忽略实例或者可用区域的错误。 连线本质上是通过NAT1:1的匹配每个Elastic IP和Private IP。 Elastic MapRece :EMR采用运行在亚马逊EC2和S3的托管Hadoop框架上。以立即获得满足需要的计算能力,例如网页索引、数据挖掘等数据密集型任务,轻松、经济地处理海量数据,不用担心对Hadoop集群耗时的设定、管理或调优。 AS(Auto Scaling)自动伸缩服务 :允许用户根据需要控制亚马逊EC2自动扩大或减小计算能力。用户利用AS可以无缝地增加EC2的实例数量,以保证使用高峰期的性能,也可以在需求停滞时自动减少以降低成本。AS特别适合那些需求按小时、天或周规律变化的应用程式。 AS由亚马逊CloudWatch控制,并且用户不必支付CloudWatch以外的其他服务费用。 ELB (Elastic Load Balancing)弹性负载平衡 :自动将入口流量分配到多个亚马逊EC2实例上。弹性负载平衡在实例池中不断检测不正常的实例,并自动引导路由流量到正常的实例上,直到不正常的实例恢复正常。客户可以在单一的数据中心进行负载平衡,更可以在跨中心的套用上获得相同的功能。 兼容IPv6,数据来自于CloudWatch 部署&管理类:ACW (Amazon CloudWatch)云监控服务: 监控亚马逊自身提供的云资源以及在云上运行的应用程式。提供可视化监测,并且可以利用API调用进一步处理监控的数据。 Amazon WorkSpaces: 是一种虚拟桌面服务,托管在Amazon的云中。用户可以选择任何终端设备(如笔记本电脑、iPad、Kindle Fire或Android平板电脑)访问 Amazon WorkSpaces,获得与传统办公桌面一样的使用体验,更能享受节约设备成本、保证个人数据安全、随时随地办公等便利。 网路类:
R53(Amazon Route 53)亚马逊53号路由: Domain Name System web service(网路域名服务)。提供从基础设施(EC2实例,ELB,或者S3)到IP位址的映射。 VPC (Virtual Private Cloud)虚拟私有云: 在亚马逊公有云之上创建一个私有的,隔离的云。可以像在自己的数据中心一样定义VPC的拓扑结构。可以和公司现有的数据中心互通。可以利用NAT使得子网不暴漏区域网路IP,公用一个IP位址与外界通讯。通过NAT设定访问控制,保护数据安全性。 存储类: S3 (Simple Storage Service) : 亚马逊简单存储服务(S3)是一种网路存储服务,可为用户提供持久性、高可用性的存储。用户可以将本地存储迁移到Amazon S3,利用 Amazon S3 的扩展性和按使用付费的优势,应对业务规模扩大而增加的存储需求,使可伸缩的网路计算更易于开发。 EBS (Elastic Block Store)弹性数据块存储: EBS卷是独立于实例的存储,可作为一个设备动态连线到运行着的亚马逊EC2实例上。EBS特别适合于单独需要一个资料库、档案系统、或访问原始块存储的应用程式。 套用服务类: SQS (Simple Queue Service)简单讯息伫列服务: 提供讯息存储伫列,使讯息可以在计算机之间传递,在执行不同任务的分散式套用组件之间轻松的转移数据,既不会丢失信息,也不要求每个组件都保持可用。SQS可以与亚马逊EC2和其他AWS的基础设施网路服务紧密结合在一起,方便地建立自动化的工作流程。SQS以网路服务的形式运行,对外发布一个web讯息框架。Inter中任何计算机都可以添加或阅读讯息,而不必安装任何软体或配置特殊的防火墙。使用SQS的套用组件可以独立运行,不需要在同一网路中使用相同的技术开发,也不必在同一时间运行。 SNS (Simple Notification Service)简单通知服务: 在云中安装、处理或传送通知。它为开发人员提供了一种从应用程式发布讯息,并立即传送给订阅者或其他应用程式的能力,用于创建通知某应用程式(或客户)某方面的主题。客户订阅这些主题,并使用客户选定的通信协定(例如,HTTP,电子邮件等)发布讯息。亚马逊SNS的潜在用途包括监控,工作流系统,时间敏感的信息更新,移动套用等等。 资料库类: SDB (Amazon SimpleDB)简单资料库: 非关系型数据存储服务 RDS (Relational Database Service): 是一种基于云的关系型资料库服务,用户可以在云中配置、操作和扩展关系资料库。Amazon RDS 支持 MySQL、Oracle、Microsoft SQL Server 或 PostgreSQL 等关系型资料库。用户无需本地维护资料库,由Amazon RDS为用户管理。 支付类: FPS (Flexible Payments Service)灵活支付服务
ADP (Amazon DevPay)亚马逊支付设计 内容交付类: CloudFront 云前 :整合亚马逊其他云服务产品,完成高效快速的分散式内容互动。 人工服务类: AMT (Amazon Mechanical Turk)机械的土耳其人: “机械的土耳其人”一词来源:这个名字源自于臭名远扬的能下象棋的“自动装置”,它是匈牙利男爵沃尔夫冈·冯·肯佩伦(Wolfgang Von Kempelen)1770年建造的。这个木制机器外形像一个坐在大机箱前的土耳其魔法师,它能自动而快速地下象棋,用复杂的齿轮和杠杆系统来移动棋子。在维也纳皇宫的首次表演中,它就迅速击败了对手Cobenzl伯爵,让在场的皇室成员看得十分高兴。从此关于这个惊人聪明的机器人迅速闻名于世,于是肯佩伦带着它在欧洲各地表演,击败了一系列着名的挑战者,包括拿破仑和班杰明·富兰克林。直到几年之后,这个骗局才被揭穿。原来机箱里藏了一名象棋大师,他用一个磁铁系统来跟踪对手的举动并移动自己的棋子,这个人实际是在 模拟一种人工智能 。 虽然计算技术不断发展,但仍有很多事情人类做的比计算机更有效,比如确定照片或视频中的对象,执行重复数据的删除,抄录音频资料或研究数据的细节。一般来说,完成这样的任务通常需要雇用大量临时工人(这是耗时、昂贵和难以企及的),或者干脆没法完成。 亚马逊机械的土耳其人(AMT)完成的是一种类似模拟人工智能的业务,它把人“藏”在一个软体程式中,用他们执行电脑不太善于完成的任务。例如假设程式设计师在写一个套用软体程式,其中有一个步骤是识别数字照片中的建筑物——这个任务会让电脑为难,但由人去做却很容易。这位程式设计师在用AMT服务时,可以编写几行简单的原始码,从而获取必要的情报。在该程式运行到某个指定时刻,在亚马逊公司的Turk网站上会自动贴出一个关于“由人执行任务”的要求,而人们会争着完成这项任务,以换取程式设计师设定的报酬。依据亚马逊公司在其网站上的解释,AMT表明人与电脑之间不寻常的颠倒关系:“当我们想到人与电脑的接口时,我们通常认为人是提出要完成的任务的一方,而电脑是完成运算任务并提供结果的一方。假使这个过程倒过来,由电脑程式要求人完成这个任务并返回结果,那又会如何呢?Mechanical Turk就是这么做的,它把人的行为和判断变成了软体程式中的功能。不是电脑为我们工作,而是我们为电脑工作。" 基于以上的弹性计算、存储、资料库、应用程式服务组合,AWS可以为企业提供完整的IT业务解决方案。最关键的是,AWS是按需使用、即用即付的模式,能够灵活应对企业快速多变的IT需求。 竞争对手 AWS目录服务 vs. Azure AD
亚马逊的最新目录服务和Azure AD(微软的云目录)展开竞争。Azure AD能够很好地与其他Windows产品协同工作。单点登录功能意味着用户登录一次就可获得支持AD的套用的许可。 相比亚马逊的服务,微软的服务产品还更好地集成了第三方工具,例如Salesforce和Box。因为微软的目录服务是很早就出现的功能,能够与更多的管理工具集成。 亚马逊一直在努力向企业领域发展。新目录填补了明显的空白,帮助企业更有效地连线AWS和微软。虽然亚马逊的云目录达不到微软目录的当前水平,但随着云市场的继续发展预计将获得更多的功能。 存储辞汇表 AWS数据存储服务辞汇表 Aurora: 亚马逊Aurora是一个与MySQL兼容的关系型资料库,而MySQL是一个从结构化查询语言(SQL)衍生出来的流行开源资料库管理系统。用户可以通过亚马逊关系型资料库服务来管理Aurora的配置、打补丁、备份和恢复等。Aurora可自动扩展,可对传输过程中的数据进行加密。 资料库迁移服务:AWS资料库迁移服务可让企业用户在不同云之间或内部资源之间进行资料库迁移。资料库迁移服务不仅可作为AWS云的一个网关,它还允许非AWS资料库之间的同质迁移,并支持大部分的常用资料库。在迁移过程中,源资料库可保持正常运行,从而减少了停机时间。 DynamoDB: 亚马逊DynamoDB是一个专为满足低延迟和高可扩展性需求而设计的托管NoSQL资料库服务。DynamoDB支持文档和key-value存储模式。其高性能和灵活性特点令其特别适合于移动、网路、游戏以及物联网等套用。 ElastiCache:亚马逊ElastiCache是一个AWS托管的快取服务,它遵循开源Memcached系统,可减轻资料库运行负载和加快套用运行。 弹性块存储(EBS):亚马逊弹性块存储可用于弹性计算云(EC2)实例的高可用性块级存储系统。它最适用于存储永久型数据,而不是动态数据。AWS用户可以先选择一个EBS存储卷类型和容量,然后将其连线到一个EC2实例。存储卷的副本可以保存为快照。 Glacier:亚马逊Glacier是一个“冷”存储服务,它可存储不常被访问的数据,从而作为其他AWS数据存储选项的一个更廉价的替代存储选项。 Import/Export Snowball:亚马逊Import/Export Snowball是一种物理传输设备。AWS可使用它来存储内部的海量数据。然后,AWS在用户返回该设备后可导入数据。反之,该设备也可用于AWS向用户导出数据。Snowball存储设备最多可传输50TB数据。 Redshift:亚马逊Redshift是一个完全托管的AWS数据仓库。Redshift可连线基于SQL的客户端和商业智慧型工具。Redshift提供快速的查询与I/O性能,这使得它特别适用于大数据分析套用。 关系型资料库服务(RDS):亚马逊RDS提供了多种资料库引擎选项以帮助用户对关系型资料库进行迁移、备份和恢复等操作。使用中的代码和应用程式以及现有资料库都转移至RDS。RDS可自动完成打补丁和资料库软体备份以便数据恢复。 简单存储服务(S3):亚马逊S3是一个可扩展的对象存储服务。AWS用户可以通过网路接口在网路的任意位置存储和检索数据,且只需为所使用的存储资源支付费用。S3提供了多个存储类,并可与各种亚马逊云服务协同运行。 存储网关:AWS存储网关连线了本地设备和基于AWS的存储资源,这使用户能够充分利用云的可扩展性和价格优势,同时还能继续运行本地工作负载。