阿里雲前端周刊 - 第 34 期
推薦
1. Node.js 中內存溢出與內存膨脹調試
https://tech.residebrokerage.com/debugging-node-js-memory-problems-d450787d9253
內存問題是服務端應用程序的常見痛點之一,本文作者近日就受困於內存泄露(Memory Leak)與內存膨脹(Memory Bloat),本文即是他的調試經驗分享。所謂的內存泄露是指無用的內存卻未被回收釋放,而內存膨脹指程序使用了過量的內存;作者介紹了使用堆快照以及 Chrome DevTools 來輔助回溯、搜集、分析與解決這些內存問題。如果想要了解 Web 應用中 JavaScript 的內存調試可以參考內存分析與內存泄漏定位一文。
2. 擴展 React 服務端渲染的實踐
http://arkwright.github.io/scaling-react-server-side-rendering.html
作者在本文中分享了,其在近期擴展 React 服務端渲染過程中的實踐經驗;雖然文中很多的討論點都是 React 相關,但是面臨的通用擴展挑戰,或者解決的問題都是值得重複借鑒的。本文並沒有直接討論 React 服務端優化,而是從常見的負載均衡談起,介紹了常見負載均衡的演算法與策略;然後討論了客戶端渲染的兜底方案,即當流量過大導致服務端無法及時響應的情況下,如何給用戶合適的反饋。接下來本文還討論了分級卸載、組件緩存、依賴處理、同構渲染等內容;
3. 前端測試金字塔,重新思考你的測試
https://medium.freecodecamp.org/the-front-end-test-pyramid-rethink-your-testing-3b343c2bca51
本文著眼於前端測試方面,從所謂的測試金字塔結構談起,梳理前端測試的關鍵內容與設計理念。作者認為所謂的前端測試金字塔自底向上為單元測試、快照測試、端到端測試,然後以簡單的模態彈窗為例,介紹各個測試模塊的設計要點。一般來說,單元測試用於測試代碼庫中的函數、類等原子對象,而快照測試則能夠記錄組件渲染之後的狀態並且隨時進行比較;端到端測試則是用於黑盒保證產品的最終體驗。
4. 數據可視化概覽
https://antv.alipay.com/zh-cn/vis/blog/vis-introduce.html
科學可視化、 信息可視化、可視分析學這三個學科方向通常被看成可視化的三個主要分支。而將這三個分支整合在一起形成的新學科 「數據可視化」,這是可視化研究領域的新起點。
更多
1. 演算法,天使還是魔鬼?
https://mp.weixin.qq.com/s/O7bxtiDGqQxvsRFpO4ZGAQ
隨著演算法的誕生,智人似乎終於製造出了一種可以實現一切願望的工具。
如今,演算法已經無孔不入,我們的工作、社交、醫療、工業、運輸、貿易無不有演算法的重大參與。各種演算法正改變著自然科學和人文科學,讓技術不斷突破「不可能」的極限。2. 盒子端 CSS 動畫性能提升研究
http://www.cnblogs.com/coco1s/p/7851658.html
許多能流暢運行於 PC 端、移動端的 Web 動畫,受限於硬體水平,在盒子端的表現的往往不盡如人意。想要在盒子端跑出高性能的流暢動畫,就必須要刨根問底,深挖每一處可以提升的方法。
3. H5 動畫:軌跡移動
https://aotu.io/notes/2017/11/06/path-animation/
動畫,是指由許多幀靜止的畫面,以一定的速度(如每秒16張)連續播放時,肉眼因視覺殘象產生錯覺,而誤以為畫面活動的作品。在 Web 開發中,經常需要實現各種動畫效果,例如:移動、變形、透明度變化等,今天我們主要來討論各種移動的實現。
4. Atom 發布代碼協同工具 Teletype
https://github.com/blog/2468-introducing-teletype-for-atom-code-collaboratively-in-real-time
上周,Atom 發布了遠程協同工具 Teletype,其允許開發者以 P2P 的方式進行結對編程;儘管 Beta 版本尚存在很多的 Bug,還是拭目以待未來更方便的團隊協同工具。同時,VS Code 也發布了所謂的 Live Share 規劃,其同樣允許開發者使用 Visual Studio 2017 或者 VS Code 來實時協同編輯代碼。
5. Slack桌面3.0遷移到 BrowserView
https://slack.engineering/growing-pains-migrating-slacks-desktop-app-to-browserview-2759690d9c7b
Slack最近在beta通道中提供了3.0版本,該版本包含大量的性能提升和漏洞修復。大多數主要變更都是圍繞從Electron組件WebView到BrowserView的遷移,BrowserView是一個更新且更穩定的替代選擇。Slack工程師Charlie Hess發表了一篇博客,概述了這次遷移過程。
推薦閱讀:
※如何在Node.js或TypeScript中實現for..of形式的按行讀文件?
※Node.js伺服器端項目怎麼打包成單文件?
※應該使用 const 定義 object 和 array 嗎?
※node相比傳統服務端技術棧差在哪裡?
※如何評價 Node.js 8.0 ?