数据血缘踩过哪些坑? 聊聊NDK开发那些事 | 每日掘金第182期

871 阅读7分钟

Hello,又到了每日掘金时间。酱酱们的每日掘金新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

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

  • 【本期每日掘金】亮点:
  • 前端项目重构的一些思考和复盘
  • 少有团队能够正确认识并运用组件化
  • 没写过复杂 React 组件?来实现下 AntD 的 Space 组件吧
  • 火山引擎 DataLeap:「数据血缘」踩过哪些坑?来看看字节跳动内部进化史
  • 火山引擎 DataLeap:「数据血缘」踩过哪些坑?来看看字节跳动内部进化史
  • SwiftUI精讲:自定义 Tabbar 组件 (包含过渡效果)
  • ……

筛选规则:文章发布时间在本期「酱酱们的每日掘金」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人|每日掘金

本期每日掘金由 法医 负责制作,法医是一个长期活跃于沸点的最佳摸鱼手,热爱Coding,喜欢分享,五湖四海皆兄弟,欢迎大家一起在沸点摸鱼,在掘金创作。

每日干货|每日掘金

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

项目重构是每一家稳定发展的互联企业的必经之路, 就像一个产品的诞生, 会经历产品试错产品迭代 一样, 随着业务或新技术的不断发展, 已有架构已无法满足更多业务扩展的需求, 所以只有通过重构来让产品“进化”, 才能跟上飞速发展的时代浪潮

本篇文章主要目的就是在学习 React 之前,帮助大家一起准确认识组件化。

用 React 技术栈的小伙伴基本每天都在写 React 组件,但是大多是是业务组件,并不是很复杂。基本就是传入 props,render 出最终的视图,用 hooks 组织下逻辑,最多再用下 context 跨层传递数据。那相对复杂的组件是什么样子的呢?其实 antd 组件库里就有很多。今天我们就来实现一个 antd 组件库里的组件 -- Space 组件吧。

本篇文章 耗时 7个小时左右才完工,篇幅涉及到大量的源码及其分析的过程图解和数据,阅读前,请保证自己有充分的时间,尽情的去享受吸收知识进入脑子的过程

『后端』

DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成、开发、运维、治理、资产、安全等全套数据中台建设,降低工作成本和数据维护成本、挖掘数据价值、为企业决策提供数据支撑。数据血缘是帮助用户找数据、理解数据以及使数据发挥价值的基础能力。基于字节跳动内部沉淀的数据治理经验,火山引擎 DataLeap 具备完备的数据血缘能力,本文将从数据血缘应用背景、发展概况、架构演讲以及未来展望四部分,为大家介绍数据血缘在字节跳动进化史。

时间轮(TimeWheel)是一种实现延迟功能(定时器)的精妙的高级算法,其算法应用范围非常广泛,在Java开发过程中常用的Dubbo、Netty、Akka、Quartz、ZooKeeper 、Kafka等各种框架中,各种操作系统的定时任务crontab调度都有用到,甚至Linux内核中都有用到,不夸张的是几乎所有和时间任务调度都采用了时间轮的思想。

前一段时间维护的老项目一直出现MQ消息堆积的问题,其实这个消息量本身我觉得不算是很大,但可能是之前的代码问题,导致消息一直堆积。这个老项目是用于管理设备状态的,一些设备上报的数据会通过中台服务推到MQ中,然后这个项目会监听这部分消息更新设备状态

你是不是看到各种SQL的JOIN就会感慨,为什么JOIN就能匹配到我们想要的数据,它是怎么做到的?我们能利用这个原理做什么样的优化操作?

『移动端』

当前安卓的所有proto都生成在一个module中,但是其实业务同学需要的并不是一个大杂烩, 只需要其中他们所关心的proto生成的类则足以。所以我们希望能将这样一个大杂烩的仓库打散,拆解成多个module

当我们开发程序的时,经常会出现一些错误情况,我们通常用Error类来反映错误内容,如网络中有HttpError,数据库中DbError等等,这些错误的采集和分析对程序改进尤为重要,在ReactNative(后续简称RN)中也有错误,RN是基于React开发的跨平台开发框架,代码采用JS实现,所以本文在介绍RN错误采集之前先介绍JS中常见的错误,再通过源码来分析RN错误收集原理,最后介绍RN错误兜底方案,为后续RN在业务实践中做好理论基础,帮助改善程序稳定性

ndk全称Native Developer Kits,Android NDK也是Android SDK的一个扩展集,用来扩展SDK的功能。 NDK打通了Java和C/C++之间的开发障碍,让Android开发者也可以使用C/C++语言开发APP

手机应用的动态换肤功能目前已经使用的比较广泛了,也有许多文章分析了其中的原理,使用方式也大同小异,基本都需要在应用内集成一个三方的框架,或独立开发一个换肤框架。此类换肤方式需要长期维护一套换肤框架,对原始应用存在一定的侵入性,开发的复杂度、工作量都会比较大。车载应用出于稳定性的考虑,对于引入第三方框架会比较克制,所以目前车载系统应用少见有直接采用手机应用换肤方案的,那么车载应用要如何在降低复杂度、工作量的前提下实现应用换肤呢?

Tabbar是我们日常开发中经常使用到的组件,然而在SwiftUI中,Tabbar目前只有TabView有相关的实现,这显然是不符合我们日常开发的需求的,所以让我们一起看看如何实现自定义的Tabbar吧~

📖 投稿专区|每日掘金

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。