订阅 / 投稿: https://github.com/txd-team/monthly
本期小编: Hkmu (扶容) / x-cold (尹挚)
新闻快报
- npm 发布 2018 年的生态数据,预测 2019 年新趋势
JavaScript 越来越受欢迎,而 npm 是 JavaScript 库的管理中心,目前拥有超过 836,000 个库,是世界上最大的开源库集合。
回顾 2018 年,npm 正在被用在越来越多的场景下,包含浏览器,服务端,移动支持,IoT / 机器人等方面;另外可以看到现在 Web 应用程序中大量依赖 npm,占其代码总量的 97%;npm 本身在 2018 年加入了 NSP 安全审计,更加注重包的安全管理(当然今年也发生了不少的 npm 包事件,参考工具推荐部分的“翻车现场”)。更多关于 npm 有趣的一些趋势可以浏览前端之巅翻译的报告,英文好的同学可以参考原始报告。
- Rollup 发布 v1.0 版本
从 Rollup 出现到现在已经接近 3 年半的时间,带来了让人眼前一亮的 Tree Shaking 等特性,前端应用的项目构建上我们使用的频率可能相对低一些,而在一些库/框架的开发中经常会用到它,包括 React, Vue 也在使用。在 2018 年 12 月 28 日,Rollup 终于发布了 1.0.0 版本,结束了 0.x.x 时代。当然,升级到最新版本的 Rollup 需要改动不少的配置,参见更新日志。
- Babel 7.2.0 发布,支持私有实例方法
关于私有作用域 (Private Fields) 的支持已经进入最新的提案中,Babel 的更新支持意味着我们可以在语言层面直接在我们的类 (Class) 中定义私有的变量和方法了,可以参考下面的示例:
class Person {
#age = 19;
#increaseAge() {
this.#age++;
}
birthday() {
this.#increaseAge();
alert("Happy Birthday!");
}
}
在这个提案之前,我们也可以通过下划线命名,Symbol 命名,闭包和 ES6 Proxy 等方式来实现私有作用域,可以参考这篇文章。关于 Babel 7.2.0 带来的更多特性可以读一下官方的更新日志。
- AI 也能帮你写代码 (TypeScript / JavaScript / Python / C++ / C#) 了!!!
微软和 IntelliCode 团队一起推出 Visual Studio IntelliCode 扩展,预览版可以在 VSCode 插件市场直接查找「Visual Studio IntelliCode」安装。在我们编写代码的时候,插件会自动给出推荐的编码补全,当然它不只是个语法的提示工具,它的做法是根据编码的上下文来提供智能的建议,赶紧安装体验吧~
- 2019 年十款流行的 Node.js 框架
文章介绍了框架带来的收益以及如何选择适合的框架,并且对比了 10 款目前流行的 Node.js 框架,包括老牌的 Express、Meteor,以及一些新兴框架,例如 Adonis, Nest 等。感兴趣的同学可以阅读原文。
值得一提的是,在诸多框架横空出世的黄金开发时代,框架之间更多是特性的互补,所以并没有必要去分出高下,更重要的是选择跟业务成长相契合的框架。另外作者列举的更多的是海外流行的框架,其实国产的 Egg, ThinkJS 也已经有不少的企业级实践,感兴趣的可以到对应的 Github 仓库继续深入了解。
- 阿里开源企业级设计系统最佳解决方案 Fusion
2018 年 12 月 16 号,Fusion Design 在 OSC 深圳源创会年终盛典上正式开源,它是阿里巴巴耗时近三年打造的企业中后台解决方案,关于 Fusion 的详细介绍可以参考这里。
- 微软宣布 Edge 将采用 Chromium 内核
这对于诸多的前端开发者而言,无疑是本年底最大的福音~!具体的计划可以参考官网的博客,在不久的将来,基于 Chromium 的 Edge 浏览器将要正式和我们见面啦。
Github Trending
洞察 Github 近期 Hot Fresh Repository
- Magic-Grid
一款简单易用,轻量级的动态布局的 JavaScript 库,与它的名字不同,Magic-Grid 不是 CSS Grid 库,它支持弹性布局/瀑布流等,还提供了一个支持 Vue 的版本。
- nodebestpractices
大型 Node.js 最佳实践的精品总结和分享,里面包含了丰富的使用场景及最佳实践(附带解释),阅读这本大型书籍也能收获不少关于 Node.js 的知识。
- sharp
高性能的 Node.js 图像处理模块,图像处理又多一种新的选择。
- bloomrpc
不容错过的 GPRC 服务可视化客户端,可以理解为 HTTP 之 Postman, GraphQL 之 Playground,GRPC 之 BllomRPC。
- devhub
Github 社交聚合平台,个人认为更像是个人工作台,支持 Web, iOS, Android, Desktop 多平台,如果你是 Github 用户,这里可能提供了你想要的一切。
- rrweb
rrweb 是 'record and replay the web' 的简写,旨在利用现代浏览器所提供的强大 API 录制并回放任意 Web 界面中的用户操作。
- notable
一款基于 Markdown 的笔记应用程序,支持无限文件夹 / 标签管理,喜欢纯粹的 Markdown 编辑体验的同学可以尝试使用一下,README 文件中有和其他竞品对比的报告。
精品学习
- 前端该知道些密码学和安全上的事儿
在这个经常翻车的年代,网络安全逐渐受到重视。在前端这个开放的世界中,开发人员更应该对安全有所了解,并在自己的应用程序中部署适当的安全工具和策略,保护用户隐私以及系统的安全运行。文章阅读时间约 15 分钟。
- Why review code
如何保证代码的交付质量?结对编程是否有科学依据?实际上,Code Review 无论是在软件工程体系,亦或是开源社区的运行秩序中,都是非常重要的环节。正确的 Code Review 姿势不仅能提高代码质量,降低故障发生的风险,还能给团队开发带来效能的提升。如果你的团队还没有 Review 代码的习惯,不妨来看下燕燕翻译的这篇博客。文章阅读时间约 10 分钟。
工具推荐
- quicklink
还记得曾今的 WAP 时代吗?当我们在浏览网页的时候,经常能看到一个绿色的下一页按钮,点击之后可以“几乎无刷新”的跳转到新的页面中,它其实是一种预加载的策略。现在 quicklink 也可以给普通的 Web 应用程序提供类似的能力,使用它我们可以让浏览器在空闲的时间预先将用户即将访问的页面预先缓存,从而极大地提高了切换页面的速度。
- ncc
可以将 Node.js 模块打包成单个文件的神奇工具,让你的模块最小化。这种打包的方式非常适合一些需要更“纯粹”的交付场景,比如 serverless,通过 ncc 我们可以很轻松地把应用程序及依赖转换成单个文件进行交付。
- npq
最近半年发生的 npm 事故稍微有些频繁,因此通过 npm 安装一个靠谱的 package 和 version 非常重要。npq 会在安装之前进行前置的检查,其中包括了安全扫描、包的发布时间、热度、安装脚本分析等。另外带大家回顾一下今年的大型翻车现场:
debug:visionmedia/debug#603
React:facebook/react#14208
event-stream:https://zhuanlan.zhihu.com/p/50938220