开源之初,我们给自己定下 star 数量超过 70 个就行的心态,却意外得到了 1600 多 star,很受鼓舞~ 那一刻起,我们知道,在前端框架“泛滥”的时代,还有一些人在追随原生技术,大道至简,平淡为归。 这也让我们想起了 kk 说的那句话:所有创新都发生在事物边缘,所有的颠覆都来自边缘。 今天,我们正式对外开源 Quark 生态 的又一成员,Quarkc(Quark core 缩写)。下面来做个简单介绍吧 :)
今天,B站就要满14岁啦!我们哔哩哔哩技术从注册账号发表第一篇文章到现在也有一年有余的时间,感谢大家一直以来的支持。在这一年多里,我们一共发表了145篇原创技术分享文章。 为庆祝哔哩哔哩14周年,我们特别整合了2022-2023年度的文章,将其分类做成内容合集,涵盖了后端、前端、运维与安全、大数据、AI、测试、业务线和音视频图像多个技术领域,沉淀了B站在UGC、OGV、直播、会员购、游戏等多个业务的技术讲解和输出。 我们真诚地希望这份知识沉淀能为诸位小伙伴们带来帮助,强烈建议一键收藏!
在一年多前,我们对外正式开源了 btrace(AKA RheaTrace),它是基于 Systrace 的高性能 Trace 工具,目前字节跳动已经有接近 10+ 产品团队使用 btrace 做日常性能优化工作。在这一年期间,我们收到很多社区以及公司内部反馈,包括使用体验、性能体验、监控数据等上都收到众多反馈,我们汇总了大家反馈的内容,主要包括以下三类: 使用体验:Windows 有着大量用户群体,但 btrace 1.0 未支持;桌面脚本依赖 Systrace 和 Python 2.7 环境,导致环境搭建十分复杂,此外手机端还依赖外部存储访问权限,在初次使用时很容易导致打断。同时产物体积庞大,网页打开速度很慢。 性能体验:大型应用插桩数量达到百万级别,性能损耗接近 100%,对性能优化工作产生一定困扰。 监控数据:在 Trace 分析过程中,有些信息是缺失的,并不知道耗时原因,比如目前 Trace 中仅包含 synchronized 锁信息,缺少 ReentrantLock 等其他锁信息,同时渲染监控只有部分系统关键路径信息,缺少业务层信息。
早在 2012 年淘宝开始无线化探索时,店铺页面就作为一个重要的业务形态出现在「淘宝APP」之中。店铺是电商交易核心链路中的重要一环,也是商家运营私域流量的一个重要载体。通过店铺平台,商家可以个性化装修自己的店铺页面,运营自己的会员粉丝,与消费者之间创造更多的连接,挖掘更大的价值。因此,店铺的开放属性也一直是店铺业务的重要能力之一。伴随着店铺产品的迭代升级、运营策略的升级、二方业务的不断接入、以及开放能力的增强和店铺定制化程度的提升,店铺框架在技术侧也在不断的演进升级中。 最早起的无线店铺形态,页面结构比较简单,装修模块只支持官方定制,无法开放给外部开发者进行定制。 店铺装修能力探索。提供了一套模块开放的 JSON 协议,店铺装修模块具备了一定的开放能力。但是 JSON 协议为非标准化协议,可读性差,难以组件化,无法实现复杂交互。 店铺样式动态化。基于高性能动态化框架 Weex 进行开发,对接前端完善的工具链和研发模式,符合前端开发习惯,有助于提升 ISV 生产力,同时支持动画、支持轻量级的组件扩展和 API 扩展,交互体验和端侧能力得到巨大提升。
消息中心是一个集中管理、分发通知和提醒的平台,可以让用户或系统消息更方便、快捷的触达给指定用户或者系统。并且可以帮助用户或系统更好地管理消息的生命周期,屏蔽不同消息渠道差异与技术差异,从而提升效率与体验,降低维护成本。
开发者在程序设计时,擅于运用优秀合理的算法相较于被动陷入逻辑之沼潭,是更被推荐的上上之策。算法的思想精髓是值得每个开发者深入研究和细细品味。本文总结腾讯游戏、微信红包等腾讯王牌的后台开发在设计过程中涉及到的一些常用算法,试图尽量以简洁的文字和图表来解释和说明其中的思想原理,希望能给大家带来一些思考和启示。
端到端语音识别系统在足够多数据上训练后,往往能达到不错的识别效果,然而在实际应用场景中,对于不常见的专有名词,例如人名、产品名、小区名等,往往容易识别错误,此类问题需要快速修复,这就需要用到热词增强功能。 WeNet目前已支持CPU Runtime的热词,包含CTC Prefix Beam Search 和 WFST Beam Search两种解码器的实现,我们在GPU Runtime中的ctc_decoder解码器的基础上实现了热词增强,可同时支持流式与非流式服务,GPU热词已在线上广泛应用。近期,我们将热词代码开源至了WeNet社区[1]。 本文将分别介绍热词的实现方案、使用方法,以及测试效果。
从传统数仓、湖仓一体再到云数仓,技术快速迭代,云数仓已经成为数字化基础设施中的关键“底座”。如何才能丝滑使用一款云数仓产品,本篇文章用五个步骤教你搞定!