Android-模块化-面向接口编程

一、概述 随着业务的发展,工程的逐渐增大与开发人员增多,很多工程都走向了模块化、组件化、插件化道路,来方便大家的合作开发与降低业务之间的耦合度。 现在就和大家谈谈模块化的交互问题,首先看下模块化的几个优势。 模块化的优势 1,结构清晰:业务独立,代码实现分离,不会搅在一起。 2,便于协作:每个开发同学只要自己负责的模块,没有太多的耦合。 3,便于维护:各模块管理自己的代码、布局、资源,…

Read More

Swift和Objective-C混编在有赞移动的实践

一、概述 随着 Xcode 11、Swift 5.1 的正式发布,Swift 目前已经实现了 ABI 稳定及模块稳定,语法及实现也比以往更加成熟稳定,所以我们在微商城和零售等业务线中尝试使用 Swift 开发部分业务,并在二方库中进行混编开发,在此我们将一些混编经验分享出来。 二、现状 同一工程内的混编,通常来讲有两种方式: 1、在宿主工程利用桥接文件(…

Read More

有赞移动端商品模块的架构演变之路

商品作为电商SaaS业务中的核心模块,提供了最基础的功能,用户从进入商家主页开始预览、查看商详、到下单完成交易,都离不开商品这个最小单元。商品不仅需要提供最基础最通用的功能,也需要根据业务方的需求能够快速并且动态扩展自己的能力来满足不同类型商家日益变化的需求。 网店商品则主要针对线上店铺,提供在线购买商品场景下所需要的商品数据能力。网店商品SDK是有赞App中的网店商品业务模块,目前支持微商城、零售。本文主要介绍了有赞App中是如何沉淀网店商品SDK的以及一些思考。 为什么要做 为什么要做网店商品SDK?我们看下面这张图: 首先,商品业务模块包含了商品管理、商品编辑、分组管理这三大模块。 图中左侧展示的是零售App中商品管理和商品编辑页面,右侧是微商城App中的商品管理和商品编辑。经过对比可以发现功能是极为相似的,之前是有两个团队维护,…

Read More

有赞云应用远程调试工具

一、背景和简介 1.1 背景 电商云有容器应用场景下,第三方外部开发者的应用是托管在我们有赞云平台的容器中的,出于安全以及整个平台稳定性的要求,应用容器执行环境对外部开发者用户都应该是透明黑盒的。而电商云环境下容器应用的运行会直接依赖于电商云平台所提供Apollo、rds、kvds等各种底层中间件能力,这就导致外部开发者想要实现应用代码的本地调试几乎是不现实的。同时考虑到复杂的网络环境和安全稳定性的要求,平台也不可能开放用户直接连到线上容器应用中利用JVM提供的基于JDWP的远程调试功能。外部开发者强烈的调试需求要求我们平台给外部开发者提供一种在电商云环境下的应用的调试能力。 1.2 简介 有赞云应用远程调试工具是一种不侵入应用代码、不打断应用代码执行、尽可能少的影响代码执行效率的前提下,实现线上应用近似本地调试的体验的调试工具。 总体实现思路是通过java字节码增强技术对开发者指定的代码类包进行精准增强,在满足设定的命中条件时对应用程序执行过程进行录制生成快照,…

Read More

有赞全链路追踪实践

一、简介 在企业级业务系统日趋复杂的背景下,微服务架构逐渐成为了许多中大型企业的标配,它将庞大的单体应用拆分成多个子系统和公共的组件单元。这一理念带来了许多好处:复杂系统的拆分简化与隔离、公共模块的重用性提升与更合理的资源分配、大大提升了系统变更迭代的速度、更灵活的可扩展性以及在云计算中的适用性,等等。 但是微服务架构也带来了新的问题:拆分后每个用户请求可能需要数十个子系统的相互调用才能最终返回结果,如果某个请求出错可能需要逐个子系统排查定位问题;或者某个请求耗时比较高,但是很难知道时间耗在了哪个子系统中。全链路追踪系统就是为了解决微服务场景下的这些问题而诞生的。一般地,该系统由几大部分组成: 客户端埋点SDK:集成在各业务应用系统中,完成链路追踪、数据采集、数据上报等功能; 实时数据处理系统:…

Read More