公司:得物
得物,原名“毒”,是中华人民共和国上海市上海识装信息科技有限公司推出的一个电商手机应用。第三方商家和个人可以入驻得物平台与其他用户进行交易。
“整洁架构”和商家前端的重构之路
团队归属于后方业务支撑部门,组内的项目都以pc中后台应用为主。对比移动端应用,代码库比较庞大,业务逻辑也相对复杂。在持续的迭代过程中,我们发现当前的代码仓库仍然有不少可以优化的点:
- 可以减弱对ui框架的依赖
21年前端平台决定技术栈统一迁移到React生态,后续平台的基础建设也都围绕React展开,这就使得商家使用Vue生态做开发的系统面临技术栈迁移的难题,将业务逻辑和UI框架节藕变得异常重要。 - 代码风格可以更加统一
随着代码量和团队成员的增加,应用里风格迥异的代码也越来越多。为了能够持续迅速的进行迭代,团队急需一套统一的顶层代码架构设计方案。 - 可以集成自动化测试用例
随着业务变得越来越复杂,在迅速的迭代过程中团队需要频繁地对功能进行回归,因此我们对于自动化单测用例的诉求也变的越来越强烈。
为了完成以上的优化,四组对现有的应用架构做了一次重构,而重构的核心就是整洁架构。
得物数据库中间件平台“彩虹桥”演进之路
随着得物 App 用户开始快速增长,业务线日趋丰富,也对底层数据库带来了较大的压力。各个业务线对于数据分片、读写分离、影子库路由等等的需求成为了刚需,所以需要一个统一的中间件来支撑这些需求,得物“彩虹桥”中间件平台应运而生。
得物App数据模拟平台的探索和实践
Mock是一个接口编辑模拟工具,可以快速手动或者基于YAPI创建Mock接口模拟数据调试,同时支持场景,场景组的快速切换,方便在开发期和测试阶段试验不同数据返回的UI功能逻辑。
Mooncake数据模拟平台是得物统一的针对端侧(包括前端,客户端),与服务侧联调Mock的一款工具产品,在平台内部可以快速的创建各个项目产品的Mock多场景数据。本文主要聚焦Mooncake数据模拟平台的探索和实践。
Android Oreo 的 WebView 多进程模式
Android 应用层的开发有很多模块,其中 WebView 就是最重要的模块之一。对于一个百万级用户的应用,WebView 必然是不可或缺的,而对于 得物App 这样的电商应用,更是不言而喻。而对于大部分开发者而言,并没有深入的去了解过 WebView 的一些实现细节,本文就从 WebView 启动的视角分析一下 Android Oreo 下的 WebView 多进程模式,帮助大家更深入的了解 WebView,并提供一些优化上的思路。
基于DataWorks的时效仿真平台
现货业务目前基于算法模型+运营配置得出订单预计履约时长,由于时效策略调整需求且现货订单数据回收周期较长,因此需要建设时效仿真平台能力,产品自行根据业务需要进行时效仿真实验并得到对应结果。
一种简单的架构设计逻辑
本文探索了基于用例驱动的架构设计逻辑,核心思想是采用用例驱动设计,基于“演绎法+自上而下”的逻辑来设计技术方案,帮助开发人员理清技术方案设计思路并提升技术方案的质量和评审效率。
得物基于Attach to Process的实时调试实践
本文主要介绍得物实时调试的全套解决方案,实现对测试包还原出包环境和无需编译就可以进行断点调试的功能。整体按实时调试方案的可行性分析,方向调研,优化方案设计,推进优化落地,最后在团队推广的流程。本文主要讲4个主要内容,包括:Attach to Process介绍,环境还原,实时调试探索,组件化工程的实时调试。
一个满分的项目文档是如何书写的
项目文档是对于项目一个快速了解的一个最好方式,能从中获取到其是所服务的业务,参与开发所具备的知识体系,开发前所需做哪些准备,遇到问题所需询问的时的人员,不仅能帮助新手快速上手,同时也有助于多个项目并行时,相互之间进行切换起到温故的效果。
浅析如何基于ZooKeeper实现高可用架构
zookeeper是一个比较成熟的,经过市场验证的分布式协调框架,可以协助我们快速的解决分布式系统中遇到的一些难题。另从上面的介绍中发现,zookeeper的核心是zab,etcd的核心是raft,那可以思考下,还有哪些一致性算法?
看完这篇异地多活的改造,我决定和架构师battle一下
异地多活的概念以及为什么要做异地多活这里就不进行概述了。概念性的很多,像什么同城双活、两地三中心、三地五中心等等概念。如果有对这些容灾架构模式感兴趣的可以阅读下这篇文章进行了解:《浅谈业务级灾备的架构模式》。
机器学习在图形验证码识别上的应用
在我们开发测试过程中,登录验证码几乎随处可见。特别是春节抢票,有没有被12306的验证码搞的崩溃呢? 教大家一个办法:利用机器学习来自动识别验证码!
得物拍照搜索的前世今生
大家在逛街,看视频,刷朋友圈时,是否会看到自己一见钟情的鞋子,衣服等商品,却因为不清楚商品的具体系列,款式而苦恼?遇到这种情况大家一般是动口询问,还是到品牌官网或者购物平台海量搜索呢?相信大家都有自己的获取渠道,这里将会为大家介绍一种更直接的拍照搜索方式。
那么多微前端框架,为啥我们选Qiankun + MF
Qiankun是社区的一种微前端框架;MF是模块联邦的意思,在Webpack 5中流行起来的,也属于一种微前端方案。
得物登录组件重构
登录模块对于一个App来说是十分重要的,其中稳定性和用户流畅体验更是重中之重,直接关乎到App用户的增长和留存。接手得物登录模块以后,我陆续发现了一些其中存在的问题,会导致迭代效率变低,稳定性也不能得到很好的保障。所以此次我将针对以上的问题,对登录模块进行升级改造。
多兴趣召回模型实践
MIND多兴趣召回在实践过程中,经过离线和实时两个阶段去执行最终落地,中间的步骤因此记录下来,希望你在阅读到此文能够有所收获。
NOC-SLA 之得物C端业务监控实践
在我们经历过多次大额资损类故障中和影响业务可用性严重性故障后,我们回顾总结怎么从应急保障中做到快速响应,事前预警后。由被动变主动,向全员承诺发起NOC-SLA保障专项,痛定思痛下定决心将告警发现、处理、止血。