前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我想变成光 | 2022 安卓年终总结

我想变成光 | 2022 安卓年终总结

作者头像
逮虾户
发布2023-01-18 11:10:15
3220
发布2023-01-18 11:10:15
举报
文章被收录于专栏:逮虾户逮虾户

theme: smartblue

闲言碎语

时间过得还是很快的啊,转眼马上就要到了送外卖的年纪了啊,令人唏嘘不已。互联网真的是对于年纪大的人很不友好的,只要你年纪大了,都还是会歧视你的。珍惜好自己最后的职业生涯,做点自己喜欢的事情吧。

回到年终总结的内容,我还是比较满意今年做的一些事情的,我今年转来了工程效率组(CI/CD 或者也叫devops),算是可以专心深入的做一些技术相关的事情,然后服务对象从产品变成了开发,我更多的会从一个工程角度出发来思考一些问题。

接下来的内容就是对于我今年的工作内容的一些肯定吧,吹一波自己其实也算是满足了一个开发的虚荣心,写博客更多的也只是满足自己的虚荣心。

Milestone

其实我还是在纠结到底使用roadmap还是milestone,你问我为什么用因为就和为什么阿里喜欢说抓手是一样的,装逼如风常伴我身。

SaintsRow

黑道圣徒是一款我非常喜欢的开放世界游戏。而且他也很无厘头,但是他有个核心理念是符合我们这次想做的事情的。一个黑xx的构成就是一个金字塔尖,可以类比成我们的apk,然后下面就是他们的核心骨干 ,也就是我们的主业务,最后是在业务骨干之下的小弟们,小弟们只为骨干服务,但是可以他们是属于整个组织的,而不是单给骨干们的,也就是我们基础库。

这个是我年初做的一个东西吧。我其实一开始对他的定义是我司的monorepo的2.0版本,在我们的工程架构中哦,其实是把一个巨型工程拆分成多个大型的业务,然后用搭积木的形式把这些组合在一起。从前的我们只能在最大巨型工程中工作,就类似一个金字塔的结构。

而我们做的就是把一个个小型的业务都能独立的开始工作起来,这样每个研发的同学都可以根据自己的需要自行的切换自己所需要的工作单元出来,让业务更专注与业务本身,从而让一个巨型工程可以小规模的工作起来。是不是还是挺有意思的啊。

从整体数据上来看呢,大概缩短到原来1/10的速度左右,还是非常让我开心的。

古辛高达

ASW-G-11 高达古辛重锻型是铁华团接收了ASW-G-11高达古辛后,通过高达古辛改造而来的形态。

image.png
image.png

这就是我想说的第二件事了,我们把整个monorepo进行了一次重新定义,以当前的saints作为原型入口,然后将所有的源码作为服务提供给别的app,让他们能从原先的version base的依赖方式,切换成单一主干的开发模式。

然后让整个monorepo从单一app的服务,变成了多app共享代码的一种比较有意思的模式,也算是业内的比较有意思的创新了。至于具体有什么好处的话可能还是要各位细细品味咯。

神意克队

克队 dddd,你说这些谁懂啊

image.png
image.png

其实大部分插件逻辑都比较简单了啦,就是专门为当前工程做的一些定制,因为我们重锻了整个monorepo,所以就需要提供一些简单的可视化插件来辅助开发更好的复杂的工程进行操作。比如提供一些配置修改啊,切换不同的app啊,saints下快速把aar切换回源代码等等功能。

image.png
image.png

丑是丑了点,但是又不是不能用不是,哈哈哈哈,你说这些谁懂啊。

基础sdk升级

这个就是前一阵子写的kotlin升级啊,哪篇文章也引发出了一系列的问题吧,比如R8了啊,hilt,apt,compose等等啦。但是我个人觉得吧其实解决这些稀奇古怪的问题也是挺有自豪感的!

Wizard

卡门来打 wizard

image.png
image.png

年中的时候接到一个需求,说要把我们当前的protobuf插件进行一次拆分。因为原来所有的proto生成都放在一个模块里,就让这个模块变得又大有长,导致了一些列不清真的问题。

我们会基于一个yaml文件来定义出一个proto的子模块,然后把这个库的proto依赖也都生成好,然后转化成一个gradle module,然后以这个protogitsha作为缓存的唯一标识,提高缓存命中率。然后让业务同学可以更小的依赖他们所需要的proto模块进行开发。

我差不多写完了,但是还没进入到验收测试的阶段。这里我也顺便尝试学习了下自定义proto插件。

Plugins Update

这里呢我们对工程的编译插件进行了一系列的迭代吧,比如我们的编译监控插件,增加了编译的模块耗时信息等,还有就是当前编译的依赖,还有编译的插件的依赖等等。

还有就是我们的方法签名检查的插件,就是之前一直吹牛逼的A8。我们原来是魔改了R8,这次通过依赖的形式对其进行了一次重构。

另外天下苦gradle ext久已,我们最近在做全工程迁移到version catalog。以前就觉得其实两者差距不太大,除了version catalog能使用在buildscript内意外,最近实际在接入的时候发现文件和代码差距真的很大,我们项目内有很多非常风骚的对于某个ext进行插入的操作,另外之前还写了移除,之后空指针问题就抛到了调用点,非常非常蛋疼。别的插件呢是一些基础的维护迭代了,感觉想想也没啥特别有意思的地方了。

TheNext

就是上篇文章介绍的东西咯 Ultraman Nexus 因为是剧场版,所以就不放准哥真男人了

image.png
image.png

除了之前的创建模块和工程以外,本次增加了对于version catalog的支持,扫描输入工程目录下的所有.gradle文件,通过正则匹配出dependcies, 然后把一些ext中很风骚的语法去掉,降了我一个人的本,增了我一个人的效。

结尾

正如最后一张TheNext图片一样,基本我也到了职业生涯的尾声了,虽然我也没想好之后干啥,但是我还是很热爱代码的,我喜欢做技术,但是我又不喜欢考虑收益,有时候你不写你不用你就真的无法发掘一门技术所带来的真实收益是什么。

共勉吧各位带佬,都希望你我在安卓领域发光发热,我们都可以变成光的!就不审稿了,闪耀迪迦镇楼!

image.png
image.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • theme: smartblue
  • 闲言碎语
  • Milestone
    • SaintsRow
      • 古辛高达
        • 神意克队
          • 基础sdk升级
            • Wizard
              • Plugins Update
                • TheNext
                • 结尾
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档