开放#28

技术周刊 第 22 期

作者:
Lmagic16
发布时间:

【前端】

1. React 性能优化大挑战:一次理解 Immutable data 跟 shouldComponentUpdate

文章以如何优化 React 应用为主线,牵连出许多跟优化有关的概念,比如 Component 和 PureComponent 的区别,shouldComponentUpdate 的作用,React 的渲染机制,以及为什么要用 Immutable data structures,文章以实际代码为例进行深入讲解,可读性很强,还有一股浓浓的台湾腔哦!

链接:https://mp.weixin.qq.com/s/oxy3yXipelNKYKi7t2KbeA

2. 巧用 TypeScript

整理了一些比较巧用的 TypeScript 定义类型的技巧,比如:巧用注释、typeof、联合类型、查找类型、泛型、DeepReadonly、Omit,掌握这些技巧后可以大幅提高代码的可读性和整洁性

链接: https://zhuanlan.zhihu.com/p/39620591

3.你可能从未听说过这15个HTML元素方法

虽然现代化的 web 开发更多地依赖各种 MVC 框架,但开发者仍需要熟练掌握 HTML 与 DOM 方面的基础知识。不过,即使是有着多年经验的前端开发者,也会遇到一些不明所以的情况。本文首先将为初学者介绍 HTML 与 DOM 的基本常识,随后为大家介绍 15 个比较冷门的 HTML 元素的方法。

链接:https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247489226&idx=1&sn=5a6bd84ae30777ca5c57c1b0b1903a01

4.GraphQL 在微服务架构中的实践

这篇文章中,首先会简单介绍 GraphQL 是什么,它能够解决的问题;在这之后,我们会重点分析 GraphQL 在微服务架构中的使用以及在实践过程中遇到的棘手问题,在最后作者将给出心中合理的 GraphQL 微服务架构的设计,希望能为同样在微服务架构中使用 GraphQL 的工程师提供一定的帮助,至于给出的建议是否能够满足读者在特定业务场景下的需求就需要读者自行判断了。

链接:https://draveness.me/graphql-microservice#

5、图解 React

文本作者使用朴实的语言和插图来解释 React 家族中的各种术语,并深入探索究竟是什么使得 React 如此特别,本文不需要任何代码知识便可阅读;

链接:https://juejin.im/post/5b481f6b51882519ad6175c2

6、将你的 Virtual dom 渲染成 Canvas

一个基于 Vue 的 virtual dom 插件库,按照 Vue render 函数的写法,直接将 Vue 生成的 Vnode 渲染到 canvas 中。支持常规的滚动操作和一些基础的元素事件绑定;

详情:https://zhuanlan.zhihu.com/p/39886896

7、ESLint 组件库 NPM 账户被盗,并被注入恶意代码

7月12日,ESLint 的两个组件库被注入恶意代码,会窃取用户的 npm token,导致 npm 重置了所有 token。

详情:https://juejin.im/entry/5b48000de51d45199154a731

8、WebAssembly的未来:展望新的功能和提案

WebAssembly是一种二进制指令格式,在所有主流浏览器中都能以高性能运行。 它仍然很新,而且正在开发中。 本文将介绍WebAssembly的路线图以及它在最近可能开发的新功能。

详情:https://blog.scottlogic.com/2018/07/20/wasm-future.html

【后端】

1. 什么是缓存击穿

缓存击穿、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题。缓存击穿通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪崩是由缓存同时失效造成的,三种问题都比较典型,也是难以防范和解决的。本文讲解其产生原因和解决方案。

链接:http://t.cn/Rg1JNGB

2. CAP 定理的含义

分布式系统正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。本文介绍该定理;

链接:http://www.ruanyifeng.com/blog/2018/07/cap.html

3.教你用 C++ 搭建一条迷你区块链!

程序员的天赋技能就是通过代码实践自己的想法,完成一个作品会有相当的成就感,所以今天我们以 C++14 的代码为例子,和你分享设计并实现一个迷你区块链例子。

链接:https://mp.weixin.qq.com/s/k_mYbnchN2UF0kZ_2JD4Wg

4.用不到 20 行的 Python 代码构建一个对象检测模型

当一张图片显示在眼前时,我们的大脑会马上会识别出图片里面所含的对象。另一方面,我们需要花费大量的时间和训练数据才能让机器识别这些对象。不过鉴于硬件和深度学习方面最近的进步,这个计算机视觉领域变得容易和直观了许多。

链接:https://mp.weixin.qq.com/s/UsAGI9cIlrQEwk_rbVKAoQ

【其他】

1、InterviewMap/InterviewMap:打造最好的面试图谱

打造最好的面试图谱。目前内容包含了 JS、网络、浏览器相关、性能优化、安全、框架、Git、数据结构、算法等,无论是基础还是进阶,亦或是源码解读,都能在本图谱中得到满意的答案;

详情:https://yuchengkai.cn/docs/zh/

2. 再见,Google 地图

Google 大幅提高了 Google 地图 API 的收费标准,将免费使用的次数限制到了原来的大约三十分之一,而同时搜索巨人留给用户的时间非常短。为了让地图服务能带来更多收入,Google 严重破坏了客户的信任。一家使用 Google Maps 的创业公司发表博文对 Google 地图说再见,并宣布将远离其它 Google 服务。作者称,Google 突然改变政策是专门针对创业公司,这连带影响到了他们对于 Google 作为一家供应商的信任度。未来他们将与 Google Cloud 保持距离,并避免与任何 Google 服务进行深度集成,比如免费的网络分析服务 Google Analytics;

链接:https://www.solidot.org/story?sid=57271