前端必读的Tapable源码、Nacos深度源码解析|掘金一周 11.16

2,859 阅读10分钟

本文字数 3600+ ,阅读时间大约需要 9 分钟。

【掘金一周】本期亮点:

上榜规则:文章发布时间在本期「掘金一周」发布时间的前一个月内;且符合各个栏目的内容定位和要求。

一周“金”选

image.png

内容评审们会在过去的一周内对社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方榜单中,排名不分先后。

前端

信仰崩了?Preact 开始采用 Vue3 的响应式设计 @ 手撕红黑树

Preact框架一开始是CodePen上的一个小项目,引发大量关注后作者开始逐步完善。那么这个号称“只有3kb大小、并且与React拥有相同API”的框架到底如何呢?

【中级/高级前端】为什么我建议你一定要读一读 Tapable 源码? @ 不要秃头啊

所有人都知道 Webpack 很复杂,但 Webpack 的源码却很优雅,是一个典型的可插拔架构,不仅逻辑清晰,而且灵活好扩展。近几年出来的一些构建工具,大多也都参考了 Webpack 的这种架构方式。

而实现这一切的核心就是借助了 Tapable。学习它的原理首当其冲的一定是可以让你在日常 Webpack Plugin 开发中更得心应手,解决相关问题更加顺畅。

一次搞懂数据大屏适配方案 (vw vh、rem、scale) @ 懒惰的智慧

当接到可视化大屏需求时,你是否会有以下疑问:如何做一款定制化的数据大屏? 开发可视化数据大屏如何做自适应? vm vh、rem、scale 到底哪种比较好? 时间不够,有没有偷懒的方法?

后端

这些不知道,别说你熟悉 Nacos,深度源码解析! @ CodeFox

这篇文章聊下 SpringCloudAlibaba 中的微服务组件 Nacos。Nacos 既能做注册中心,又能做配置中心。本文将分析做配置中心时 client 端的一些设计,主要从源码层面进行分析,相信看完这篇文章你对 Nacos client 端的工作原理应该有比较深刻的了解。

再有人问你如何实现订单到期关闭,就把这篇文章发给他! @ HollisChuang

在电商、支付等系统中,会出现到期自动收货、超时自动退款、下单后自动发送短信等等业务问题。本文就从这样的业务问题出发,探讨一下都有哪些技术方案,这些方案的实现细节,以及相关的优缺点都有什么。

如何避免写重复代码:善用抽象和组合 @ 阿里巴巴大淘宝技术

通过抽象和组合,我们可以编写出更加简洁、易于理解和稳定的代码;类似于金字塔的建筑过程,我们总是可以在一层抽象之上再叠加一层,从而达到自己的目标。但是在日常的开发工作中,我们如何进行实践呢?本文将以笔者在Akka项目中的一段社区贡献作为引子分享笔者的一点心得。

Java实现异步编程的8种方式 @ austin流川枫

异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过异步实现的场景。本文梳理下实现异步的8种方式。

Java8中那些方便又实用的Map函数 @ 扣钉日记

java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性,一起来看看吧。

泛型的类型擦除后,fastjson反序列化时如何还原? @ 码农参上

Java中带有泛型的实体的反序列化过程是如何实现的,本文就来一起看看这个问题。

Android

Flutter 组件集录 | FlexibleSpaceBar 组件是怎么炼成的 @ 张风捷特烈

FlexibleSpaceBar 是一个和 SliverAppBar 共生的组件,一般不单独使用。在滑动的过程中 FlexibleSpaceBartitle 区域会有缩放的效果。不过这个缩放是对整个 title 组件生效的。如何只让主标题有缩放效果,下面的副标题在滑动过程中一直保持不变呢?或者如何监听滑动的分率,实现一些自定义的变换效果呢?这就要从 FlexibleSpaceBar 组件的源码中寻找答案,看它是否支持这种效果,如果不支持,我们该如何自己实现。

IOS

货拉拉货运iOS用户端架构优化实践 @ 货拉拉技术

在移动应用发展过程中,随着团队人员的扩大、业务复杂化,代码量随之增多,从而带来了团队协作开发中各种各样的问题。

而一个合理的架构设计可以解决大型项目跨团队协作分工和多业务线并行开发的效率问题,货运iOS用户端当前处理这样一个低效率的问题上,需要成立一个技术专项,解决老的架构带来的问题。 最终达到降本增效,提升多人协作的开发效率。

源码探索SwiftUI框架—TCA @ 移动端小伙伴

苹果官方的 SwiftUI 数据流转过程主要表达了:SwiftUI 是 数据驱动 UI,这个概念在传统的 iOS 开发中很新颖,在框架的选择上我们是用 MVC、MVP、MVVM 呢?貌似都不合适。

