九龙壁.jpg

成长是做你没做过的事情,改变是做你不愿意做的事情,突破是做你不敢做的事情。

【实践经验】

1、羚珑视频编辑器开发总结

https://mp.weixin.qq.com/s/m0QHH_UxZnJ1cEuBdSEuHQ

该视频编辑器的主要作用是用户可以通过操作静态的PSD从而得到我们想要的动态设计效果,对比AE等复杂的视频编辑软件,学习成本大大降低,且动效的可复用性、移植性等也减轻了用户的工作量。

视频编辑器的实现主要分为 5 个部分,视频预览区、动效添加区、参数编辑区、图层操作区、场景操作区,如下图其他部分的每一个操作都会映射到视频预览区,且各个部分数据共享。除此之外,编辑器的每一步操作都需要被“记住”,便于编辑的人回退、还原其操作。
image.png

2、Vue SSR 性能优化实践

https://mp.weixin.qq.com/s/twg5mrzg7tSrbkvDQHsziQ

这里借用一张图,把一个 SSR 请求的生命周期分为三个阶段,主要是把执行渲染的部分从整体中抽出来。
image.png
本文分享围绕着 Vue SSR 和相关业务增长的背景,向大家展示作者做过了哪些尝试,以及一些踩坑经历,希望能给中小规模的团队带来一定的参考价值。

3、中了源码的毒,给你一副良药

https://mp.weixin.qq.com/s/xp7YhhzbhMC7d-FQkIU3BQ

image.png
本文介绍了如下读源码的思路与技巧:

  • 站在巨人的肩膀,提前阅读一些项目相关的优质文章;
  • 汇总学习或工作中遇到的问题,带着问题进行源码学习;
  • 明确阅读源码的主线或切入点;
  • 尽可能从简单的示例出发来分析每个功能点;
  • 先梳理清楚主要流程,不要太在意细节,避免把整个线路拉得太长;
  • 在阅读源码过程中,要多多画图,这样理解起来会更加直观。


4、前端场景下 CI/CD 的探索与实践

https://mp.weixin.qq.com/s/Y-i20dQgSPu86KFVC7wNTA

2019 年前后 DevOps 的理念已经瓜熟蒂落,形成了大体上通行的行业标准。根据 2019 Accelerate State of DevOps Report,高效的 DevOps 效能在各处落地。类似于 Gatsby 和 Zeit 等各种 Serverless 架构的前端生成、托管平台们也实现了普及,托管运维对前端的友好度和对能力的扩充都发展了很多。

本文介绍了在字节跳动,前端的 CI/CD 已经非常便捷:可以在每次代码提交后执行预置的任务,比如代码风格及质量检查、安全检查、构建产物检测、部署到集成环境、对部署后的环境跑各种测试(兼容性测试、真机测试、性能测试等)、产出各种检测报告,也可以在几分钟内快速完成版本的上线、回滚、切换等操作。这种便利性有力的保障了字节跳动多个产品的快速迭代,为用户提供更为安全稳定的服务。

但是,时间往回退几年,那时的体验非常糟糕:开发完 feature 后,需要把 MR 链接发给同事,请他们帮忙Code Review,接着再去编译平台发起编译,编译完成后,再去云平台发起测试上线或者小流量上线,验证没问题后再发起正式上线……整个过程非常依赖人工,流程的推进基本靠点对点沟通,费时且易出错。

5、【webpack 性能优化】编译速度从 50S 到 7S

https://juejin.im/post/6887863430510968839#heading-14

6、垃圾代码和优质代码的区别?

https://mp.weixin.qq.com/s/6AoP4gqEN1HjqMIbYwO3pQ

7、前端组件化埋点的实践

https://juejin.im/post/6889238969616171022

【基础夯实】

1、浏览器是如何工作的:Chrome V8让你更懂JavaScript

https://segmentfault.com/a/1190000037435824#comment-area
image.png

2、你可能不知道的Animation动画技巧与细节

https://mp.weixin.qq.com/s/7Oz8cM7MqMkoal1T9ZHXnA

前端在实现动画效果时往往常用的几种方案:

  • CSS3 transition / animation - 实现过渡动画
  • setInterval / setTimeout - 通过设置一个间隔时间来不断的改变图像的位置
  • requestAnimationFrame - 通过一个回调函数来改变图像位置,由系统来决定这个回调函数的执行时机,比定时修改的性能更好,不存在失帧现象

在大多数需求中,CSS3 的 transition / animation 都能满足我们的需求,并且相对于 js 实现,可以大大提升我们的开发效率,降低开发成本。

本篇文章将着重对 animation 的使用做个总结:
image.png

