公司:字节跳动
北京字节跳动科技有限公司,简称字节跳动,是一家位于中国北京的跨国互联网技术公司,成立于2012年3月,旗下有产品媒体聚合服务今日头条和短影音抖音(及其海外版本TikTok)、西瓜视频、社交平台Lemon8等,也有一些加入人工智能技术的专业生产力软件,例如剪映、办公套装拉客(lark,中国版本称飞书)等业务。
至2018年,字节跳动的移动应用月度用户超过十亿人,估值750亿美元,超越Uber成为全球最有价值的创业公司。截至2019年7月,字节跳动的产品和服务已覆盖全球150个国家和地区、75个语种,曾在40多个国家和地区位居应用商店总榜前列。
在中国互联网企业中,字节跳动是第一家没有向阿里巴巴、腾讯或百度寻求商业保护或融资的创业公司;相反地,字节跳动被认为与百度、腾讯两大巨头有强烈的竞争关系,因字节跳动资金主要来源于抖音和今日头条的广告收入。
至2020年3月,字节跳动已经有六万员工,并计划再增员一万人。投资人和内部消息将字节跳动2019年的营收定在1,040亿元至1,400亿元人民币,超过了Uber、Snapchat和推特的总和。在中国,其广告收入也超越了腾讯、仅次于阿里巴巴。抖音的全球下载量达1.15亿次,固定用户近10亿。
从场景倒推我们要什么样的微前端体系
微前端已经不是一个新概念了,大家或多或少都听说过接触过,这里不再去做一堆定义,只是对目前业界做法的调研总结 / 概览,这篇文章面向的是还没有在业务中使用过微前端的同学或团队,通过这篇概览,可以简单的建立对 「微前端」的整体认知;
总的来说「微前端」这个概念从造出来到发展如今,还处于一个百花齐放(各做各的)的发展中,没有形成统一的(市场占有高的)共识 / 标准;各个大厂 / 社区对这个概念以及背后的技术都有不同定义,各自为战,造的轮子也一堆。
GMTC 2021 演讲 《字节跳动基于 Serverless 的前端研发模式升级》
大前端时代下前端的职责和挑战?字节跳动常见的业务形态,传统研发模式和挑战?我们是如何基于 Serverless 对前端的研发模式进行升级?为了保证稳定性在监控运维方面做了哪些工作?
“零耗时”首帧视频体验的优化实践
如何将视频首帧优化到小于 100 毫秒?
字节跳动10万节点HDFS集群多机房架构演进之路
HDFS 全称是 Hadoop Distributed File System,其本身是 Apache Hadoop 项目的一个模块,作为大数据存储的基石提供高吞吐的海量数据存储能力。自从 2006 年 4 月份发布以来,HDFS 目前依然有着非常广泛的应用,以字节跳动为例,随着公司业务的高速发展,目前 HDFS 服务的规模已经到达“双 10”的级别。
字节前端提效之路 —— 从「脚手架」到「工程方案」
本文介绍了「工程方案」替换「脚手架」的方案与实践。
用户反馈驱动抖音产品体验优化实践
抖音 App 每天收到大量的用户反馈,通过 NLP 智能反馈打标模型赋能了反馈数据场景化标签的构建,实现了面向业务视角的体验指标聚合。词聚类算法实时提炼每日反馈热点,快速聚焦问题发现。构建于智能算法之上的体验管理平台旨在通过技术平台化的方式,结合反馈驱动的机制,从反馈中挖掘出对抖音系产品留存、增长或口碑提升的可能点,推动体验问题治理改进,提升产品体验。
Js是怎样运行起来的?
不知道大家有没有想过这样一个问题,我们所写的 JavaScript 代码是怎样被计算机认识并且执行的呢?这中间的过程具体是怎样的呢?
- 什么是 Js 引擎?
- Js 引擎是怎样编译执行和优化 Js 代码的?
Js 引擎有很多种,比如 Chrome 使用的 V8 引擎,Webkit 使用的是 JavaScriptCore,React Native 使用的是 Hermes。今天我们主要来分析一下比较主流的 V8 引擎是怎样运行 Js 的。
抖音研发效能建设 - CocoaPods 优化实践
抖音很早就接入 CocoaPods 进行依赖管理了,项目前期抖音只有几十个组件,业务代码也基本在壳工程内,CocoaPods 可以满足业务研发的需求,但是随着业务的不断迭代,代码急剧膨胀,同时抖音工程也在进行架构优化,比如工程组件化改造,组件的数量和复杂度不断增加:组件(Pod)数量增加到 400+ ,子组件(Subspec)数量增加到 1500+ ,部分复杂组件的描述文件(podspec)膨胀到 1000+ 行,这导致了依赖管理流程(主要是 Pod Install)的效率不断下降,同时也导致了 Xcode 检索和构建效率下降。
除了效率下降外,我们也开始遇到一些 CocoaPods 潜在的稳定性问题,比如在 CI/CD 任务并发执行的环境下 Pod Install 出现大量失败,这些问题已经严重影响了我们的研发效率。在超大工程、复杂依赖、快速迭代的背景下,CocoaPods 已经不能很好地支撑我们的研发流程了。
隐秘的印记:暗水印实践技术分享
隐藏在白纸中的密码,关于暗水印的这些实现算法你都知道吗?
JavaScript 变量命名
计算机科学中只有两个难题:缓存失效和命名。
一文了解AsyncHooks
async_hooks 模块提供了用于跟踪异步资源的 API。
Swift编译器Crash—Segmentation fault解决方案
抖音上线 Swift 后,编译时偶现Segmentation fault: 11和Illegal instruction: 4的错误,CI/CD 和本地均有出现,且重新编译后均可恢复正常。
由于属于编译器层抛出的 Crash,加之提示的错误代码不固定且非必现,一时较为棘手。网上类似错误较多,但Segmentation fault属于访问了错误内存的通用报错,参考意义较小。和公司内外的团队交流过,也有遇到类似错误,但原因各不相同,难以借鉴。
虽然 Swift 库二进制化后,相关代码不会参与编译,本地出现的概率大大减少,但在 CI/CD/仓库二进制化任务中依旧使用源码,出现问题需要手动重试,影响效率且繁琐,故深入编译器寻求解决方案。
SourceMap 与前端异常监控
一套完整的兼容 Web 生态的跨端异常监控系统,整个链路将会涉及到哪些工具链,以及如何修改这些工具链来适配我们的跨端系统。
字节跳动安全合规检测技术之Android篇
业务安全合规检测通过 CI/CD 阶段卡口,针对新增代码进行分析检查、合码管控、问题溯源,针对构建产物进行发版管控,避免隐私、合规相关问题被带到线上引发安全合规风险。
如何打造稳定、好用的 Android LayoutInspector?
本文将围绕 LayoutInspector 的痛点,分析问题并修复,最终将 LayoutInspector 变成一个稳定、好用的插件。
JSBridge原理解析——以WebviewJavascriptBridge实现方式为例
什么是JSBridge?JSBridge 是一种 webview 侧和 native 侧进行通信的手段。