「蒲公英」期刊全新升级,更新频率由每月一次调整为每周一次。全新的期刊,不仅精选优质的凹凸文章,与此同时,我们从团队专注的研究方向出发,每期挖掘「基础技术、工程化、跨端框架技术、图形编程、服务端开发、桌面开发、人工智能」7大方向的业界热点,并加以专业的解读。
抬头仰望,蒲公英的种子会生根发芽,如夏花绚烂;格物致知,我们登高远眺、沧海拾遗,以求积硅步而至千里。
登高远眺
天高地迥,觉宇宙之无穷
基础技术
JavaScript 平行化使用 Web Worker、SharedArrayBuffer、Atomics
Web Worker 让网页具备了多线程运行的能力。但 Worker 之间是相互独立的,内存空间彼此独立。虽然可以通过 IPC 方式进行通信,但在载荷较大的情况下就不太现实。我们就需要用到共享内存 SharedArrayBuffer。这篇文章介绍了 Web Worker、SharedArrayBuffer 等概念,并教我们如何使用 Atomics 避免资源竞争。
ant-design-blazor
Blazor 的 Ant Design 版本,想法很好,但目前还没到时候。WebAssembly 目前还没有操作 DOM 的接口,使用 WebAssembly 操作 UI 既没有性能优势也没有体积优势。Blazor 本身作为只支持 Web 的 UI 框架也略微受限,Qt 和 iced 都可以既使用 WebAssembly 开发 Web,同时生成接近原生性能的桌面端应用。
工程化
《模块化系列》snowpack,提高10倍打包速度
前端领域出现过不少模块化规范,CommonJS、CMD、AMD、UMD 等等层出不穷。由于浏览器无法直接支持这些模块,我们还需要 Browserify、webpack 等工具进行打包。如今,一款新的工具出现了。它宣称能让开发者使用更少的工具,并获得 10 倍的速度提升。这就是 snowpack。
Webpack 5 Module Federation: A game-changer in JavaScript architecture
Webpack 是现代前端开发中必不可少的基础工具,已经深入我们工作的方方面面。但是一直以来多个应用之间如何进行共享始终没有一个非常优雅的方式进行解决,我们尝试过公共代码发布到 NPM 等方式,到效果还是不尽如人意。在这篇文章中我们将了解到 Webpack 5 的新特性「模块联邦」,看看 Webpack 5 是如何帮我们优雅地解决这个问题的。
设计哲学
设计模式在外卖营销业务中的实践
使用设计模式能够帮助我们编写出可重用的代码,提高软件的可维护性。作者从营销业务出发,介绍了领域模型到代码工程之间的转化,从DDD引出设计模式,详细介绍了工厂方法模式、策略模式、责任链模式以及状态模式这四种模式在营销业务中的具体实现。
图形编程
A Primer on Bézier Curves
图形数字化中最常见的函数——贝塞尔曲线函数,所有接触过计算机图形绘制、动效开发的人一定都不陌生。这本电子书从44个方面对贝塞尔曲线绘制算法进行了详细的拆解,内容极其硬核,适合对数学与图形学有兴趣的开发同学仔细阅读。
从阿凡达到图灵奖,皮克斯元老的动画梦
计算机领域最高荣誉——图灵奖,2019年颁给了两位与计算机图形学发展息息相关的人,Patrick Hanrahan 和 Edwin Catmull。作为皮克斯的创始成员,二人在影视、CG 界带来的革命,即使是不知道他们名字的人,也一定看过他们在 3D 创新技术影响下产出的影视作品。大家可以通过这篇文章来了解好莱坞大片背后的这两个男人。
服务端开发
从 Java 到 TS,阿里妈妈的接口管理一把梭
阿里提出的一套接口自动化制定规则,通过 Rap (接口管理后台)来制定接口规范以及接口文档,然后使用自己封装的请求工具来生成请求函数和 TypeScript 定义,配合 vscode 强大的类型提示极大地提高了开发体验和开发效率,最重要的是不同开发端同学的都能很好地理解并运用,降低了接口沟通的成本。
When to Use What: REST, GraphQL, Webhooks & gRPC
REST,GraphQL,Webhooks,gRPC 四类接口设计方案各自应用的场景的比较,较为全面地分析了目前的几种接口设计方案的使用场景,在特定的使用场景下正确使用更好的接口设计方案对团队整体协作效率有着比较大的提升。
桌面开发
neutralinojs
和 Electron 一样基于 Web 技术的桌面端跨平台解决方案,应用体积比 Electron 小近 100 倍,内存占用少 5 倍。但由于使用是操作系统内置的 WebView,且没有 Node.js 运行时,无法无缝接入 NPM 生态,操作系统控件的 API 也暂时没有,如果是小型应用可以考虑使用它开发。
人工智能
Dive into deep learning
该书是 《Dive Into Deep Learning》的中文版,基于 Apache MXNet 框架,全面介绍深度学习从模型构造到模型训练的方方面面,以及它们在计算机视觉和自然语言处理中的应用,还提供完整的学习代码和与训练数据。一书在手,Deep Learning 我有!
Working with the Python Interactive window
终于可以在 VS Code 中使用 jupyter 了。对前端童鞋, 机器学习爱好者,VS Code 重度用户来说实在是个再好不过的消息!各种插件用起来!
沧海拾遗
沧海拾遗,积跬步以至千里
MongoDB Schema 设计
当前技术分界线日益模糊,许多前端同学也免不了接触到 MongoDB 开发和 Schema 设计,本文翻译自 MongoDB 优质博客:6 Rules of Thumb for MongoDB Schema Design,为你提供全面的 MongoDB Schema 设计原则指导。查看文章
Mongoose Modified
Mongoose-modified-at 是一款自动更新字段变化时间并记录到数据库中的 Mongoose 插件,类似 Mongoose 自带的 timestamps 功能。 查看文章
往期回顾
更多前沿技术,欢迎大家继续关注凹凸实验室公众号,小助手一直在这里等你来撩哦~
欢迎关注凹凸实验室博客:aotu.io
或者关注凹凸实验室公众号(AOTULabs),不定时推送文章:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。