前端每週清單第 55 期: MobX 4 特性概覽,iOS Hacks 分享, 分散式事務詳解

王下邀月熊發表於2018-03-20

作者:王下邀月熊 編輯:徐川

前端每週清單專注大前端領域內容,以對外文資料的蒐集為主,幫助開發者瞭解一週前端熱點;分為新聞熱點、開發教程、工程實踐、深度閱讀、開源專案、巔峰人生等欄目。歡迎關注【前端之巔】微信公眾號(ID: frontshow),及時獲取前端每週清單。

新聞熱點

國內國外,前端最新動態

  • Firefox 59.0 釋出: 近日,Firefox 釋出了從桌面端到移動端的各平臺更新版本;特別是對於桌面端的 Firefox,我們優化了頁面載入時間,增加了能夠編輯與裁剪 Firefox 截圖的工具,並且提升了 Firefox 首頁的站點排布體驗。值得一提的是,對應的 MAC 版本中引入了 Off-Main-Thread Painting (OMTP) 技術,從而提高圖形化渲染的效率;而在 Android 版本中則增加了對於 HLS 協議的支援。

  • Let’s Encrypt 宣佈支援 ACME v2 與萬用字元證照: 近日 Let’s Encrypt 正式宣佈支援 ACME v2 與萬用字元證照。ACME v2 是 ACME 協議的更新版本,接收了來自 IETF 標準以及行業組織的建議;而萬用字元協議則允許使用者使用單一證照對於所有的子域名開啟 HTTPS 功能,其大大簡化了證照管理的複雜度,推進了 Web HTTPS 化的程式。同時,Let’s Encrypt 獲得了 IdenTrust 交叉簽名,這意味著只需要在伺服器的證照鏈中配置好交叉簽名,各瀏覽器客戶端會自動處理其他任務。

  • 2018 Stack Overflow 開發者調查報告: 今年,超過十萬名開發者參與到了調查之中,為我們提供了充足的資料來源。今年的報告中,值得注意的點包括:DevOps 與機器學習已然成為了現今軟體行業最重要的趨勢,開發者們大都樂觀於人工智慧帶來的變革與可能性,而不同意其潛在的威脅。去年 Python 的流行程度已經超過了 C#,成為了增長最快的語言,就像前些年它超越 PHP 那樣;另外值得一提的是,Rust 成為了去年最受歡迎的語言,Kotlin 緊隨其後。

開發教程

步步為營,掌握基礎技能

  • MobX 4: 更好,更小,更快:近日 MobX 釋出了 4.0 大版本更新,本文則是對於該版本的那些引人入勝的特性進行介紹。這些特性包括了:不使用裝飾器語法的裝飾器,Observable 物件的動態擴充套件,內建的用於簡化非同步流程的 await when 以及 flow 函式,用於自動化進行資料抓取的 onBecome(Un)Observed,生產環境構建優化等。更多相關內容參考 現代 Web 開發–架構優化篇

  • 非同步剪貼簿操作: 過去的數年中,各瀏覽器基本上都在使用 document.execCommand 來進行剪貼簿互動。這種方式雖然提供了簡單而且廣泛接受的複製與貼上操作,但是也帶來了一定的缺陷:只能同步訪問剪貼簿,並且只能直接讀寫 DOM 元素。而 Chrome 66 提供了新的 Clipboard API,則為我們提供了另一種非同步式的剪貼簿操作方式,本文即是對該機制與介面規範的詳細介紹。更多相關內容參考 現代 Web 開發–基礎篇

  • 不同方案的 APK 尺寸對比: 現在已經有了很多種不同的開發應用的方式,從傳統的原生開發到花式跨平臺解決方案;或許很多人會好奇不同開發方案對於最終包體的大小影響幾何,本文即是嘗試用不同的方式實現相同功能的應用,並且比較他們的大小。文中給出的對比資料如下:Java 約 539KB,Kotlin 約 550KB,React Native 約 7MB,Flutter 約 7.5MB;更多相關內容參考 大前端的工程實踐–Android 篇

工程實踐

