前两天技术群里一个小伙伴突然问:

不知道你有没有遇到过,每次过年回家 或 相亲都会遇到这样的段子

亲戚 (或未来丈母娘) : 你现在干啥呢?

我:我是做Android的,换种方式说 ,是做app、做手机应用的,就你手机上这一个个应用就是我 们做的

亲戚 (未来丈母娘) : “那你能不能做个淘宝、微信啊?

面对这种疑问,我们也只能笑一笑,毕竟淘宝是200多人同时开发的结晶。经历10多年的版本迭 代。形成了如今高性能淘宝应用,凭一人之力无法做出完整淘宝项目,当然了,我们也可以仿淘宝做做 UI界面。但做出来的壳子对技术提升来说没有什么意义。

这种疑问也引发我们深刻沉思,作为专业的我们, 是怎么实现手机淘宝的,我们应该有所了解。 用了什么架构 ,接下来我们就一起来揭秘吧!

那我们就一起看看淘宝团队是如何实现200多人一起协作开发的完整大型项目吧!

1.1 手淘项目早期遇到的问题你现在也可能遇到?

手机淘宝Android客户端有几百人开发,十几个团队。如果整个Android客户端是一个工程,那十 几个团队每个人上午上班第一件事情估计就是合代码,运气不好,一天都在合代码,而且只要有一个人 提交的代码编译不过,所有人都会被堵塞在那里,所以单个工程是不可能的事情。

只要是包含了很多业务的客户端,都会面临这个问题,各个业务代码量越来越多,新需求又源源 不断的来,业务团队之间要是有直接依赖,那被依赖最多的团队成员,在改代码的时候都是战战兢兢 的,生怕自己的改动导致其他业务奔溃。

最终交付的时候,总会被一个业务线的人卡住,导致没法及时交付这个版本。而且随着代码量越来 越多,方法数超65535的问题也跟着到来

在手机淘宝2010年的版本 由单体项目转成了组件化项目

1.2 为什么要手淘项目要实现组件化呢?

随着从手淘APP发布第一个版本以来,新功能的不断增加,业务也会变的越来越复杂,从当初5个 人的Android团队发展到现在200人的团队规模。协作起来越来越复杂和麻烦,,每次发布版本时真是头 疼的问题!!!

看你的项目适不适应组件化! 看你有没有遇到以下几种情况

1、实际业务变化非常快,但是单一工程的业务模块耦合度太高,牵一发而动全身;
2、对工程所做的任何修改都必须要编译整个工程;
3、功能测试和系统测试每次都要进行;
4、团队协同开发存在较多的冲突.不得不花费更多的时间去沟通和协调,并且在开发过程中,任 何一位成员没办法专注于自己的功能点,影响开发效率;
5、不能灵活的对业务模块进行配置和组装;

1.3 再来看看手淘项目组件化开发的一些优势:

  • 代码解耦变得明显
  • 功能重用变得容易
  • 团队开发变得简单
  • 编译速度变的更快

最关键的是每次发版时,不用等待某一个人提交代码才能提交,可以快速的按照既定时间线提交

1.4 手淘组件化遇到问题,举一个例子(如重复依赖)

重复依赖问题其实在开发中经常会遇到,早期的手淘项目也遇到了,我们来看你手淘项目组怎么解决的呢

比如你 implementation 了一个A,然后在这个库里面又 implementation 了一个B,然后你的工 程中又 implementation 了一个同样的B,就依赖了两次。

可以将所有的依赖写在 module中,手机淘宝在编译过程中会走手淘的编译插件, 所有的依赖统一 交给Groovy适配器来进行,Groovy适配器会筛选出最新版本 交给编译插件。

组件化中还有很多类似需要解决的问题,我们该怎么学习手机淘宝式的组件化呢?

推荐给大家一个讲解组件化的视频:www.bilibili.com/video/BV1BT…

里面讲解的技术点:

1.如何将项目组件化?
2.组件化中的核心路由框架;
3.阿里ARouter框架的分析;
4.编译时技术实现Arouter;

大家感兴趣的可以看一看;

最,最,最后我给大家分享一份从各大网络平台上收录和整理的 Android学习PDF+架构视频+面试文档+源码笔记 ,还有Android开发面试专题资料,高级进阶架构资料供大家学习进阶,希望可以帮助到大家进入大厂、拿到高薪

