闲鱼技术的博客

简历投递:guicai.gxy@alibaba-inc.com

  • 博客(348)
  • 收藏
  • 关注

原创 11月小报|读小报,涨知识

本期知识小报的主要内容包括:• Lombok 之 @Builder 注解与 JSON 反序列化的冲突•如何动态设置日志输出级别•JWT的生成原理和误区•Java 8 parallelStream 避坑指南Lombok 之 @Builder 注解与 JSON 反序列化的冲突Lombok 是 Java 开发中常见的工具,可以极大提高开发效率,对冗余代码进行简化。@Builder 是 Lombok...

2022-11-29 12:12:14 57

原创 双十一|探索KUN的加载性能与增强体验

双十一与Kun关注闲鱼技术的同学想必都对Kun有所了解,Kun是闲鱼技术团队自研终端渲染容器,使用前端研发方式进行高效开发,最终以Flutter渲染给用户提供高性能体验。Kun已经在我发布的、闲鱼号、闲鱼超市等业务中使用,提供给用户良好的加载性能与独特的增强体验。一年一度的双十一要到了,我们也希望双十一能够应用Kun的加载性能与增强体验。而今年闲鱼双十一主互动是一个游戏化场景,具备互动复杂以及强运...

2022-11-15 12:12:45 15

原创 详解闲鱼KUN嵌套滚动容器设计与实现

背景介绍在电商频道/导购详情页中,为让页面信息呈现更多更丰富效果经常使用嵌套滚动容器搭建页面,常在大促/首页/频道/信息流等多SPU/多频道关键信息场景下使用,今年从kun支持第一个闲鱼超市业务到双十一项目整个过程中,悉数落地7个业务场景中嵌套滚动容器构建页面占据6个。从技术角度,嵌套滚动容器组件属于复合性交互容器组件,包括手势冲突/交互体验/流畅度等方向会面临挑战,比如在H5因其机制在模拟手势交...

2022-11-10 18:18:31 152

原创 闲鱼如何计算实时优惠:兼顾可扩展、高并发与数据一致性

问题与挑战•如何描述、存储和计算优惠并提供较好的业务可扩展性•如何保障大流量下优惠实时计算的性能•为优惠查询加速做的数据同步如何实现一致性本文的方案经过线上系统验证,对于优惠系统设计的场景和数据同步的场景可做相应的参考。背景在我们日常生活中,常常会遇到下面这样的场景:在闲鱼上,针对闲鱼交易中的粉丝购买和粉丝回购的优惠促销场景,提供了一种定向一口价的优惠能力:卖家可以按商品分别面向全部粉丝、老...

2022-10-27 12:12:24 128

原创 1024 节日抽奖|解锁新专栏【知识小报】

本期知识小报的主要内容包括:Flutter NullSafty有用么?Flutter 代码Trim机制的坑?Flutter为什么引入EngineGroup?Android折叠屏咋适配?抽奖有礼!Flutter NullSafty有用么?Flutter从2.0版本开始引入Dart语言的NullSafty 特性,并且在Flutter2.2版本中默认开启Dart3.0版本中已经明确不再支持非NullSa...

2022-10-24 12:13:37 37 1

原创 三代终端容器 KUN 的首次大考【架构演进】

闲鱼号在闲鱼业务中一直承担着非常重要的角色,它既是卖家组织商品的货架,又是达人自我表达的载体,既是大 V 私域运营的阵地,又是小铺开店经营的门面。它是闲鱼各产品线的交汇点,号店浑然一体,一定要类比的话,它更像是抖音/小红书个人主页 + 淘宝店的综合体。闲鱼号是个用户高频访问的场景,产品 Feature 快速迭代,体验上备受关注,当下面临的问题:•古董级高度耦合的业务代码、多业务线并行的日常需求时...

2022-10-20 12:22:03 554

原创 详解闲鱼推荐系统(长文收藏)

