深阅读

The Complete Introduction to React
https://jscomplete.com/learn/complete-intro-react
React is defined as a JavaScript library for building user interfaces. Let’s start by talking about the two different parts of this definition. React is a JavaScript “library”. It is not exactly a “framework”. It is not a complete solution and you will often need to use more libraries with React to form any solution. React does not assume anything about the other parts in any solution.
另附:useHooks - Easy to understand React Hook recipes.

Mithril.js 2: A JavaScript Framework for Building Brilliant Applications
https://mithril.js.org/
Mithril is a modern client-side JavaScript framework for building Single Page Applications. It’s small (< 10kb gzip), fast and provides routing and XHR utilities out of the box.

Practical Ways to Write Better JavaScript
https://dev.to/taillogs/practical-ways-to-write-better-javascript-26d4
I don’t see enough people talking about practical ways to improve at JavaScript. Here are some of the top methods I use to write better JS.

Monorepos and npm
https://blog.npmjs.org/post/186494959890/monorepos-and-npm
Splitting a large, monolithic codebase into small, encapsulated modules is usually good practice from an architectural perspective. Modularization is useful for everything from microservices to libraries of reusable components. However, it can also be a nightmare from a publishing and source code management perspective. Monorepos are a popular solution to this problem. Instead of one code repository per module, you put all modules in the same code repository. This “monorepo” is then the only thing a developer needs in order to do development with your application. Discovery, access control, and versioning are all simpler by virtue of everything being in the same place.

领域驱动设计在前端中的应用
https://github.com/Vincedream/ddd-fe-demo
本篇文章我们以一个很有趣的现象开头,结合有问题的代码分析出前端开发过程中遇到的困难,接着提出了领域驱动设计,结合其实践,逐一解决了之前遇到的困难,注意,上文实践的领域驱动结构并不是完全按照 Evans 在《领域驱动设计》书中提出的结构,因为该书中的结构更适合后端的实践,而在前端中,我们提取了书中部分优良的设计,与实际的前端开发场景进行结合而总结出上述结构,当然读者可以对其结构进一步的改造、优化,也期待读者与我进行交流,文中出现的错误欢迎指正。领域驱动设计有效地降低了项目的复杂度,分层的结构让各功能代码职责分明,在前端中将其业务逻辑代码逐一分层,与视图层解耦,做到了真正的业务逻辑复用,在代码的可读性、可维护性上也有了质的提升。在业务上也让开发者更融入整个项目,加深了开发者对业务的理解,能够共同的促进业务的进步。

前端离线化探索
http://www.alloyteam.com/2019/07/web-applications-offline/
在这个流量日益白菜价,不断提及云端计算、5g 网络的时代,有人觉得,离线已经完全没有必要。谈及离线,仿佛想到的是深海老林,荒无人烟之处。事实上,离线离我们的生活很近,也非常频繁。高速公路、地铁隧道、楼道角落,以及诸多日常信号不稳定区域,这些场景每天都有大量用户经过,每天有成千万用户频繁因为网络问题,心底里吐槽抱怨过我们的应用,断网离线并非我们的错,但我们是否能够从用户体验的角度,尝试改善他们在进入弱网或无网络状态时的焦虑情绪呢,从而给产品带来更正向的体验收益,提升用户留存与口碑。

Serverless,将给前端发展带来大变革的技术
https://mp.weixin.qq.com/s/ooX7uMFjxFfSai9URo6kYw
前端在发展,后端也在发展,在分层和模块划分上更加的粒度化,微服务化。微服务的接口不再是面向页面,前端的接口调用变得复杂了,所以需要在微服务和前端中间,加了一个 BFF 层,全称(backend for frontend),由这一层对接口进行聚合、裁剪后,再输出给前端。而这层不是后端本质工作,距离前端比较近,关系更大一些,所以前端工程师很自然选择了 Node.js 来实现。这也是当前 Node.js 在服务端比较广泛的应用。可以看到,每一次前端开发模式的变化,都因为某个变革性技术的出现。先是 AJAX,然后是 Node.js。那么下一个变革性的技术是什么?不言而喻,就是 Serverless。

重构支付宝小程序构建流程有感
https://zhuanlan.zhihu.com/p/74381415
本文作者负责了支付宝小程序「构建」流程的重构工作,在重构过程中深挖了许多知识点,尽数浓缩在这篇五千字长文中,通篇读完绝对能带给你满满的干货!P.S.: 我们假定你已经了解支付宝小程序、Webpack 以及前端构建相关概念。以下为正文。

GraphQL-BFF:微服务背景下的前后端数据交互方案
https://www.weibo.com/ttarticle/p/show?id=2309404398215846821987
本文将介绍我们对 GraphQL 所作的考察、探索、权衡、技术选型与设计等多方面的内容,希望能给大家带来一些启发。

知乎已读服务的前生今世与未来
https://mp.weixin.qq.com/s/1VOSLYp6kM0bNcvDAUlg3w
对于很多大型网站来说,一些不起眼的小功能反而是实现的难点。对于知乎来说,已读服务会随着用户量和内容数量的增长而平方级增长,而且响应时间要求很短,因此是一个有实现难度的系统。本文作者介绍了知乎已读服务的架构设计和演进过程,并对很多技术取舍做了深入剖析,十分值得阅读。

Browsers are pretty good at loading pages, it turns out
https://carter.sande.duodecima.technology/javascript-page-navigation/
I think it’s best to build small, simple, standards-based web pages. Browser developers are really good at their jobs, and they’ve spent a lot of time on features like progressive rendering that help your sites feel fast without any effort on your part. It’s not worth it to try and go behind their backs—premature optimizations like client-side navigation are hard to build, don’t work very well, will probably be obsolete in a couple years, and make life worse for a decent portion of your users.

When a rewrite isn’t: rebuilding Slack on the desktop
https://slack.engineering/rebuilding-slack-on-the-desktop-308d6fe94ae4
A new version of Slack is rolling out for our desktop customers, built from the ground up to be faster, more efficient, and easier to work on