动态

列表
创建 时间

從0到1實現:AI版你畫我猜小遊戲

作者: vivo 互聯網前端團隊- Wei Xing 全民AI時代,前端er該如何蹭上這波熱度?本文將一步步帶大家瞭解前端應該如何結合端側AI模型,實現一個AI版你畫我猜小遊戲。 1分鐘看圖掌握核心觀點👇 本文提供配套演示代碼,可下載體驗: Github | vivo-ai-quickdraw 一、引言 近幾年AI的進化速度堪比科幻片——昨天還在調教ChatGPT寫詩,今天Sora已經

创建 时间

前端 JS 安全對抗原理與實踐

作者:vivo 互聯網安全團隊- Luo Bingsong 前端代碼都是公開的,為了提高代碼的破解成本、保證JS代碼裏的一些重要邏輯不被居心叵測的人利用,需要使用一些加密和混淆的防護手段。 一、概念解析 1.1 什麼是接口加密 如今這個時代,數據已經變得越來越重要,網頁和APP是主流的數據載體,如果獲取數據的接口沒有設置任何的保護措施的話,數據就會被輕易地竊取或篡改。 除了數據泄露外,一些重要功能

创建 时间

高性能無鎖隊列 Disruptor 核心原理分析及其在i主題業務中的應用

作者:來自 vivo 互聯網服務器團隊- Li Wanghong 本文首先介紹了 Disruptor 高性能內存隊列的基本概念、使用 Demo、高性能原理及源碼分析,最後通過兩個例子介紹了 Disruptor 在i主題業務中的應用。 一、i主題及 Disruptor 簡介 i主題是 vivo 旗下的一款主題商店 app,用户可以通過下載主題、壁紙、字體等,實現對手機界面風格的一鍵更換和自定義。 D

创建 时间

一次基於AST的大規模代碼遷移實踐

作者:來自 vivo 互聯網大前端團隊- Wei Xing 在研發項目過程中,我們經常會遇到技術架構迭代更新的需求,通過技術的迭代更新,讓項目從新的技術特性中受益,但由於很多新的技術迭代版本並不能完全向下兼容,包含了很多非兼容性的改變(Breaking Changes),因此我們需要設計一款工具,幫助我們完成大規模代碼自動遷移問題。本文簡單闡述了基於 AST 的代碼遷移概念和大致流程,並通過代碼案

创建 时间

NLLB 與 ChatGPT 雙向優化:探索翻譯模型與語言模型在小語種應用的融合策略

作者:來自 vivo 互聯網算法團隊- Huang Minghui 本文探討了 NLLB 翻譯模型與 ChatGPT 在小語種應用中的雙向優化策略。首先介紹了 NLLB-200 的背景、數據、分詞器和模型,以及其與 LLM(Large Language Model)的異同和協同關係。接着列舉了實戰與應用的案例,包括使用 ChatGPT 生成的樣本微調 NLLB-200 和使用 NLLB-200 的

创建 时间

基於 Three.js 的 3D 模型加載優化

作者:來自 vivo 互聯網前端團隊- Su Ning 作為一個3D的項目,從用户打開頁面到最終模型的渲染需要經過多個流程,加載的時間也會比普通的H5項目要更長一些,從而造成大量的用户流失。為了提升首屏加載的轉化率,需要儘可能的降低loading的時間。這裏就分享一些我們在模型加載優化方面的心得。 一、前言 近段時間,我們使用three.js完成了vivo擬我形象的開發工作,大家可以在vivo賬號

创建 时间

Android模塊化開發實踐

一、前言 隨着業務的快速發展,現在的互聯網App越來越大,為了提高團隊開發效率,模塊化開發已經成為主流的開發模式。正好最近完成了vivo官網App業務模塊化改造的工作,所以本文就對模塊化開發模式進行一次全面的介紹,並總結模塊化改造經驗,幫助兄弟項目避坑。 二、什麼是模塊化開發 首先我們搞清兩個概念,Android客户端開發目前有兩種模式:單工程開發模式和模塊化開發模式。 單工程開發模式:早期業

创建 时间

如何“拼”出一個頁面-遊戲中心模塊化實踐

一、背景 vivo遊戲中心是一款垂類的應用商店,為用户提供了多元化遊戲的下載渠道。隨着遊戲中心手遊品類的豐富,各品類用户的量級也不斷增加,不同遊戲偏好的用户核心關注點也不同,從預約、測試、首發、更新到維護,不同遊戲生命週期節點的運營需要突出的重點不同。 針對上述不同業務場景,運營人員為了服務好廣大的vivo遊戲用户,需要進行精細化運營,以不同的視覺樣式呈現給不同用户。比如,針對獨立遊戲品類的用户,