在互联网信息爆炸的今天,推荐系统是我们身边一个无法躲避的存在。在淘宝上浏览商品,在抖音上刷视频,以及无处不在的广告等等。本文探讨闲鱼商品推荐系统的同时,结合所面临的多推荐场景工程维护任务重、算法模型优化难以自动辐射多场景的痛点,介绍如何构建通用的推荐中台。背景推荐系统用户在网络上浏览时,如果能准确描述自己的需求,可以通过主动搜索来找到自己需要的信息。但是在不少情况下,用户并不一定能准确的描述自己的...

2022-10-13 12:12:15 2735

原创 KUN 应用开发流程【实用教程】

前言本文从KUN在闲鱼落地为出发点,介绍如何通过KUN实现Web和Flutter技术增强你的移动应用程序。在结合了Web和Flutter的各自优势,以及它们背后良好的生态和社区支持,你能用它来覆盖你的所有上层业务,达到更佳的动态化效果。介绍KUNKUN 是一个让开发者使用 Javascript,HTML,CSS进行开发,使用Flutter进行增强的跨端开发框架。KUN 能力为什么选择KUN首先我们...

2022-10-11 12:12:41 154

原创 电商搜索里都有啥?详解闲鱼搜索系统(长文)

搜索是电商平台的核心流量入口,承载着平台主要的成交引导、意图收敛、活动投放。一个稳定、高效、可扩展的搜索系统是电商平台得以生存发展的基石。本文探讨如何构建完善的商品搜索系统, 并根据闲鱼二手交易的差异化特性介绍闲鱼搜索系统的时效性优化。首先,构建一个搜索系统:电商场景的搜索搜索引擎搜索系统的核心是搜索引擎,目前Lucene、ElasticSearch等开源引擎已十分成熟,阿里云也提供完整的搜索解决...

2022-09-27 12:12:05 174

原创 大终端领域的新物种-KUN

KUN的 背景/动机即使已经到了2022年, 在面向复杂多变的用户端开发领域,我们依然绕不开一个问题 ?我们选择什么技术更适应我们的业务场景,不管是通用还是独特。这回到一个问题的原点,每一种技术都有它的局限性(短板)。单一技术的缺陷Native技术的局限性尽管Native技术在用户体验上有绝对的天然优势,但在工程化,部署效率,敏捷上又有天然的短板。(1)工程化效率低工程复杂度高,由于天然的把所有的...

2022-09-22 12:12:45 1007

原创 一次夜间接口超时的解决过程

