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的存儲資源,這使用戶能夠充分利用雲的可擴展性和價格優勢,同時還能繼續運行本地工作負載。