博客 / 列表

得物技術 - Java 設計模式:原理、框架應用與實戰全解析|得物技術

一、概述 簡介 設計模式(Design Pattern)是前輩們對代碼開發經驗的總結,它不是語法規定,是解決特定問題的一系列思想,是面向對象設計原則的具象化實現, 是解決 “需求變更” 與 “系統複雜度” 矛盾的標準化方案 —— 並非孤立的 “代碼模板”,而是 “高內聚、低耦合” 思想的落地工具。其核心價值在於提升代碼的可複用性、可維護性、可讀性、穩健性及安全性。 1994 年,GoF(Gang

JAVA

得物技術 - Go語言在高併發高可用系統中的實踐與解決方案|得物技術

一、引言 隨着互聯網技術的飛速發展,現代系統面臨着前所未有的併發壓力和可用性要求。從電商秒殺到社交媒體直播,從金融交易到物聯網設備接入,系統需要處理百萬級甚至千萬級的併發請求,同時保證99.999%的可用性。在這種背景下,Go語言憑藉其獨特的設計哲學和技術特性,成為了構建高併發高可用系統的首選語言之一。 Go語言自2009年誕生以來,就以 "併發性能優異、開發效率高、部署簡單"等特點受到開發者的青

go

得物技術 - 項目性能優化實踐:深入FMP算法原理探索|得物技術

一、前 言 最近在項目中遇到了頁面加載速度優化的問題,為了提高秒開率等指標,我決定從eebi報表入手,分析一下當前項目的性能監控體系。 通過查看報表中的cost_time、is_first等字段,我開始瞭解項目的性能數據採集情況。為了更好地理解這些數據的含義,我深入研究了相關SDK的源碼實現。 在分析過程中,我發現採集到的cost_time參數實際上就是FMP(First Meaningful P

算法 , 前端

得物技術 - Dragonboat統一存儲LogDB實現分析|得物技術

一、項目概覽 Dragonboat 是純 Go 實現的(multi-group)Raft 庫。 為應用屏蔽 Raft 複雜性,提供易於使用的 NodeHost 和狀態機接口。該庫(自稱)有如下特點: 高吞吐、流水線化、批處理; 提供了內存/磁盤狀態機多種實現; 提供了 ReadIndex、成員變更、Leader轉移等管理端API; 默認使用 Pebble 作為 存儲後端。 本次代碼串講

後端

得物技術 - 一文解析得物自建 Redis 最新技術演進

一、前 言 自建 Redis 上線 3 年多以來,一直圍繞着技術架構、性能提升、降低成本、自動化運維等方面持續進行技術演進迭代,力求為公司業務提供性能更高、成本更低的分佈式緩存集羣,通過自動化運維方式提升運維效率。 本文將從接入方式、同城雙活就近讀、Redis-server 版本與能力、實例架構與規格、自動化運維等多個方面分享一下自建 Redis 最新的技術演進。 二、規模現狀 隨着公司業務增長,

redis , 雲計算 , 數據庫 , redis集羣 , 後端

得物技術 - 得物TiDB升級實踐

一、背 景 得物DBA自2020年初開始自建TiDB,5年以來隨着NewSQL數據庫迭代發展、運維體系逐步完善、產品自身能力逐步提升,接入業務涵蓋了多個業務線和關鍵場景。從第一套TIDB v4.0.9 版本開始,到後來v4.0.11、v5.1.1、v5.3.0,在經歷了各種 BUG 踩坑、問題調試後,最終穩定在 TIDB 5.3.3 版本。伴隨着業務高速增長、數據量逐步增多,對 TiDB 的穩定性

數據庫性能優化 , 數據庫 , 數據庫開發 , tidb

得物技術 - 得物管理類目配置線上化:從業務痛點到技術實現

一、引言 在電商交易領域,管理類目作為業務責權劃分、統籌、管理核心載體,隨着業務複雜性的提高,其規則調整頻率從最初的 1 次 / 季度到多次 / 季度,三級類目的規則複雜度也呈指數級上升。傳統依賴數倉底層更新的方式暴露出三大痛點: 行業無法自主、快速調管理類目; 業務管理類目規則調整,不支持校驗類目覆蓋範圍是否有重複/遺漏,延長交付週期; 規則變更成功後、下游系統響應滯後,無法及時應用最新

數據挖掘 , 效率 , 數據分析 , 效率工具 , 後端

得物技術 - 如何合理規劃Elasticsearch的索引|得物技術

一、背景 隨着ES在業務場景中的使用逐漸增多,平台對ES集羣的穩定性、管理、運維的壓力逐漸增大,通過日常的運維情況來看,發現用户對ES的瞭解熟悉程度參差不齊,經常性的遇到索引創建不規範,或者參考別人索引的創建腳本進行創建索引,對索引沒有一個比較清晰的認知,對索引結構的規劃也寥寥無幾,為此,平台使用了一些列手段來幫助用户提前合理規劃模板,比如索引、模板的創建接入飛書審批流,平台側會逐一結合業務場景和

elasticsearch , 索引

得物技術 - 程序員如何提升個人技術影響力|得物技術

都説程序員的成長是碼出來的,此話不假。但如果既會寫代碼,還會寫文章,還能講PPT,那你離影響力還會遠嗎? 本文是針對每一個技術同學都適用。我將從行業技術大會主編的角色告訴你,如何打造自己的技術影響力,有哪些通用的手段,我自己又該如何做個性化疊加;我是技術小白,或者我有一定技術基礎,我又該怎麼打造自己的影響力? 一、為什麼要分享這個話題? 最近和一些技術同學聊天中,經常會聽到,誰誰誰在xx大會發表演

職業發展 , 技術分享 , 程序員發展 , 職業規劃 , 程序員

得物技術 - 你的debug包在Android 14變卡了嗎?|得物技術

一、背景 我的App怎麼這麼卡,誰在代碼裏下毒了! 有一天突然發現debug包運行變的特別卡頓,經過下面的簡單測試發現debug包在Android 14上出了問題。 二、問題排查紀錄 常規手段排查 使用了systrace以及內部的debug包 trace工具dutrace進行排查。 結論:CPU空閒,主線程無明顯阻塞,看上去就是純方法執行耗時。 發現懷疑點 第一步排查過程中沒有特別大的收穫,但是

性能優化 , Android , debugging , 優化

得物技術 - 正品庫拍照PWA應用的實現與性能優化|得物技術

一、背景與難點 背景 目前得物ERP主要鑑別流程,是通過鑑別師鑑別提需到倉庫,倉庫庫工去進行商品補圖拍照,現有正品庫59%的人力投入在線下商品借取/歸還業務的操作端,目前,線下借取的方式會佔用商品資源,同時在使用用途上,每借出10件會出現1次拍照留檔,因此會有大量的線上閲圖量在日常鑑別和學習中發生;正品庫可通過圖庫搭建,提升圖庫質量,大大節約線下用工和物流成本支出。 但目前庫內存量10~20W件,

pwa

得物技術 - 得物自研DSearch3.0搜索核心引擎升級之路

一、背景 隨着交易和社區搜索業務穩步快跑,基建側引擎越來越複雜,之前搜索底層索引查詢結構已經存在較為嚴重的性能瓶頸。成本和運維難度越來越高。在開發效率上和引擎的穩定性上,也暴露出了很多需要解決的運維穩定性和開發效率短板。而在引擎的業務層部分也需要逐步升級,來解決當前引擎中召回層和業務層中各個模塊強耦合,難維護,迭代效率低下等問題。 二、引擎開發技術方案 DSearch1.0索引層整體結構 DSe

搜索引擎

得物技術 - 社區搜索離線回溯系統設計:架構、挑戰與性能優化|得物技術

一、項目背景 在社區場景中,我們積累了豐富的用户互動數據。這些歷史互動信息對CTR/CVR預估建模具有重要參考價值,用户的每次互動都反映了其特定維度的偏好特徵。當前,已在多個業務實踐中驗證,基於用户歷史互動特徵進行未來行為預測是有效的。用户互動序列越長,包含的偏好特徵就越豐富,但同時也帶來了更大的技術挑戰。 目前社區搜索領域已經在序列建模方向取得了一些應用成果,顯著提升了搜索效率,但在該方向上仍有

搜索引擎

得物技術 - 大模型如何革新搜索相關性?智能升級讓搜索更“懂你”|得物技術

一、背 景 你是否曾在社區搜索時遇到這樣的困擾:想找一雙“平價學生黨球鞋”,結果出現的多是限量聯名款?或者輸入“初冬輕薄通勤羽絨服”,卻看到厚重登山款?這類“搜不準”的情況,正是搜索相關性技術要解決的核心問題——讓搜索引擎更準確地理解用户意圖,返回真正匹配的結果。今天,我們就來揭秘得物如何用大模型技術讓搜索變得更“聰明”。 搜索相關性,即衡量搜索結果與用户查詢的匹配程度,通俗來説就是“搜得準不準”

社區 , 搜索引擎 , 算法 , 大模型

得物技術 - 同城雙活:交易鏈路的穩定性與可靠性探索

知易行難,雙活過程中遇到了非常多的問題,但是回過頭看很難完美的表述出來,之所以這麼久才行文也是這個原因,總是希望可以儘可能的復現當時的思考、問題細節及解決方案,但是寫出來才發現能給出的都是多次打磨、摸索之後的我們認為偏合理的方案;不過換個角度看,給大家展示出來一個正確答案,是否有更積極的參考價值呢? 以及,涉及到容器、發佈平台、底層網絡運維、監控等組件的內容,限於視野及技術能力並未包含在內,

中間件 , JAVA , 後端

得物技術 - 可擴展系統設計的黃金法則與Go語言實踐|得物技術

一、引言:為什麼需要可擴展的系統? 在軟件開發領域,需求變更如同家常便飯。一個缺乏擴展性的系統,往往在面對新功能需求或業務調整時,陷入“改一行代碼,崩整個系統”的困境。可擴展性設計的核心目標是:讓系統能夠以最小的修改成本,適應未來的變化。對於Go語言開發者而言,利用其接口、併發、組合等特性,可以高效構建出適應業務演進的系統。 本文將從架構設計原則、編碼實踐、架構實現模式、驗證指標到演進路線,系統講

開發工具 , go , 後端

得物技術 - AI質量專項報告自動分析生成|得物技術

一、背景 在日常工作中,常需要通過各項數據指標,確保驅動版本項目進展正常推進,並通過各種形式報表數據,日常總結日報、週會進展、季度進行總結輸出歸因,分析數據變化原因,做出對應決策變化,優化運營方式,目前在梳理整理校準分析數據需要大量的時間投入、結合整體目標及當前進展,分析問題優化的後續規劃。 常見形式 人工收集 數據來源依賴於各系統平台頁面,通過人工收集校準後填寫再通過表格公式計算,或者可以通過多

測試 , ai開發 , 人工智能

得物技術 - 卡口服務 —— 基於前端巡檢系統的拓展實踐|得物技術

1 背景 體驗是得物的業務關鍵詞之一,對於前端開發而言,提高用户體驗更是重要工作內容之一。 得物前端平台目前有巡檢系統、監控平台等多種手段保障線上頁面穩定運行,但是仍有一部分問題處於“監控死角”,而且巡檢、監控都屬於後置告警手段,為了確保頁面上線前就能得到一定的用户體驗保障,結合公司的戰略目標,我們決定開發一個H5頁面檢測服務,用來前置檢測即將上線的頁面,提前暴露該頁面可能存在的問題反饋給對應的開

前端工程化 , 前端框架 , 前端工程師 , 前端性能 , 前端

得物技術 - 得物App白屏優化系列|歸因篇

一、前言 本系列前面兩篇文章已經分別在圖片庫和網絡庫的角度介紹了諸多白屏問題的定位和解決方案,但都是相對獨立的問題,並且像OSCP,CDN節點異常之類的第三方問題無法徹底根治,因此為了長治白屏併發掘更多問題,就需要一套相對完善的白屏檢測+問題歸因體系。 本文將介紹從用户視角出發的白屏檢測方案以及線上白屏問題的大致歸因思路。 二、白屏歸因平台概覽 三、客户端 檢測思路 直接將白屏檢測寫到圖片庫裏似

技術分享 , Android , 優化

得物技術 - 從零實現模塊級代碼影響面分析方案|得物技術

一、名詞解釋 代碼影響面(Code Impact Analysis) 是指在代碼變更後,分析這些變更對系統中其他部分的影響範圍。它幫助開發團隊理解代碼修改的潛在影響,從而減少意外問題並提高代碼質量。 模塊級 是指以模塊(Module)為單位的代碼組織、分析和管理的粒度。模塊是代碼的基本單元,通常包含一組相關的功能,可以是 JavaScript 文件、UI 組件、頁面或其他功能單元。 二、背景 價

code , 模塊化

得物技術 - 得物自研DGraph4.0推薦核心引擎升級之路

一、前言 DGraph是得物自主研發的新一代推薦系統核心引擎,基於C++語言構建,自2021年啓動以來,經過持續迭代已全面支撐得物社區內容分發、電商交易等核心業務的推薦場景。DGraph在推薦鏈路中主要承擔數據海選和粗排序功能,為上層精排提供高質量候選集。 核心技術特性: 索引層 - 支持KV(鍵值)、KVV(鍵-多值)、INVERT(倒排)、DENSE-KV(稠密鍵值)等。索引存儲支持磁盤

高併發 , 大數據 , 推薦引擎

得物技術 - 得物前端喚端業務場景和技術精講

前言 當你在刷朋友圈時突然看到一個潮鞋廣告,正是你非常喜歡、一直想買的那款而且價格美麗,於是你興奮地點擊廣告直接打開了購物App,並且直接進入剛剛看到的潮鞋詳情頁,你只需要直接點擊購買就能得到這雙你期待已久潮鞋,這流程如絲般順滑! 你正在瘋狂追的愛豆在微博發了一款聯名潮玩內容,還是獨家發售,貼文中就有網頁鏈接,你點擊後直接打開購物平台進入了與愛豆聯名同款的潮玩詳情頁,迫不及待的下單擁有一款時尚的潮

業務 , 前端框架 , 場景 , 前端構建 , 前端

得物技術 - Flutter啓動流程分析之插件化升級探索

Flutter是Google推出的一款跨平台框架。與Weex等其他跨端框架不同的是,Flutter的界面佈局繪製是由自己完成的,而不是轉換成對應平台的原生組件。那麼各個平台是如何啓動它的呢?從Flutter官方提供的架構圖上看,Flutter Embedder層提供了底層操作系統到Flutter的程序入口,平台採用適合當前系統特性的方式去各自實現。本文基於flutter 2.0.6版本源碼,來探索

weex , 操作系統 , flutter , 插件化 , 流程

得物技術 - Bookie存儲架構源碼剖析|得物技術

一、Pulsar存儲架構簡析 Pulsar作為新一代MQ中間件,在底層架構設計上充分貫徹了存算分離的思想,broker與Bookeeper兩個組件獨立部署,前者負責流量的調度、聚合、計算,後者負責數據的存儲,這也契合了雲原生下k8s大行其道的時代背景。Bookeeper又名Bookie ,是一個單獨的存儲引擎。在組件關係上,broker深度依賴Bookie,內部集成了 Bookie的client端

mq , 架構 , 源碼分析 , JAVA , pulsar