背景闲鱼某关键应用A依赖类目系统富客户端(下文简称类目客户端),旨在为闲鱼商品域其他应用提供各类商品类目及属性数据(下文简称CPV数据)查询服务。每天凌晨,该应用所依赖的类目富客户端执行新老版本数据包切换时,应用提供的服务抖动非常明显,表现为大量接口超时(耗时100ms -> 3-5s),服务成功率明显下降(100% -> ~92%),RPC线程池活跃线程数上涨(50 -> ~1...

2022-09-14 12:12:19 149

转载 如何写出有效的单元测试

什么是单元测试《单元测试的艺术》中对单元测试的定义:一个单元测试是一段自动化的代码,这段代码调用被测试的工作单元,之后对这个单元的单个最终结果的某些假设进行校验。单元测试几乎都是用单元测试框架编写的;只要产品代码不发生变化,单元测试的结果是稳定的。为什么需要单元测试在我看来,单元测试的意义可以总结如下三点:单元测试是保证你写的代码是你想要的结果的最有效办法单元测试帮我们塑造设计单元测试是最好的文档...

2022-09-06 12:12:40 110

原创 支持英文/汉字/emoji长度计算的输入框实现

背景用户输入是平台获取用户信息的重要途径,也是用户自我表达的重要方式,社区业务场景下尤其如此,输入过程的流畅性、精准性、丰富性都是我们要重点保障的。下图是最近的一个产品需求,「圈内好物」板块下允许用户自定义「商品分组」。产品&设计同学有两个核心诉求:1. 支持输入汉字、英文、数字、emoji,且:•一个英文/数字的长度为 0.5•一个汉字的长度为 1•一个 emoji 表情的长度为...

2022-08-24 12:06:18 171

原创 这一年,我对终端组织与技术架构的思考【专家讲技术】

前言本文仅以个人观点阐述未来的端研发趋势和人才岗位结构趋势的要求,进而引出闲鱼技术团队今天要做的事情,闲鱼技术团队作为集团创新产品的先头兵,一方面希望通过持续的技术革新为业务带来核心竞争力,另一方面也希望为集团开拓新的技术领域从而引领新的技术风潮,通过技术带来长期的效能红利。KUN作为闲鱼技术团队在终端技术这一未来岗位的核心转型的重要基础设施,在推进过程中一定也会遇到各种不同的声音,因此更有必要让...

2022-08-17 12:12:41 117

原创 Flutter 长截屏适配 Miui 系统,一点都不难

背景现有 App 大部分业务场景都是以长列表呈现,为更好满足用户内容分享的诉求,Android 各大厂商都在系统层面提供十分便捷的长截屏能力。然而我们发现 Flutter 长列表页面在部分 Android 手机上无法截长屏,Flutter 官方和社区也没有提供框架层面的长截屏能力。闲鱼作为 Flutter 在国内业务落地的代表作,大部分页面都以 Flutter 承接。为了...

2022-08-10 12:12:17 510

原创 这半年我做交易链路自动化回归的那些事儿...

背景闲鱼交易链路作为应用中关键链路的一环,具有多业务、多状态、多操作的特征。以订单操作举例:不同的订单类型、订单状态包含不同的操作;不同操作下触发的业务行为、领域服务的交互行为也各不相同。问题交易链路质量稳定性保障的测试难点包括:1.改动点涉及的业务范围广、评估难度高:交易承接着10余种复杂多样的业务场景和交易模式,一次改动往往涉及所有业务场景的验证。更糟糕的是,一次看...

2022-07-27 12:12:40 182

原创 Kraken中事件通道原理分析

前言客户端开发中,跨平台和动态性已是老生常谈的话题了,也诞生了ReactNative、Weex、Flutter等大前端方向的技术。Kraken作为一款上层基于W3C标准实现,底层基于Flutter渲染的高性能渲染引擎,同时兼顾了跨平台和动态化的特性。对业务的快速迭代起到了很关键的作用。其中事件的注册与分发在Flutter和JS的交互中算是其中比较典型的场景,今天就事件通道...

2022-07-21 12:12:34 411

原创 我在闲鱼做搭建——魔鱼搭投编辑器介绍

背景魔鱼搭投编辑器是一个前端页面可视化搭建工具,运营借助编辑器可以调用搭投的底层能力,在无需开发介入的情况下,自主修改页面内容;简单举几个需求场景增强一下体感:结合上回《闲鱼前端技术体系的背后——魔鱼》的介绍,我们回顾建设魔鱼平台的目标:1. 提升前端研发效率,收敛工程研发管理流程;2. 动态数据源可配置投放,从而在网关层优化页面首屏性能;3. 运营自主高效准确的干预投放...

2022-07-06 12:12:01 253

原创 Flutter富文本编辑器系列文章3——交互篇

之前的系列文章介绍了协议层和渲染层的实现,大家可以知道Mural是基于Flutter TextField进行渲染层的设计与实现,然后对其底层的渲染逻辑进行改造,从而对富文本编辑能力进行支持。但是我们在改造过程中发现,其实在交互方面,Flutter有很多相比起Native缺失的功能,本文会围绕放大镜模式和选区反向选择两个比较重要的交互点来展开说明。本文将会以官方代码来进行讲...

2022-06-15 12:12:43 488 1

原创 打造Flutter高性能富文本编辑器——渲染篇

本系列文章主要介绍Flutter富文本编辑的设计和实现,从协议层、渲染层、自定义扩展以及体验优化等方面,详细介绍如何实现一个功能完善、可扩展、高性能的Flutter富文本编辑器,以及闲鱼在实践过程中遇到的问题和我们的一些解法。开篇协议篇文章,我们介绍了Flutter富文本编辑器协议层的设计。以Slate为例,介绍了协议层设计的几个重要的概念:嵌套Model、Opearti...

2022-06-08 12:12:34 1237 2

原创 节日献礼:Flutter图片库重磅开源!

背景去年,闲鱼技术团队新一代图片库 PowerImage 在经过一系列灰度、问题修复、代码调优后,已全量稳定应用于闲鱼。相对于上一代 IFImage,PowerImage 经过进一步的演进,适应了更多的业务场景与最新的 flutter 特性,解决了一系列痛点:比如,因为完全抛弃了原生的 ImageCache,在与原生图片混用的场景下,会让一些低频的图片反而占用了缓存;比如...

2022-06-01 12:12:55 514

原创 关于闲鱼测试数据构造,我有几条心得

背景随着闲鱼业务的高速发展,其商品类型、交易模板以及互动玩法日趋丰富。造数常常需要耗费测试同学大量的时间,其根本问题归纳为以下几点:1.人工成本高:商品、订单的类型与状态笛卡尔乘积后多达上百种,数据种类丰富且构造流程长,测试过程费时又费力;2.造数门槛高:商品数据构造往往和账户类型、人群等有强耦合关系,无论是测试验收还是跨部门协作时,都需要测试同学投入很多额外的时间辅...

2022-05-25 12:12:07 392

转载 携新衣祝大家爱情甜甜,好运连连~

↑↑↑ 换新头像啦

2022-05-20 12:12:45 127

原创 打造Flutter高性能富文本编辑器——协议篇

闲鱼作为一个二手闲置交易平台,卖家发布商品产出优质的供给尤为重要;商品发布器希望拥有富文本编辑能力,让用户简单便捷的方式产出更加优质的内容;Flutter本身没有富文本编辑器的能力的,只有最基础的文本编辑器TextField;对于更加复杂的场景,比如支持自定义表情、主题、有序段落等能力,目前flutter组件是无法满足我们的业务诉求,另外在交互体验上与Native仍然存在...

2022-05-18 12:12:01 1434

原创 闲鱼前端技术体系的背后——魔鱼(良心推荐,从思路到实践)

闲鱼经过近八年的发展,前端技术在整个研发体系中有着举足轻重的地位,前端有迭代速度快,动态化能力强,跨端适配成本低等显著优势。闲鱼前端一直使用淘系提供的基础技术和平台工具,但随着业务的不断发展,逐渐无法满足复杂、个性化的业务和技术环境。工欲善其事,必先利其器,拥有自己的上层研发体系势在必行,于是从去年下半年开始,前端开始着手代号为「魔鱼」的技术体系建设。魔鱼目前魔鱼包含产研...

2022-04-26 12:12:00 1183

原创 实效性与准确性的背后:多系统数据聚合展示

背景大家在平时的业务开发中,会不会遇到这么一种问题:一个新的需求展示的某种业务数据,数据来源横跨多个不相关的业务系统,时间跨度长且需要及时反映实时的数据变化,数据查询的QPS较高且要求rt较小。遇到这类问题应该怎么处理?下面以闲鱼粉丝系统标签的实现方案为例,跟大家交流一种实际落地的解决方案。面临的挑战粉丝系统标签是闲鱼提供给Pro用户进行粉丝管理的基础功能,在“我的粉丝”...

2022-04-13 12:12:00 2045

原创 Flutter滑动体验对齐原生-滑动曲线篇

自从使用了Flutter以来,闲鱼在享受着跨端带来的提效的同时,流畅度一直是困扰了我们许久的问题,也是被外界吐槽得比较多的地方。所以我们在过去半年,重新牵起了流畅度优化这件事情,目标只有一个,那就是拉平Flutter和Native的滑动体验。我们把这个目标拆分为了两个:滑动曲线优化,拉齐手感渲染性能优化,减少掉帧本文主要跟大家介绍一下我们在优化滑动曲线手感方面的一些经验。...

2022-03-29 20:37:19 558

原创 闲鱼策略中枢业务扩展模块实现

前言扩展能力是我们在做平台、中台时都会面临的技术思考。为了平台能尽可能覆盖更多的业务场景,我们需要设计可扩展,可复用的扩展模块,不断拓宽平台能力的边界。本文介绍闲鱼策略中枢平台Luxury...

2022-03-15 17:50:57 204

原创 闲鱼互动玩法标准化建设

背景现在大家对互动玩法应该已经司空见惯,很多APP或多或少都会在业务场景中采用各式各样的互动玩法来吸引用户,让用户在参与互动的同时,得到平台权益,进而提升平台心智,达到促活拉新目的。随着闲...

2022-03-09 15:16:05 254

转载 女程序员的工位,藏着她们鲜衣怒码的人生 | 3·8特辑

作为女性稀有职业群体的程序媛,有什么特点?答曰:会写代码。女程序员也是普普通通又可爱大方的女孩子,性别不是边界线,偏见才是。目前,大淘宝技术拥有400+名女性工程师,占总体程序员比例17%...

2022-03-08 16:57:59 355

原创 一条慢SQL引发的改造

前言闲鱼服务端在做数据库查询时,对每一条SQL都需要仔细优化,尽可能使延时更低,带给用户更好的体验。但是在生产中偶尔会有一些情况怎么优化都无法满足业务场景。本文通过对一条慢SQL的真实改造...

2022-03-02 14:42:34 1975 3

原创 Flutter切面的应用与扩展

背景作为一款国民级二手交易App,每天有大量提测任务到质量团队,如何准确地衡量影响范围以及确保提测代码不存在漏测变得尤为重要。因此闲鱼质量尝试研发客户端的精准化测试与用例推荐,遇到的第一个...

2022-02-22 15:00:00 487

原创 程序员如何保持学习成长?

计算机技术发展日新月异,技术方向又繁杂多样,在工作中我们随时会面临着新的挑战,也都会阶段性地遇到成长的瓶颈。所以无论是作为初入职场的新人,还是工作了几年或者十几年的老手,都需要保持着持续的...

2022-02-15 23:19:23 712

原创 闲鱼搜索召回升级:向量召回&个性化召回

在搜索系统中,召回环节位于排序漏斗的最底层,决定了下游排序的空间大小,其重要程度毋庸置疑,在闲鱼搜索场景亦是如此。然而由于机器和人力资源的限制,长期以来闲鱼搜索的召回都是使用最简单的基于文...

2022-01-29 14:11:40 1630

原创 闲鱼前端组件库的建设

背景闲鱼经过这些年发展已经变成了一个业务丰富,数量众多且功能复杂的产品;而且业务高速发展,需求井喷,需要开发同学能够快速做出响应。同时这些产品线与闲鱼的设计风格有很多的共性,但各自不同的定...

2022-01-18 19:00:36 674

转载 公开下载 |《2021技术人的百宝黑皮书》来了!

工程师们常常很在意【技术氛围】这件事。“我的目标是去一家技术氛围好的公司,不是指那种研发人员占比多,而是真正能够有技术导向的价值观,重视效率,保持创新,大家一起齐头并进的团队。”已经在职场...

2022-01-11 15:15:25 1630 3

原创 线上FGC调优案例三则

前言闲鱼服务端应用广泛使用 Java 技术栈,基于JVM提供的托管式堆内存管理,开发者无需过多关心对象创建/回收时的内存分配/释放动作,垃圾回收器(Garbage Collector)会在...

2022-01-04 17:47:42 847

原创 在闲鱼实习是一种什么样的体验

前言作者介绍:文景睿,花名幕辰,Github名luckysmg,一名来自哈尔滨工业大学软件工程系的大四学生,在闲鱼技术团队实习了三个月。先后参与了闲鱼音视频编辑器,图片编辑器的改版升级,以...

2021-12-28 19:59:00 1171

原创 闲鱼直播flutter化实践

背景直播带货已成为近年来最热的“风口”,已成为电商升级的新突破口。闲鱼作为国内最大的二手交易平台市场,直播带货也成为推动成交的强烈需求。但是闲鱼直播原先接入外部提供的直播sdk,存在以下几...

2021-12-21 20:43:37 3211

原创 闲鱼双11全链路营销体系初体验

背景2021年的双11对于闲鱼具有特殊的意义,继之前618“节后余生”独家用户心智占位后,闲鱼期望将“大促上闲鱼卖买都赚钱”的行动号召,升级为双11全民必备的节日仪式,所以今年闲鱼史无前例...

2021-12-15 14:50:00 2553

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除