3、软件开发必修课:你该知道的GRASP职责分配模式

https://mp.weixin.qq.com/s/IaxAnWfVqe3mM0bHFVV5Gg

软件在本质上是复杂的,软件本身的复杂性在于除了要解决问题域,还要解决非功能性需求和软件域特有问题:安全性、可用性、可维护性、可扩展性、性能、一致性、容错性、稳定性、可重用性、幂等、兼容等等,软件开发者的任务就是制造“简单”的假象。如何组织复杂的系统?把复杂的事物分解到不同的层次中,层次代表了不同级别的抽象,一层构建于另一层之上,每一层都对上层屏蔽内部复杂度。

4、让你30分钟快速掌握vue 3

https://juejin.im/post/6887359442354962445

经过了漫长的迭代,Vue 3.0终于在上2020-09-18发布了,带了翻天覆地的变化,使用了Typescript 进行了大规模的重构,带来了Composition API RFC版本,类似React hook一样的写Vue,可以自定义自己的hook,让使用者更加的灵活,接下来总结一下vue 3.0 带来的部分新特性。

  • setup()
  • ref()
  • reactive()
  • isRef()
  • toRefs()
  • computed()
  • watch()
  • LifeCycle Hooks(新的生命周期)
  • Template refs
  • globalProperties
  • Suspense

5、【建议收藏】CSS晦涩难懂的点都在这啦

https://juejin.im/post/6888102016007176200

整理了CSS比较晦涩难懂的点:
image.png

6、聊一聊二维码扫描登录原理

https://segmentfault.com/a/1190000022223293

扫二维码登录现在比较常见,比如微信、支付宝等 PC 端登录,并且好像每款 APP 都支持扫码登录,不搞个扫码登录都不好意思。作为技术人员,不知道您对这背后的实现逻辑是否敢兴趣,反正我是一直都对这背后实现好奇。

7、BAT大佬推荐使用的HTML5的十个功能

https://mp.weixin.qq.com/s/nrw8fTHpi1CXAPs0_NjG4g

本文出了十个HTML5过去没用过但现在发现有用的功能,还创建了一个工作示例流程。希望您也觉得它有用。

点击演示实例:https://html5-tips.netlify.app/

8、解决实际问题的24个ES6代码段

https://mp.weixin.qq.com/s/an_pXkV_1CC_rrt8AX4qtQ

这篇文章基于实际使用场景总结了 24 个 ES6 代码段,可用来解决项目中可能遇到的一系列问题。

9、Vue 中 Axios 的封装和 API 接口的管理

https://mp.weixin.qq.com/s/eHCq-9yKZ6nBkCzoWtUP9A

本文详细介绍如何对axios进行封装和使用。

10、不可错过的Webpack核心知识点

https://mp.weixin.qq.com/s/8De2fcrrj_ZwP5ov5ZVDnA

【实用工具】

1、没有这 29 款插件的 Chrome 是没有灵魂的

https://mp.weixin.qq.com/s/LAO3ShOfy8X17VNuwQjoOw

相信很多人都在使用 Chrome 浏览器,其流畅的浏览体验得到了不少用户的偏爱,但流畅只是一方面, Chrome 最大的优势还是其支持众多强大好用的扩展程序(Extensions)。

文中的很多插件都很有用,看完保证你工作效率、心情提高1倍。

2、10 个你可能还不知道 VS Code 使用技巧

https://mp.weixin.qq.com/s/Pjvu1sbWjh5HxfoX9U-HTQ

一些有能够提高我们的日常工作效率的技巧。

【动态与研究关注】

1、GitHub:再见,master!

https://mp.weixin.qq.com/s/_xcdHGetYmXf84DZgg6_pg

近日,GitHub宣布,自2020年10月1日起,在GitHub平台上创建的所有源代码存储库都将默认命名为 main ,而非原本的 master 。

GitHub 以及庞大的 Git 社区都在考虑重命名源代码存储库的默认分支名称,而GitHub 选择用 main 取代 master ,来作为自己存储库的默认分支名称,并将分为几个阶段进行更改,以尽可能减少对现有项目的破坏。GitHub 建议用户:如果您尚未重命名默认分支,可以考虑等到今年年底。我们正在投资开发工具,用来重命名现有存储库的默认分支,从而给维护者和贡献者提供无缝的体验。

2、npm v7.0.0 发布 - 带来数个重大更新

https://mp.weixin.qq.com/s/3fY5_U-KosJNDdwXjHDnEg

