闲言碎语
时间过得仍是很快的啊,转眼立刻就要到了送外卖的年岁了啊,令人唏嘘不已。互联网真的是关于年岁大的人很不友好的,只要你年岁大了,都仍是会轻视你的。爱惜好自己最终的职业生涯,做点自己喜爱的作业吧。
回到年终总结的内容,我仍是比较满意本年做的一些作业的,我本年转来了工程功率组(CI/CD 或许也叫devops),算是能够专心深化的做一些技能相关的作业,然后服务目标从产品变成了开发,我更多的会从一个工程视点出发来思考一些问题。
接下来的内容便是关于我本年的作业内容的一些肯定吧,吹一波自己其实也算是满意了一个开发的虚荣心,写博客更多的也仅仅满意自己的虚荣心。
Milestone
其实我仍是在纠结到底运用roadmap
仍是milestone
,你问我为什么用由于就和为什么阿里喜爱说抓手是一样的,装逼如风常伴我身。
SaintsRow
黑道圣徒是一款我十分喜爱的开放世界游戏。而且他也很无厘头,可是他有个核心理念是符合咱们这次想做的作业的。一个黑xx的构成便是一个金字塔尖,能够类比成咱们的apk,然后下面便是他们的核心主干 ,也便是咱们的主事务,最终是在事务主干之下的小弟们,小弟们只为主干服务,可是能够他们是归于整个安排的,而不是单给主干们的,也便是咱们基础库。
这个是我年初做的一个东西吧。我其实一开端对他的定义是我司的monorepo
的2.0版本,在咱们的工程架构中哦,其实是把一个巨型工程拆分红多个大型的事务,然后用搭积木的方法把这些组合在一起。早年的咱们只能在最大巨型工程中作业,就相似一个金字塔的结构。
而咱们做的便是把一个个小型的事务都能独立的开端作业起来,这样每个研发的同学都能够根据自己的需求自行的切换自己所需求的作业单元出来,让事务更专心与事务本身,然后让一个巨型工程能够小规模的作业起来。是不是仍是挺有意思的啊。
从全体数据上来看呢,大概缩短到原来1/10的速度左右,仍是十分让我开心的。
古辛高达
ASW-G-11 高达古辛重锻型是铁华团接收了ASW-G-11高达古辛后,经过高达古辛改造而来的形态。
这便是我想说的第二件事了,咱们把整个monorepo
进行了一次从头定义,以当时的saints
作为原型进口,然后将一切的源码作为服务供给给其他app,让他们能从原先的version base
的依靠方法,切换成单一主干的开发方式。
然后让整个monorepo
从单一app的服务,变成了多app同享代码的一种比较有意思的方式,也算是业内的比较有意思的立异了。至于详细有什么好处的话或许仍是要各位细细品味咯。
神意克队
克队 dddd,你说这些谁懂啊
其实大部分插件逻辑都比较简单了啦,便是专门为当时工程做的一些定制,由于咱们重锻了整个monorepo
,所以就需求供给一些简单的可视化插件来辅佐开发更好的杂乱的工程进行操作。比方供给一些配置修改啊,切换不同的app啊,saints
下快速把aar切换回源代码等等功用。
丑是丑了点,可是又不是不能用不是,哈哈哈哈,你说这些谁懂啊。
基础sdk升级
这个便是前一阵子写的kotlin升级啊,哪篇文章也引发出了一系列的问题吧,比方R8了啊,hilt,apt,compose等等啦。可是我个人觉得吧其实处理这些稀奇古怪的问题也是挺有自豪感的!
Wizard
卡门来打 wizard
年中的时分接到一个需求,说要把咱们当时的protobuf
插件进行一次拆分。由于原来一切的proto
生成都放在一个模块里,就让这个模块变得又大有长,导致了一些列不清真的问题。
咱们会根据一个yaml
文件来定义出一个proto的子模块,然后把这个库的proto
依靠也都生成好,然后转化成一个gradle module
,然后以这个proto
的gitsha
作为缓存的唯一标识,进步缓存命中率。然后让事务同学能够更小的依靠他们所需求的proto
模块进行开发。
我差不多写完了,可是还没进入到检验测验的阶段。这儿我也趁便测验学习了下自定义proto
插件。
Plugins Update
这儿呢咱们对工程的编译插件进行了一系列的迭代吧,比方咱们的编译监控插件,增加了编译的模块耗时信息等,还有便是当时编译的依靠,还有编译的插件的依靠等等。
还有便是咱们的方法签名检查的插件,便是之前一向吹嘘逼的A8。咱们原来是魔改了R8,这次经过依靠的方法对其进行了一次重构。
别的天下苦gradle ext
久已,咱们最近在做全工程迁移到version catalog
。以前就觉得其实两者距离不太大,除了version catalog
能运用在buildscript内意外,最近实际在接入的时分发现文件和代码距离真的很大,咱们项目内有许多十分风流的关于某个ext进行插入的操作,别的之前还写了移除,之后空指针问题就抛到了调用点,十分十分蛋疼。其他插件呢是一些基础的维护迭代了,感觉想想也没啥特别有意思的地方了。
TheNext
便是上篇文章介绍的东西咯 Ultraman Nexus 由于是剧场版,所以就不放准哥真男人了
除了之前的创建模块和工程以外,本次增加了关于version catalog的支持,扫描输入工程目录下的一切.gradle
文件,经过正则匹配出dependcies
, 然后把一些ext中很风流的语法去掉,降了我一个人的本,增了我一个人的效。
结尾
正如最终一张TheNext
图片一样,根本我也到了职业生涯的尾声了,虽然我也没想好之后干啥,可是我仍是很热爱代码的,我喜爱做技能,可是我又不喜爱考虑收益,有时分你不写你不用你就真的无法开掘一门技能所带来的真实收益是什么。
共勉吧各位带佬,都希望你我在安卓领域发光发热,咱们都能够变成光的!就不审稿了,闪烁迪迦镇楼!