揭秘!一个高准确率的Flutter埋点框架如何设计
用户行为埋点是用来记录用户在操作时的一系列行为,也是业务做判断的核心数据依据,如果缺失或者不准确将会给业务带来不可恢复的损失。闲鱼将业务代码从Native迁移到Flutter上过程中,发现原先Native体系上的埋点方案无法应用在Flutter体系之上。而如果我们只把业务功能迁移过来就上线,对业务是极其不负责任的。因此,经过不断探索,我们沉淀了一套Flutter上的高准确率的用户行为埋点方案。
UI2CODE再进化!结合Redux的框架升级!
UI2CODE的目标是通过分析视觉稿得到对应的代码,让AI提高开发效率。然而过去静态化页面的产出,不能得到业务场景的需求。针对于此,我们以UI2CODE自动化开发为基底,结合Redux的消息机制,将自动化生成的维度提升到页面的处理。
揭秘!闲鱼拉新投放系统如何设计
闲鱼目前已经是国内最大的闲置物品交易平台。随着闲鱼体量的增长和用户规模不断扩大,闲鱼App上的一个普通banner抑或是feeds中的一张普通的卡片,每天都可能被数以千万计的人看到。
Flutter高内聚组件怎么做?闲鱼打造开源高效方案!
fish_redux是闲鱼技术团队打造的开源flutter应用开发框架,旨在解决页面内组件间的高内聚、低耦合问题。开源地址:https://github.com/alibaba/fish-redux
在闲鱼,我们如何用Dart做高效后端开发?
后端应用中数据的存储、访问、转换、输出虽然都属于后端的范畴,但是其中变更的频率是不同的。通常领域对象确定之后,变化很少,但是客户端展示的变化很多,导致接口层(或者叫粘连前台和后台的胶水层)的变化非常快。大多数web应用采用统一的技术栈来实现后端,胶水层跟领域层使用统一技术,这样的做法仍然有可以优化的点:
Facebook F8大会|闲鱼高级专家参会分享
笔者代表闲鱼参加了Facebook在4月30日举行的为期二天的F8大会,地点加州,本文就心得与思考和大家分享。对国内开发者而言,Facebook的产品设计、社区、VR/AR等有一些借鉴意义;对海外开发者而言,Facebook是连接用户,规模增长必不可少的产品。除有限的技术热点外,F8带来的更多的是Facebook的规划和为企业提供的商业赋能,而商业部分也是笔者这次的关注重点。
重磅系列文章!UI2CODE智能生成代码——组件识别篇
在组件识别这个环节,需要有一种处理布局信息的方法,来解析和计算控件间的布局关系(比如识别业务组件(BI组件)和查找重复布局),以此来提高最终代码的可用性。
走近科学,探究阿里闲鱼团队通过数据提升Flutter体验的真相
闲鱼客户端的Flutter页面已经服务上亿级用户,因此用户体验尤其重要,完善Flutter性能稳定性监控体系,以便及早发现线上性能问题,也可以作为用户体验提升的衡量标准。
Fish Redux中的Dispatch是怎么实现的?
我们在使用fish-redux构建应用的时候,界面代码(view)和事件的处理逻辑(reducer,effect)是完全解耦的,界面需要处理事件的时候将action分发给对应的事件处理逻辑去进行处理,而这个分发的过程就是下面要讲的dispatch, 通过本篇的内容,你可以更深刻的理解一个action是如何一步步去进行分发的。
最详细版本|UI2Code智能生成Flutter代码——机器生成代码
在《UI2CODE--整体设计》篇中,我们提到UI2Code工程的整体流程。前步图片分析之后,我们可以得到对应的DSL布局描述。利用DSL的资讯,结合IntelliJ Plugin介面工具,面向使用者提供生成对应Flutter代码。
打通前后端逻辑,客户端Flutter代码一天上线
随着闲鱼的业务快速增长,运营类的需求也越来越多,其中不乏有很多界面修改或运营坑位的需求。闲鱼的版本现在是每2周一个版本,如何快速迭代产品,跳过窗口期来满足这些需求?另外,闲鱼客户端的包体也变的很大,Android的包体大小,相比2016年,已经增长了近1倍,怎么能将包体大小降下来?首先想到的是动态化的解决此类问题。
Pick!闲鱼亿级商品库中的秒级实时选品
在电商运营工作中,营销活动是非常重要的部分,对用户增长和GMV都有很大帮助。对电商运营来说,如何从庞大的商品库中筛选出卖家优质商品并推送给有需要的买家购买是每时每刻都要思索的问题,而且这个过程需要尽可能快和实时。保证快和实时就可以提升买卖双方的用户体验,提高用户粘性。
懂编译真的可以为所欲为|不同前端框架下的代码转换
整个前端领域在这几年迅速发展,前端框架也在不断变化,各团队选择的解决方案都不太一致,此外像小程序这种跨端场景和以往的研发方式也不太一样。在日常开发中往往会因为投放平台的不一样需要进行重新编码。
自动化测试|录制回放效果差异检测
回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他的代码出现错误。传统的自动化回归测试需要手动编写脚本获得页面元素的视图树,与原有的元素视图树进行比对。当功能进行频繁迭代时,测试同学维护这些视图元素验证点比较繁杂。因此在自动化回归测试过程中,直接比较代码修改前录制的页面和代码修改后回放的页面差异,可以快速定位代码产生的缺陷,从而提高测试同学的工作效率。
阿里巴巴复杂搜索系统的可靠性优化之路
搜索引擎是电商平台成交链路的核心环节,搜索引擎的高可用直接影响成交效率。闲鱼搜索引擎作为闲鱼关键系统,复杂度和系统体量都非常高,再加上闲鱼所有导购场景都依靠搜索赋能,搜索服务的稳定可靠成为了闲鱼大部分业务场景可用能力的衡量标准;如何保障搜索服务的稳定和高可用成为了极大的挑战。
已开源|码上用它开始Flutter混合开发——FlutterBoost
为什么要混合方案,具有一定规模的App通常有一套成熟通用的基础库,尤其是阿里系App,一般需要依赖很多体系内的基础库。那么使用Flutter重新从头开发App的成本和风险都较高。所以在Native App进行渐进式迁移是Flutter技术在现有Native App进行应用的稳健型方式。
21世纪了还愚公移山?数据库这么迁移更稳定!
在系统的快速迭代过程中,业务系统往往部署在同一个物理库,没有做核心数据和非核心数据的物理隔离。随着数据量的扩大这种情况会带来稳定性的风险,如库的慢sql,磁盘,IO等等都会相互整体影响,从而影响核心系统的业务稳定性,因此需要将核心业务的业务表从原有库里抽取出来,单独到新库里。而核心数据的迁移,涉及到的一个关键难点:如何平稳及用户无感知的迁移数据,本文将结合闲鱼商品库迁移实践,向大家展示如何解决这个难题的.
安排!活动素材的亿级用户精准投放
随着闲鱼用户快速增长,运营活动越来越趋于精细和个性化,运营会根据用户偏好为其投放合适的活动,如下图所示在闲鱼首页商品展示时,会在商品的列表中插入活动Banner,通过这些活动banner引导用户进入到相应活动会场,实现会场导流。
UI2CODE智能生成Flutter代码——整体设计篇
随着移动互联网时代的到来,人类的科学技术突飞猛进。然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作。
千人千面录制回放技术让你“看到”Flutter用户侧问题
发布app后,开发者最头疼的问题就是如何解决交付后的用户侧问题的还原和定位,是业界缺乏一整套系统的解决方案的空白领域,闲鱼技术团队结合自己业务痛点在flutter上提出一套全新的技术思路解决这个问题。