npm 7带有一些期待已久的功能,其中包括:

  • Workspacesnpm CLI 的一组功能,可支持从单个顶级软件包中管理多个软件包
  • 自动安装 peerDependencies:在 npm 7 之前,开发人员需要自己管理和安装peerDependencies 新的peer dependencies可确保在 node_modules 树中peerDependencies的位置处或之上找到有效匹配的 peerDependencies
  • package-lock v2和对yarn.lock 的支持:新的 package-lock 格式将释放确定性可复制构建的功能,并且包括 npm 完全构建软件包树所需的一切。在忽略 npm 7yarn.lock 文件之前,npm cli现在可以将 yarn.lock 用作软件包元数据和分辨率指南的来源。

3、前端前沿观察,Cookie 居然可以这样整了

https://juejin.im/post/6889231003697709070

Chrome 87 版本中我们无需再引入这样的代码了,取而代之的是新的 API:cookieStore。这是一个异步的 API,可以很方便地获取设置以及监听 Cookie 的改变。

如今我们只需一句话就可以获取想要的内容了。
《百闻技术周刊》038期 - 图9

cookieStore.get 有两种函数签名,前者我们可以通过传入 cookie 的属性去匹配想要的内容,后者则是直接传入 name 获取。API 很符合直觉,比之前的方式不知道好到哪里去了。
当然除了获取单个 cookie 之外,新的 API 还提供了获取多个 cookie 的方式。比如说现在我想获取所有属于某个 domain 的 cookies,就可以使用如下方式:
《百闻技术周刊》038期 - 图10

4、使用 tabindex 配合 focus-within 巧妙实现父选择器

https://juejin.im/post/6889234341264949255

使用 tabindex 配合 :focus-within 巧妙实现父选择器。
:focus-within,表示一个元素获得焦点,或,该元素的后代元素获得焦点。划重点,它或它的后代获得焦点
利用它,我们可以实现类似这样的功能,通过元素的子元素的获焦(focus事件),触发该伪元素,从而实现一个狭义的父选择器。

5、开源富文本编辑器技术的演进

https://zhuanlan.zhihu.com/p/268366406

开源富文本编辑器哪家强?

CKEditor是发展时间最久的,跨越了编辑器技术的第一阶段和第二阶段,从CKEditor 4到CKEditor 5更是经历完全的重构,从根本上解决协同编辑的问题。

Quill.js也可以称为老牌的编辑器了,受众非常大,从市面使用Quill.js的产品(石墨文档、ClickUp)也可以看出它的可塑性非常强。

ProseMirror可以说是非常稳定的编辑器,知乎上也有人专门拿它和Slate做过对比,况且有Confluence做背书自然差不了。

最晚出来的Slate,则一路大刀阔斧的重构,目前整体架构异常优雅和简洁,又搭载了TypeScript,感觉势头非常强劲。

用一张时间线的图回顾下开源富文本编辑器的历史:
image.png

6、CIO创享|彭文华:数澜、宜信、贝壳三种数据中台建设模式探讨

https://mp.weixin.qq.com/s/SIaMurS8ncc53CehdZq9JQ

【程序之外】

1、视觉设计中发现的 11 种视错觉

https://mp.weixin.qq.com/s/zGdXBq4RDLaPYduEHJiHFg

相信你在平常生活或工作中遇到过一些神奇的场景,这些场景会让人产生一些视觉上的错觉。作者在本文中介绍了 11 种视错觉:

  • 三角形分割错觉(Triangle-bisection Illusion)
  • 垂直中线错觉 (Vertical Horizontal Illusion)
  • 马赫带效应 (Mach Bands)
  • 赫林错觉 (Hering Illusion)
  • 赫尔曼网格 (Hermann Grid)
  • 同时对比错觉 (Simultaneous Contrast Illusion)
  • 蒙克·怀特错觉 (Munker-White Illusion)
  • 水彩错觉 (Water Colour Illusion)
  • 贾斯特罗错觉 (Jastrow Illusion)
  • 康士维错觉 (Cornsweet Illusion)
  • 缪勒-里尔错觉 (Müller-Lyer Illusion)


2、贵重:如何在助推业务发展中成就自我

https://mp.weixin.qq.com/s/OYl8xOyzNScgEzJoYWtHZg

沃伦·巴菲特给我们很好的定义了什么是成长,什么时候改变,什么是突破。成长就是做你没做过的事情。改变是做你不愿意做的事情。突破是做你不敢做的事情。按照这样的定义,再回头过去看一年的是不是有成长,是不是有突破,是非常清晰的,以及对于未来,也会有更清晰的目标。
**

更多精彩资讯,欢迎扫码入群交流~🚀**🚀🚀**
扫码入群.png

注:所有资讯均来自网络,不代表编者观点。