如果你现在有需要的话,可以在点击查看Android开发核心知识点笔记》最新版,路过别忘了点个Star

喜欢本文的话,不妨给我点个小赞、评论区留言或者转发支持一下呗~

                                                              《Android开发核心知识点笔记》

拥抱组件化开发,手淘项目内部架构分享相关推荐

  1. Vue.js组件化开发实践

    Vue.js组件化开发实践 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一 ...

  2. VUE.JS 组件化开发实践

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模 ...

  3. vue组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...

  4. Android之组件化开发

    转载请标明出处:[顾林海的博客] 个人开发的微信小程序,目前功能是书籍推荐,后续会完善一些新功能,希望大家多多支持! ##前言 在以前的项目中都是建一个基础库,项目依赖基础库,主项目中集成了所有的功能 ...

  5. android组件化开发视频教程,教你打造一个Android组件化开发框架

    作者简介 本篇来自 lucky_billy 的投稿,分享了他的开源组件化框架,详细地讲解框架形成的思路,希望对大家有所帮助. lucky_billy 的博客地址: 解读开源框架设计思想 B站学习视频 ...

  6. 微信小程序 基础3【组件化开发、自定义组件、全栈开发、使用Express】

    视频地址: https://www.bilibili.com/video/BV1cW411T7t6  [2018]学做小程序- 清华大学 https://www.bilibili.com/video/ ...

  7. 【组件化开发】前端进阶篇之如何编写可维护可升级的代码

    前言 我还在携程的做业务的时候,每个看似简单的移动页面背后往往会隐藏5个以上的数据请求,其中最过复杂的当属机票与酒店的订单填写业务代码 这里先看看比较"简单"的机票代码: 然后看看 ...

  8. 360奇舞团钟恒:选用Vue.js进行组件化开发,我们遇到了哪些坑?

    责编:陈秋歌,关注前端开发领域,寻求报道或者投稿请发邮件chenqg#csdn.net. 欢迎加入"CSDN前端开发者"微信群,参与热点.难点技术交流.请加群主微信「Rachel_ ...

  9. React心得之降龙十八掌:第二式-飞龙在天( React组件化开发及相关概念)

    引言 (乾卦九五)<彖>曰:"'飞龙在天',大人造也." 学习了上一章,想必我们对于React有了一个初步的认识,了解了什么是React.什么是JSX.模块与组件.组件 ...

最新文章

  1. [游戏模版15] Win32 飞机射击
  2. Java计算两点间经纬度距离(两种方式)
  3. Oracle interview
  4. 性能提升约7倍!Apache Flink 与 Apache Hive 的集成
  5. set类型 php,常用php操作redis命令整理(四)SET类型详解
  6. Excel 使用技巧之 -- 统计、过滤与引用数据
  7. 中国移动锁定数据业务新战略
  8. python入门教程(非常详细)-Python入门教程:超详细1小时学会Python
  9. 理解Python的协程机制-Yield
  10. linux grub 分辨率,修改grub分辨率
  11. 博弈论笔记:动态博弈
  12. html里怎么画斜线表头,excel里斜线表头怎么做
  13. 音响常见故障如何解决?
  14. 智能家居十大必备功能 乐享真正智能生活
  15. 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?
  16. MySQL-学习数据库必备的基础知识
  17. 欧拉-伯努利梁横向振动2
  18. Ehcache缓存时间设置
  19. 七种方式实现垂直居中
  20. 【面经】2019汇顶科技(固件开发)、地平线机器人(嵌入式)面经

热门文章

  1. 盛志凡:TVOS标准体系建设及产业化推进与广电终端智能化
  2. 中南大学软件工程修习课程
  3. 华硕B250M+I5-7500黑苹果EFI引导文件
  4. 关于“No enclosing instance of type * is accessible. Must qualify the allocation with an enclo……”的总结与思考
  5. 解决win10开机出现C:\WIndows\system32\config\systemprofile\Desktop不可用 问题
  6. 函数表达式与命名函数区别
  7. 精细化边缘安全防护:如何防止CDN域名被恶意刷量?
  8. kk的房《垃》产预《圾CXXN》测
  9. 普元软件获一亿战略投资 董事长刘亚东谈三大核心竞争优势
  10. 煮饭的机器人作文_做饭机器人作文