立足實踐,提示實際水平

  • 使用 GraphQL 替代 Redux: GraphQL 是著名的服務端查詢語言,Redux 則是客戶端狀態管理框架,二者貌似風馬牛不相及,本文卻討論如何使用 GraphQL 替代 Redux 在專案中的角色。實際上,大部分狀態管理相關程式碼都是用來合併與操作多個 REST 埠的程式碼,或者通過 sagas, middleware, thunks 等方式來順序獲取資料,這些也正是 GraphQL 閃耀的地方,本文即是討論了這種可能性;更多相關內容參考微服務架構與實踐–Node.js 篇

  • 整合自 Twitter 的 iOS Hacks: 本系列文章著眼於定期整理分享來自 Twitter 的 iOS 開發除錯技巧、Xcode 效能優化技巧以及 Swift 最佳實踐等內容;本週提供了譬如如何提升 Xcode 編譯效能,如何提高程式碼的可讀性與可維護性等內容。更多相關內容參考大前端的實踐–iOS 篇

  • 載入第三方 JavaScript 程式碼: Addy Osmani 近日編寫了一篇關於 JavaScript 中載入第三方庫的文章,討論瞭如何正確的使用第三方庫。第三方庫為我們提供了可被整合的靈活功能,促進了 Web 的動態性、互動性以及連線性。本文,則是討論在載入第三方庫過程中可能遇到的問題:如何保證關鍵路徑載入的效能,隱私性,安全性,避免不可預測或者不可控的結果。更多相關內容參考 Web Performance Optimization MindMap

深度閱讀

深度思考,昇華開發智慧

  • Clean 架構程式碼導讀: 作者近來開源了名為 MovieNight 的示例專案,本文則是其過去幾周應用架構方面的相關思考的分享。本文首先介紹了 Clean Architecture 的基本元素,分析了各個元件間的層級關係,然後以具體的程式碼進行實踐介紹。更多相關內容參考軟體工程基礎-軟體架構篇

  • How JavaScript works 系列:渲染引擎與優化技巧: 當我們在構建大型的 Web 應用時,需要提醒自己我們並不僅僅寫好程式碼就萬事大吉了,還需要考慮到程式碼與執行環境之間的互動。理解 JavaScript 的執行環境,瞭解它的工作原理與元件構成,能夠讓我們編寫出更好的,更穩健的應用。本文即是對於瀏覽器的內部原理進行分析介紹,並且分享了一些效能優化的技巧;更多相關內容檢視現代 Web 開發導論

  • 分散式事務概述: 本文是對於分散式系統以及分散式事務的概述,包含了以下內容:分散式資料模型,樂觀模型與悲觀模型;原子性,多版本併發控制與基於網路的鎖同步;一致性,兩階段提交協議,Paxos,Raft;隔離性,映象隔離,序列隔離;永續性等。更多相關內容參考 Distributed System CheatSheet

開源專案

樂於分享,共推前端發展

  • Rough.js: Rough.js 是輕量級的(約 8KB),基於 Canvas 的手繪樣式的繪相簿。Rough.js 為我們提供了多種不同的圖形單元,來繪製直線,曲線,弧線,多邊形,圓形以及橢圓形等,同時其還支援根據路徑繪製 SVG。

  • TOAST UI Chart: TOAST UI Chart 是新近開源的,能夠執行在包括 IE8 在內的各種瀏覽器中。TOAST UI Chart 提供了直方圖、折線圖、散點圖、餅圖、熱力圖等多種型別格式的圖表,可以直接檢視原文了解安裝與使用的細節。

  • fkill-cli: fkill-cli 是非常好用的跨平臺程式關閉工具,它能夠執行在 macOS,Linux 以及 Windows 作業系統上。我們可以直接通過冒號來指定需要關閉的佔用該埠的程式,也可以無引數方式進入到互動選擇介面,通過程式名進行快速篩選。

巔峰人生

  • 霍金:手握日月摘星辰,世間無我這般人: 3 月 14 日訊息,物理學家霍金去世,享年 76 歲。這位英國科學家因黑洞和相對性的開創性著作而聞名,並撰寫過幾本科普著作,包括《時間簡史》。55 年來,病魔逐漸佔據了他的軀體,但他的思想卻蔓延到了整個宇宙。仰望星辰的人,現在成了星辰。

前端之巔

「前端之巔」是 InfoQ 旗下關注前端技術的垂直社群,加入前端之巔學習群請關注「前端之巔」公眾號後回覆 “ 加群 ”。投稿請發郵件到 editors@cn.infoq.com,註明 “ 前端之巔投稿 ”。

前端之巔微信底圖-5.jpg

來源:https://juejin.im/post/5ab097c66fb9a028e46e77a8