公司:字节跳动
北京字节跳动科技有限公司,简称字节跳动,是一家位于中国北京的跨国互联网技术公司,成立于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亿。
从一次重构组件代码来谈谈前端多语言最佳实践
我们的一些业务组件需要支持多语言,这些单独发包的组件翻译文案通常都维护在项目一些文件夹下,并且每个需要翻译的文案在代码中都需要手动用 intl.get(key)包裹来实现运行时翻译,开发者也需要根据这些文案一个一个去谷歌进行多种语言翻译,然后再写到项目中。这在无形中给组件开发者加重了开发成本,并且如果翻译有误,PM 和运营同学也无法去代码仓库去修改这些翻译。所以业务组件需要一套更标准,更轻量的多语言方案,来替代上面这些手动工作。经过一些调研后,决定采用公司的 translate-cli + 国际化翻译平台 + 外部开源的 react-intl-universal 来完成组件的多语言。
既然决定了采用新的多语言方案,那么目前翻译文案维护在本地的现存组件就要去改造来接入新的多语言方案。但是现存的组件有 30+个,如果让这些组件的开发者每个组件一个一个文件去改造,会带来很大的成本。而且这些组件的修改内容其实都是一样的,那么完全可以开发一个 CLI 命令去让开发者在自己的组件根目录执行一次,一键完成组件的多语言方案迁移。这样就能很大的减轻了开发者的改造成本。
汉字描红在Flutter侧的落地
汉字自动描红是 大力爱辅导-语文字词专项 中的重要功能部分。前期技术调研阶段发现,公司内部已经存在能够满足需求效果的Native SDK,但是考虑到以下原因:
- 字词专项的技术选型是Flutter作为主要实现
- 汉字绘制或者描红的需求在多功能、多界面中出现
- 大量使用PlatformView对Flutter界面的性能有较大伤害 最终决定,使用Flutter实现一套汉字自动描红的方案,便于集成和后续相似功能迭代。
汉字笔顺动画技术剖析
汉字笔顺动画是常见的语文教育需求,我们导入网上开源的 Hanzi Writter 并部署编辑器,应用在大力智能作业灯上。在原版前端实现基础上我们扩展了 Android 和 iOS 端实现,提供更优化的笔顺动画性能。增强对笔顺绘制的控制能力,实现了指定笔顺/笔段渲染,支持笔顺批改和描红能力。
今日头条 ANR 优化实践系列 - 告别 SharedPreference 等待
本文从源码层面分析在加载和写入过程中,导致 ANR 问题的原因以及相关的优化解决方案。
Hi~ 这将是一个通用的新手引导解决方案
功能引导组件就是互联网产品中的指示牌,它旨在带领用户参观产品,帮助用户熟悉新的界面、交互与功能。
轻松玩转移动AI,一键集成的端智能框架Pitaya
Pitaya是专门为移动端打造的端智能一体化方案,与传统方案相比,它在使用成本、动态化能力、多方协作效率及算法、模型的高度复用等方面具备领先优势。
这个“宝藏”框架背后的技术是怎样实现的呢?
云原生负载均衡和网关应用实践
Kubernetes 上运行的应用如何进行服务暴露以及网关管理?
学会黑科技,一招搞定 iOS 14.2 的 libffi crash
苹果升级 14.2,全球 iOS 遭了秧。libffi 在 iOS14.2 上发生了 crash, 我司的许多 App 深受困扰,有许多基础库都是用了 libffi。
经过定位,发现是 vmremap 导致的 code sign error。我们通过使用静态 trampoline 的方式让 libffi 不需要使用 vmremap,解决了这个问题。这里就介绍一下相关的实现原理。
懒加载 React 长页面 - 动态渲染组件
长页面在前端开发中是非常常见的。例如下图中的电商首页,楼层数据来自运营人员在后台的配置,楼层数量是不固定的,同时每个楼层可能会依赖更多翻页数据。在这种情况下,如果一次性将页面全部渲染,可想而知,我们的页面直出效率(fmp, fid)会受到影响。
为了更好的用户体验,我们需要考虑在用户滚动到下一屏时,渲染下一屏的组件。
字节跳动副总裁杨震原:A/B测试不是万能的,但不会一定不行
“A/B测试不一定是最好的评估方法。它不是万能的,但不会A/B测试肯定是不行的。”4月20日,首个火山引擎技术开放日在北京方恒时尚中心举办,字节跳动副总
字节跳动有状态应用云原生实践
有状态应用云原生化过程中在状态管理、基础能力增强、自动化运维等方面的挑战和应对。
西瓜视频稳定性治理体系建设二:Raphael 原理及实践
Raphael [1]是西瓜视频基础技术团队开发的一款 native 内存泄漏检测工具,广泛用于字节跳动旗下各大 App 的 native 内存泄漏治理,收益显著。工具现已开源,本文将通过原理、方案和实践来剖析 Raphael 的相关细节。
基于深度学习的超分辨率效果优化
字节跳动视频业务线上每天都能接收到海量的投稿视频,我们在服务端接收到这些视频时,可以发现由于上传用户的拍摄设备性能层次不齐,存在大量低清低质视频。为了提升这类低清视频的清晰度,我们可以在服务端对其使用超分辨率算法。
突破视频编码模式级压缩瓶颈:一种基于长短期相关性建模的帧内模式编码方法
视频压缩的核心在于去除视频信号中的冗余信息,而其中对于空域冗余的去除通常使用帧内预测的方式来实现。
极致首帧播放方案 - 零首帧解决方案
首帧时间,是指用户从点击开始播放到视频首帧画面展现出来的时间。
抖音 iOS 工程架构演进
2016.09.26,抖音版本 1.0.0 上线,随后不断迭代优化和丰富产品,截止目前,抖音日活跃用户突破 6 亿,短短 4 年间,抖音从零爆发性增长。
快速的业务发展也对技术支撑提出了更高的要求,为了保障敏捷的业务开发,提升跨团队的协同合作效率,提高本地研发和 CI/CD 效率,抖音 iOS App 工程架构在不同的阶段进行了不同的技术方案的改进,满足合理的架构演化,同时又不影响正常的业务迭代速度。