React.lazy 主要用于实现组件的动态加载,从而减少初始加载时间并提高应用的性能。在 React 应用中有较大的组件需要加载时,使用 React.lazy 可以帮助我们优化性能,只在需要时才加载这些组件。这对于减少初始加载时间和减轻页面负担非常有帮助。
“幸福里”是抖音集团旗下集内容、社区、工具于一体的房产媒体综合信息平台,致力于提供多样化房产资讯、定制找房需求。随着幸福里业务发展,为了满足业务对于数据使用、指标观测等需求,团队快速落地了数仓建设。但由于早期“先建后治”,导致现阶段数据治理难题频发。 其中,异常突出的是离线数仓SLA延迟大,高达13天。对于需要实时看到数据情况的经纪人、用户等人来说,延时可能会影响到数据价值的产出。
抖音小程序开发者工具(https://developer.open-douyin.com/docs/resource/zh-CN/mini-app/develop/developer-instrument/overview)是面向字节系小程序开发者推出的桌面端集成开发环境,支持小程序开发、调试、预览、上传等基本功能,旨在帮助开发者更高效地开发小程序,我也是负责本地开发能力的建设。 因为工作原因最近对断点调试进行一些研究,百度了一下,遗憾的是发现网络上大部分内容都是在教学如何使用调试工具,并没有扩展到具体的细节,譬如通信逻辑,基本原理等。因此,为了尝试去弄懂一些断点调试的底层逻辑,特意去找了一些英文文档并实践。
冷启动指标是App体验中相当重要的指标,在电商App中更是对用户的留存意愿有着举足轻重的影响。通常是指App进程启动到首页首帧出现的耗时,但是在用户体验的角度来看,应当是从用户点击App图标,到首页内容完全展示结束。 将启动阶段工作分配为任务并构造出有向无环图的设计已经是现阶段组件化App的启动框架标配,但是受限于移动端的性能瓶颈,高并发度的设计使用不当往往会让锁竞争、磁盘IO阻塞等耗时问题频繁出现。如何百尺竿头更进一步,在启动阶段有限的时间里,将有限的资源最大化利用,在保障业务功能稳定的前提下尽可能压缩主线程耗时,是本文将要探讨的主题。 本文将介绍我们是如何通过对启动阶段的系统资源做统一管控,按需分配和错峰加载等手段将得物App的线上启动指标降低10%,线下指标降低34%,并在同类型的电商App中提升至Top3。
百度知道是一个诞生于2005年的产品,知道在过去的17年中作为搜索内容生态天然载体,致力于用问答沉淀知识。百度知道至今共解答了6.5亿问题,其中被集中关注的问题逐渐被优化完善,沉淀为了体系性的知识。与此同时,互联网内容供给也经历了爆发性的增长。在这个00后用户崭露头角的时代,人们对于知识获取的需求也更加注重效率。 在知道18周年之际,我们拓展了【知识笔记】新场域,将沉淀内容升级为知识笔记,通过简单、沉浸式的交互,简化信息获取途径,让用户把注意力集中在深度消费优质内容上。
设计模式是软件开发中的重要经验总结,Gang of Four (GoF) 提出的经典设计模式则被誉为设计模式中的“圣经”。但是设计模式往往是以抽象和理论化的方式呈现,对于初学者或者没有太多实战经验的开发者来说,直接学习设计模式往往会显得枯燥乏味。 市面上或者网上也经常有一些书籍或者文章,尝试以实际的应用场景深入浅出地介绍设计模式。但是这些资料所列举的样例或应用实践,往往都是一些构造的虚拟场景,缺乏生产级软件的真实应用。而软件理论最重要的是学以致用,那是否有真实生产级代码的学习机会呢? iLogtail 作为一款阿里云日志服务(SLS)团队自研的可观测数据采集器,目前已经在 Github 开源,其核心定位是帮助开发者构建统一的数据采集层。iLogtail 在多年的技术演进过程中,也一直在尝试进行各种设计模式的应用,这些设计模式的应用大大提升了软件的质量与可维护性。本文我们将结合 iLogtail 项目,从实践角度探讨一些常见设计模式的技术原理。在这里也要感谢字节跳动多位同学对 iLogtail Golang 部分架构的一些升级优化。
内容架构是 QQ 浏览器搜索的内容接入和计算层,主要负责腾讯域内的内容接入和处理,当前接入了多个合作方的上千类内容。正如前面《如何避免旧代码成包袱?5步教你接手别人的系统》中提到,这是一套包含 93 个小服务的微服务架构。经过 23 年 Q1 的大力治理,让我们稳住阵脚,进一步对老系统做深入的评估: 研发效率较低:新增一类数据需要在 3~4 个服务上做开发,代码量不多,但很繁琐。 系统性能较差:数据流经多个小服务,且服务内部的实现普遍较差。譬如:核心服务的 CPU 最高只能用到 40%、一条消息从进入到流出需要经过 20 多次的反复 JSON 解析、多处存在多余的字符串拷贝和查找... 从架构和代码层面,我们看到系统存在较多的缺陷,同时我们也多次收到业务同学、上层领导对吞吐性能的投诉反馈,譬如:传输 6 亿的文档需要 12 天,太慢了;内容接入周期太长,成了某项目的瓶颈等等。 作为偏后方的基础架构系统,可靠高效是基本要求, 我们决定对系统做彻底的改造,设计简单的系统、写清晰的代码,提升系统性能和研发效率,为搜索业务提供稳定高效服务。