Skip to content

Commit 9e73eb6

Browse files
author
zhouhongxuan
committed
feat(article): add some new articles
1 parent 567675d commit 9e73eb6

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

README.md

Lines changed: 42 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# 前端技术清单
22

3+
> 最后更新:2019/10/09
4+
35
学习文章的知识往往是碎片化的。而前端涉及到的面很广,这些知识如果不进行有效梳理,则无法相互串联、形成体系。因此,我结合工作体会将抽象出了一些前端基础能力,并将看过、写过的一些不错的文章进行整理,形成了一份(纯)前端技术清单。
46

57
不论你是正在自学前端,还是对前端某些技术熟练掌握但某些还未涉足,我都希望这份清单能帮助你 review 一些前端的基础能力。
@@ -28,6 +30,9 @@
2830
- [4.3. CSP](#43-csp)
2931
- [4.4. HTTPS](#44-https)
3032
- [4.5. 安全实录](#45-安全实录)
33+
- [4.6. 代码保护](#46-代码保护)
34+
- [4.7. JS沙盒](#47-js沙盒)
35+
- [4.8. 其他](#48-其他)
3136
- [5. 自动化测试](#5-自动化测试)
3237
- [5.1. 单元测试](#51-单元测试)
3338
- [5.2. 端到端测试 (E2E)](#52-端到端测试-e2e)
@@ -44,13 +49,15 @@
4449
- [7.4. 微前端(Micro Frontends)](#74-微前端micro-frontends)
4550
- [7.5. HTTP/2](#75-http2)
4651
- [7.6. WebAssembly](#76-webassembly)
52+
- [7.7. 小程序](#77-小程序)
53+
- [7.8. Serverless](#78-serverless)
4754
- [8. 业务相关](#8-业务相关)
4855
- [8.1. 数据打点上报](#81-数据打点上报)
4956
- [8.2. 前端监控](#82-前端监控)
5057
- [8.3. A/B测试](#83-ab测试)
5158
- [8.4. “服务端推”](#84-服务端推)
5259
- [8.5. 动效](#85-动效)
53-
- [9. 不归类的好文](#9-不归类的好文)
60+
- [9. 其他](#9-其他)
5461

5562
## 0. 年度报告
5663

@@ -80,6 +87,7 @@
8087
### 1.2. CSS
8188

8289
- [You-Need-to-Know-CSS](https://lhammer.cn/You-need-to-know-css/#/)
90+
- [CSSOM 及其相关浏览器 API 使用指南 \[\]](https://css-tricks.com/an-introduction-and-guide-to-the-css-object-model-cssom/)
8391
- [CSS布局指南](https://juejin.im/post/5b3b56a1e51d4519646204bb)
8492
- [CSS 中的各类换行处理方式 \[\]](https://css-tricks.com/where-lines-break-is-complicated-heres-all-the-related-css-and-html/):处理经典的换行问题
8593
- [浏览器将rem转成px时有精度误差怎么办?](https://www.zhihu.com/question/264372456)
@@ -143,6 +151,7 @@
143151

144152
- [Babel 用户手册](https://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/user-handbook.md)
145153
- [Babel 插件手册](https://github.com/jamiebuilds/babel-handbook/blob/master/translations/zh-Hans/plugin-handbook.md)
154+
- [如何通过 Babel 实现你的自定义 JS 语法](https://lihautan.com/creating-custom-javascript-syntax-with-babel/)
146155

147156
### 2.6. CSS预处理与模块化
148157

@@ -256,6 +265,20 @@
256265
- [一个媒体文件请求引发的跨站风险 \[\]](https://jakearchibald.com/2018/i-discovered-a-browser-bug)
257266
- [Mitigating Spectre \[\]](https://security.googleblog.com/2018/07/mitigating-spectre-with-site-isolation.html): Chrome 中的跨站安全问题
258267

268+
### 4.6. 代码保护
269+
270+
- [JavaScript 混淆安全加固](https://segmentfault.com/a/1190000019423501)
271+
- [前端核心代码保护技术面面观](https://zhuanlan.zhihu.com/p/61651310)
272+
273+
### 4.7. JS沙盒
274+
275+
- [如何在 Web 上实现一个插件系统 \[\]](https://www.figma.com/blog/how-we-built-the-figma-plugin-system/)
276+
- [如何安全地运行用户的 JavaScript 脚本](https://zhuanlan.zhihu.com/p/46571509)
277+
278+
### 4.8. 其他
279+
280+
- [一些安全相关的HTTP响应头](https://imququ.com/post/web-security-and-response-header.html)
281+
259282
## 5. 自动化测试
260283

261284
> 自动化测试是软件工程的重要部分之一,但却极容易被忽视。
@@ -280,13 +303,15 @@
280303

281304
- [测试你的前端代码(集成测试篇)\[\]](https://hackernoon.com/testing-your-frontend-code-part-iv-integration-testing-f1f4609dc4d9)
282305
- [测试你的前端代码(可视化测试篇)\[\]](https://medium.com/@giltayar/testing-your-frontend-code-part-v-visual-testing-935864cfb5c7)
306+
- [关于 Property Based Testing 的介绍 \[\]](https://medium.com/criteo-labs/introduction-to-property-based-testing-f5236229d237)
283307

284308
## 6. 框架与类库
285309

286310
> 如果说基础知识是道,那框架与工具可能就是术;学习与理解它们,但千万不要成为它们的奴隶。
287311
288312
### 6.1. React
289313

314+
- [手把手教你如何实现一个简易的 React \[\]](https://engineering.hexacta.com/didact-learning-how-react-works-by-building-it-from-scratch-51007984e5c5)
290315
- [React 底层揭秘 \[\]](https://bogdan-lyashenko.github.io/Under-the-hood-ReactJS/)
291316
- [你所需要知道的 React 细节](https://github.com/hateonion/react-bits-CN)
292317
- [React Fiber 架构](https://zhuanlan.zhihu.com/p/37095662)
@@ -311,6 +336,7 @@
311336
- [如何用 GraphQL 来替代 Redux \[\]](https://hackernoon.com/how-graphql-replaces-redux-3fff8289221d)
312337
- [解读 Redux 的设计思路与用法](https://div.io/topic/1309)
313338
- [(Redux)应用构建的三个原则 \[\]](https://jaysoo.ca/2016/02/28/organizing-redux-application/#rule-1-organize-by-feature)
339+
- [React-Redux 的发展历史与实现 \[\]](https://blog.isquaredsoftware.com/2018/11/react-redux-history-implementation/)
314340

315341
### 6.4. RxJS
316342

@@ -374,6 +400,18 @@
374400
- [五、为什么 WebAssembly 更快?](https://segmentfault.com/a/1190000008699213)
375401
- [六、WebAssembly 的现在与未来](https://segmentfault.com/a/1190000008714515)
376402

403+
### 7.7. 小程序
404+
405+
- [微信,支付宝小程序实现原理概述](https://segmentfault.com/a/1190000018631528)
406+
- [小程序底层实现原理及一些思考](https://github.com/berwin/Blog/issues/43)
407+
408+
### 7.8. Serverless
409+
410+
- [Serverless 给前端带来了什么](https://zhuanlan.zhihu.com/p/58877583)
411+
- [基于 Serverless 的淘宝前端研发模式升级](https://www.infoq.cn/article/KFNcm7Pbq*eIV2dQIpRX)
412+
- [Serverless,将给前端发展带来大变革的技术?](https://mp.weixin.qq.com/s/ooX7uMFjxFfSai9URo6kYw)
413+
- [Why Netflix Rolled Its Own Node.js Functions-as-a-Service for its API Platform](https://thenewstack.io/why-netflix-rolled-its-own-node-js-functions-as-a-service-runtime?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more)
414+
377415
## 8. 业务相关
378416

379417
> 在业务中往往还有一些与“业务无关”的场景需求 —— 不论是什么业务几乎都会遇到;因此,在变与不变中,我们更需要去抽象出这些问题。
@@ -434,4 +472,6 @@
434472
435473
- [Recursion? We don't need no stinking recursion!](http://raganwald.com/2018/05/20/we-dont-need-no-stinking-recursion.html):如何将一些递归改为循环
436474
- [Turning your web traffic into a Super Computer](https://ben.akrin.com/?p=5997):通过 Web Worker 和 WebSocket 来将全世界的电脑连接成超级计算机
437-
- [Designing very large (JavaScript) applications](https://medium.com/@cramforce/designing-very-large-javascript-applications-6e013a3291a3):高屋建瓴
475+
- [Designing very large (JavaScript) applications](https://medium.com/@cramforce/designing-very-large-javascript-applications-6e013a3291a3):高屋建瓴
476+
- [Building a professional design tool on the web](https://www.figma.com/blog/building-a-professional-design-tool-on-the-web/):如何使用 Web 技术来创建一个设计/渲染系统
477+
- [Crafting Interpreters](https://craftinginterpreters.com/):详细介绍了如何实现一个解释器

0 commit comments

Comments
 (0)