创建 时间

Tars-Cpp 協程實現分析

作者:vivo 互聯網服務器團隊- Ye Feng 本文介紹了協程的概念,並討論了 Tars Cpp 協程的實現原理和源碼分析。 一、前言 Tars 是 Linux 基金會的開源項目(https://github.com/TarsCloud),它是基於名字服務使用 Tars 協議的高性能 RPC 開發框架,配套一體化的運營管理平台,並通過伸縮調度,實現運維半托管服務。Tars 集可擴展協議編解碼、

创建 时间

vivo Pulsar 萬億級消息處理實踐(2)-從0到1建設 Pulsar 指標監控鏈路

作者:vivo 互聯網大數據團隊- You Shuo 本文是《vivo Pulsar萬億級消息處理實踐》系列文章第2篇,Pulsar支持上報分區粒度指標,Kafka則沒有分區粒度的指標,所以Pulsar的指標量級要遠大於Kafka。在Pulsar平台建設初期,提供一個穩定、低時延的監控鏈路尤為重要。 系列文章: 《vivo Pulsar萬億級消息處理實踐-數據發送原理解析和性能調優

创建 时间

vivo Pulsar 萬億級消息處理實踐(3)-KoP指標異常修復

作者:vivo 互聯網大數據團隊- Chen Jianbo 本文是《vivo Pulsar萬億級消息處理實踐》系列文章第3篇。 Pulsar是Apache基金會的開源分佈式流處理平台和消息中間件,它實現了Kafka的協議,可以讓使用Kafka API的應用直接遷移至Pulsar,這使得Pulsar在Kafka生態系統中更加容易被接受和使用。KoP提供了從Kafka到Pulsar的無縫轉換,

创建 时间

vivo 海量微服務架構最新實踐

作者:來自 vivo 互聯網中間件團隊 本文根據羅亮老師在“2023 vivo開發者大會"現場演講內容整理而成。公眾號回覆【2023 VDC】獲取互聯網技術分會場議題相關資料。 vivo微服務平台為全球5億+用户背後的全網十萬級機器、萬級微服務提供服務,在高效實踐過程中,vivo中間件平台團隊輸出了一套業務適用的微服務架構最佳實踐--架構能力矩陣、高效的開源中間件組件全生命週期管理策略,走出了一條

创建 时间

vivo Pulsar 萬億級消息處理實踐(4)-Ansible運維部署

作者:Liu Sikang、互聯網大數據團隊-Luo Mingbo Pulsar作為下一代雲原生架構的分佈式消息中間件,存算分離的架構設計能有效解決大數據場景下分佈式消息中間件老牌一哥"Kafka"存在的諸多問題,2021年vivo 分佈式消息中間件團隊正式開啓對Pulsar的調研,2022年正式引入Pulsar作為大數據場景下的分佈式消息中間件,本篇文章主要從Pulsar運維痛點、Ansi

创建 时间

基於three.js的虛擬人陰影渲染優化方案

作者:來自 vivo 互聯網大前端團隊- Su Ning 本文將探討 three.js 中的陰影渲染機制,並分享一些針對性能和效果優化的實用技巧,幫助開發者在不同場景下做出最佳的權衡選擇。 一、前言 在3D網頁應用中,高質量的陰影渲染對於營造場景的真實感至關重要。作為廣泛採用的 WebGL 框架之一,three.js 為開發者提供了多種陰影渲染選項,使得創建生動逼真的光影效果成為可能。然而,實現這

创建 时间

擁抱新一代 Web 3D 引擎,Three.js 項目快速升級 Galacean 指南

作者: vivo 互聯網前端團隊- Su Ning 本文從多個維度對比 Galacean 和 Three.js 兩款Web3D 引擎的差異,並介紹擬我形象項目從Three.js 切換到 Galacean 以後帶來的提升以及項目遷移的心得,為其他 Three.js 項目升級到 Galacean 提供參考。 1分鐘看圖掌握核心觀點👇 一、背景 Web 3D 技術的發展日新月異,為我們帶來了

创建 时间

線上ES集羣參數配置引起的業務異常案例分析

作者:vivo 互聯網數據庫團隊- Liu Huang 本文介紹了一次排查Elasticsearch node_concurrent_recoveries 引發的性能問題的過程。 一、故障描述 1.1 故障現象 1. 業務反饋 業務部分讀請求拋出請求超時的錯誤。 2. 故障定位信息獲取 故障開始時間 19:30左右開始 故障拋出異常日誌 錯誤日誌拋出timeout錯誤。 故障之前的

创建 时间

主打一個“小巧靈動”:Vite + Svelte

作者:來自 vivo 互聯網大前端團隊- Wei Xing 在研發小型項目時,傳統的 Vue、React 顯得太“笨重”。本文主要針對開發小型項目的場景,談談 Vite+Svelte 是如何讓項目變得“小巧靈動”,並橫向對比 Svelte 和 Vue 的性能表現,對二者的加載流程做詳細分析。 一、背景 為了統一技術標準、提升協作效率,通常在前端團隊內部只會保留一套通用的研發框架。尤其是在團隊初創時

创建 时间

FunProxy - 使用 Rust 構建跨平台全鏈路測試抓包代理工具

作者:vivo 互聯網大前端團隊- Song Jiachao 在軟件開發過程中,軟件測試對於保障軟件質量和用户滿意度起着關鍵作用。為最大程度上提升軟件品質,我們積極開展全鏈路測試實踐,打造了用Rust語言開發的自研一站式抓包代理工具FunProxy,基於其跨平台、高性能、易於擴展、安全性高等特性,讓全鏈路抓包和環境代理如絲綢般絲滑。 一、背景介紹 1.1 什麼是全鏈路測試 全鏈路測試就是"

创建 时间

Full GC 頻率優化實戰

作者:vivo 互聯網服務器團隊- Li Gang 本文介紹了遊戲業務使用MAT和GC日誌等工具對 Full GC頻率進行優化的過程。 一、背景 遊戲業務面對用户端的某個工程,每天Full GC頻率達到120次,業務高峯期每7分鐘就會有一次Full GC。為了避免情況持續變差,最大程度減少對系統響應時間的負面影響,需要對該工程的Full GC頻率進行優化。 該項目JDK版本為1.8,老年代使用

创建 时间

純前端實現圖片偽3D視差效果

作者:vivo 互聯網前端團隊- Su Ning 本文通過depth-anything獲取圖片的深度圖,同時基於pixi.js,通過着色器編程,實現了通過深度圖驅動的偽3D效果。該方案支持鼠標/手勢與手機陀螺儀雙模式交互,在保證性能的同時,為不同終端用户提供沉浸式的視覺體驗。 本文提供配套演示代碼,可下載體驗: Github | vivo-parallax 一、引言 在當今的網頁設計與交互

创建 时间

號碼生成系統的創新實踐:遊戲週週樂幸運碼設計

作者: vivo 互聯網服務器團隊- Zhang Jing 本文以遊戲週週樂的幸運碼為切入點,針對其生成過程中涉及的隨機性、唯一性及高併發等特點,設計了一種基於號段+子碼的創新架構。該方案不僅在生成速度上表現突出,還顯著提升了存儲效率,同時降低了擴容成本,為類似的號碼生成系統提供了設計上的新思路和啓發。 文章太長?1分鐘看圖抓住核心觀點👇 一、業務背景 用户可通過完成相關任務獲取週週樂幸運碼,

创建 时间

百萬級羣聊的設計實踐

作者:來自 vivo 互聯網服務器團隊- Cai Linfeng 本文介紹了服務端在搭建 Web 版的百萬人級別的羣聊系統時,遇到的技術挑戰和解決思路,內容包括:通信方案選型、消息存儲、消息有序性、消息可靠性、未讀數統計。 一、引言 現在IM羣聊產品多種多樣,有國民級的微信、QQ,企業級的釘釘、飛書,還有許多公司內部的IM工具,這些都是以客户端為主要載體,而且羣聊人數通常都是有限制,微信正常羣人數

创建 时间

Android 架構模式如何選擇

作者:vivo 互聯網客户端團隊-Xu Jie Android架構模式飛速演進,目前已經有MVC、MVP、MVVM、MVI。到底哪一個才是自己業務場景最需要的,不深入理解的話是無法進行選擇的。這篇文章就針對這些架構模式逐一解讀。重點會介紹Compose為什麼要結合MVI進行使用。希望知其然,然後找到適合自己業務的架構模式 一、前言 不得不感嘆,近些年android的架構演進速度真的是飛快,拿筆者工

创建 时间

vivo 低代碼平台【后羿】的探索與實踐

作者:vivo 互聯網前端團隊- Wang Ning 本文根據王寧老師在“2022 vivo開發者大會"現場演講內容整理而成。公眾號回覆【2022 VDC】獲取互聯網技術分會場議題相關資料。 本文主要從前後端分離的低代碼方案、自研高性能渲染引擎、高效的可視化配置方案、千億級內容投放、低代碼如何與傳統開發共存等五個維度vivo在低代碼平台方面的實踐經驗,其中也會涉及到動態交互如何運用低代碼來