而有两位大神设计和开发出来一个合适的框架了:TCA,该项目在 Github 上已有 7.4k Star,让我们来详细了解下吧。

人工智能

美团图灵机器学习平台性能起飞的秘密(一) @ 美团技术团队

美团图灵机器学习平台在长期的优化实践中,积累了一系列独特的优化方法。本文主要介绍了图灵机器学习平台在内存优化方面沉淀的优化技术,深入到源码层面,介绍了Spark算子的原理并提供了最佳实践。希望为读者带来一些思路上的启发。

热点观察

image.png 搜集行业热点,洞察技术趋势。

前端

蚂蚁互动图形引擎 Oasis Engine v0.9 发布 @ 蚂蚁RichLab前端团队

蚂蚁互动图形引擎Oasis Engine v0.9 正式发布,本次里程碑后 Oasis Engine 正式成为蚂蚁互动技术品牌 Ant Galaxy 旗下核心基础引擎,原 Github 官方组织名 oasis-engine 已修改为 ant-galaxy。

IOS

iOS 求职寒冬?听听他们怎么说 @ zhangferry

笔者最近在帮团队招人,像朋友圈、脉脉、公众号添了不少推广信息,但能捞到的简历却很少,仅有的简历,能通过筛选的不足 1/3,可见招人之难。另一方面,现在找工作也难,因为今年被裁员的人有很多,很多公司还锁了 HC,市场整体竞争压力大。但这两个问题不应该一起出现才对,找工作人多,应该更容易捞到简历,更容易招到合适的人,然而事实却相反,这就很奇怪了,那这里面的 gap 到底在哪里呢?

程序人生

image.png 前端架构师的一些思考和总结 @ 阿里巴巴大淘宝技术

大数据前端团队生存指南 @ 政采云前端团队

我对技术社区“标题党”增多现象的思考 @ 岛民小强

当你有了技术深度,很可能也同时有了技术广度 @ zxg_神说要有光

签约作者专栏

插图.png

本专栏为签约作者专栏,将持续关注其更新动态,统计时间为本期「掘金一周」发布时间的前一个周内。

由于签约作者文章会单独进行稿费结算,因此不会记入掘金一周的奖品发放

分类作者专栏
前端冴羽React 基础与进阶
前端掘金安东尼JavaScript 函数式编程精要 —— 签约作者安东尼
前端井柏然实战前端发布平台,打开CICD黑盒
前端CookieBoty前端全栈之路
前端小杜杜React 深入进阶
前端Tusi基于Vite+AntDesignVue打造业务组件库
前端_小九探索前端工程化,快速实现组件库开发
前端十里青山玩转css
前端CobyteElement Plus 组件库相关技术揭秘
前端前端森林如何设计实现营销搭建系统
前端老骥farmer手摸手打造类码上掘金在线IDE
前端早晚会起风从 ECMAScript 语言规范和浏览器引擎的视角认识 JavaScript
后端不够优雅服务端模块化架构设计
后端竹子爱熊猫全解MySQL数据库
后端kevinyanJava 核心通关指南
后端架构悟道深入理解缓存原理与实战设计
后端小白debug图解网络基础
后端柏炎从0到1搭建基础架构框架
后端苏三说技术spring
iOS文如秋雨SwiftUI项目实战
Android彭旭锐小彭说 · 数据结构与算法
AndroidDylanCaiAndroid 组件化开发从原理到实战
AndroidloongwindAndroid Jetpack Compose 动画使用详解
AndroidPikaAndroid性能优化
Androidfundroid深入浅出 Compose 编译器
Android编程的平行世界Flutter从0到1实现高性能、多功能的富文本编辑器
Android恋猫de小郭Flutter 工程化框架选择
Android张风捷特烈Flutter 知识进阶 - 异步编程
AndroidZhujiangCompose开发艺术探索
人工智能秃头小苏深度学习网络原理与实战

社区活动日历

image.png

活动日历

活动名称活动时间活动主理人
等级用户专属活动上线啦丨写好文,瓜分6万元现金大奖11月7日 - 12月10日@小斗金
✍🏻 技术专题征文19期 漫谈数据库技术11月1日 - 11月25日@小斗金

社区官方公告

📖 投稿专区

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在下期掘金一周发布前一个月以内;可以推荐自己的文章、也可以推荐他人的文章。

🏆 掘金一周上榜激励

我们会对上榜作者进行一定的流量扶持和奖励,按双月统计发放 1 次,除此之外,多次上榜的作者还有机会获得官方颁布的 《掘金一周 ·金选作者》实体证书哦!请大家注意“掘金一周”的更新。