首页
学习
活动
专区
工具
TVP
发布

Android--利用APT+kotlinpoet实现组件化开发Router机制

利用注解解析器(APT)和代码生成器(kotlinpoet)可以根据注解在编译期间就生成相应的代码,业界称之为Router机制 一、Gradle配置及架构分层 在实现Router机制之前,我们还可以对项目的组织架构进行优化...module_a: "com.aruba.libmodule_a" ] androidxCore = 'androidx.core:core-ktx:1.3.2' androidAppCompat...gradle libbase的gradle改造为: plugins { id 'com.android.library' id 'kotlin-android' } //使用一个变量,减少代码量...kotlinOptions { jvmTarget = '1.8' } } dependencies { api androidxCore api androidAppCompat...没关系往下看接口的定义 1.新建Router Module Route组件是实现功能的中间件,业务组件通过调用该组件方法来进行跳转 依赖以下包: dependencies { implementation androidAppCompat

85120
您找到你想要的搜索结果了吗?
是的
没有找到

Git 代码管理(代码提交和代码回退)

Git的主要功能是代码管理,版本管理,分支管理。 在远程代码管理平台上,项目的代码被管理在一个远程代码仓库中,在本地,代码保存在一个本地代码仓库中。...通过Git,本地对代码进行修改后,可以提交到远程代码仓库,当远程的代码被他人修改后,也可以拉取代码到本地。...一、工作区、暂存区和仓库区 将代码从远程代码仓库中拉到本地仓库后,本地仓库的代码与远程仓库的最新代码保持一致。这时候可以在本地仓库中对代码进行修改。...一开始从远程仓库中拉取最新代码代码保存在本地仓库中,开发人员还没有对代码做任何的修改,所以代码处于工作区未修改状态。...回退提交到远程仓库的代码 如果代码已经推到了远程仓库,但是发现代码有问题,需要将代码回滚,还是可以使用 git reset 来回滚代码

2.1K20

代码和坏代码

要写出好代码,首先需要提升品位。 很多软件工程师写不好代码,在评审他人的代码时也看不出问题,就是因为缺乏对好代码标准的认识。 现在还有太多的软件工程师认为,代码只要可以正确执行就可以了。...好代码的特性 好代码具有以下特性。 1....实现代码的共享,不仅需要在意识方面提升,还需要具有相关的能力(如编写独立、高质量的代码库)及相关基础设施的支持(如代码搜索、代码引用机制)。 7....表1  对一流代码特性的汇总分类 坏代码的例子 关于好代码,上面介绍了一些特性,本节也给出坏代码(Bad Code)的几个例子。...好代码从哪里来 上一节说明了好代码的特性,本节来分析好代码是如何产出的。 ▊  好代码不止于编码 好代码从哪里来? 对于这个问题,很多读者肯定会说:“好代码肯定是写出来的呀。”

84010

代码替代低代码

在我们系列文章的第一部分,我们分析了“低代码”和“少代码”在思想上的区别。我们明确了虽然低代码解决方案让更多人可参与软件开发,但它存在局限性,特别是在开发复杂系统时。...这种理念本质上倾向追求代码的清晰性,激励你识别代码中不可或缺的元素,然后抛弃其他部分。是否存在更简洁的解决方案?工具能否用更少的代码实现相同的结果?...代码评审不应仅视为批评环节,而应作为精简、明晰和简化代码的团队协作工作。同样,重构应被视为利用新知识改进旧代码的常规练习。一个更简洁、流畅的代码库就像一个组织良好的工作空间: 它能提高工作效率。...它允许你修剪代码库并替换组件,同时确保新版本的表现如预期。 从低代码向少代码迈进的框架和工具 现代框架通过减少执行常见任务所需编写的代码量,极大地提高了开发效率。...框架的底层代码由社区进行了测试和维护,减轻了周边维护负担。代码生成器不仅避免了重复性的击键,还确保生成的代码本身具有一致性和高效性。

3610

代码和坏代码

要写出好代码,首先需要提升品位。 很多软件工程师写不好代码,在评审他人的代码时也看不出问题,就是因为缺乏对好代码标准的认识。 现在还有太多的软件工程师认为,代码只要可以正确执行就可以了。...好代码的特性 好代码具有以下特性。 1....实现代码的共享,不仅需要在意识方面提升,还需要具有相关的能力(如编写独立、高质量的代码库)及相关基础设施的支持(如代码搜索、代码引用机制)。 7....表1  对一流代码特性的汇总分类 坏代码的例子 关于好代码,上面介绍了一些特性,本节也给出坏代码(Bad Code)的几个例子。...好代码从哪里来 上一节说明了好代码的特性,本节来分析好代码是如何产出的。 ▊  好代码不止于编码 好代码从哪里来? 对于这个问题,很多读者肯定会说:“好代码肯定是写出来的呀。”

77420

代码质量--可重用代码

可重用的代码指:在相似业务场景下,用的是同一份代码。 可重用的代码可以减少重复劳动。一个软件中,会有很多类似的业务场景。将这些场景抽象成可重用的代码。开发新功能时,重用代码可减少重复劳动。...一、如何写出可重用的代码 代码块的职责越多,越难被复用。写出可重用的代码就是:识别,分离出可复用的部分。 考虑这样的场景:代码块A的功能是获取接口数据,并渲染UI。...代码块B的UI和A一样,但获取的接口数据不一样。代码块C获取的数据和A一样,但UI和A不一样。A,B,C之间的代码都不能被复用。...要改成可复用的代码,就是将可复用的UI,获取接口数据的代码独立出来。 下面,我们来看些常见的可复用的部分和复用方法。 (一)UI展示 UI展示为外观的展示,包含:HTML和CSS。...二、总结 要写出可重用的代码,本质就是识别和分离出可复用的部分。前端可以从UI展示,接口调用,业务流程,数据,工具函数中找出可复用的部分。 代码质量的下一层次就是:可重构的代码

12230

代码优化技巧·代码编写好习惯·代码规范

使用同步代码块替代同步方法 除非能确定一整个方法都是需要进行同步的,否则尽量使用同步代码块,避免对那些不需要进行同步的代码也进行了同步,影响了代码执行效率。 28....推荐以后写并发的时候在复习一遍 代码规范 注释 不要给不好的名字加注释,一个好的名字比好的注释更重要 不要“拐杖注释”,好代码 > 坏代码 + 好注释 在文件/类级别使用全局注释来解释所有部分如何工作...,而非明显的细节 不要在代码中加入代码的著作信息,git可以干的事情不要交给代码代码中的html注释是一种厌物, 增加阅读难度 注释一定要描述离它最近的代码 注释一定要与代码对应 公共api需要添加注释...不要添加日志式注释,比如修改时间等信息(git可以做的事情) 注释一定是表达代码之外的东西,代码可以包含的内容,注释中一定不要出现 如果有必要注释,请注释意图(why),而不要去注释实现(how),大家都会看代码...给测试函数取一个完整性的描述性名字,比如 Test _ 测试代码与生产代码一样重要 如果测试代码不能保证整洁,你就会很快失去他们 每个测试一个断言,单个测试中断言数量应该最小化也就是一个断言 FIRST

1.1K10

代码审计(二)——SQL注入代码

正常情况下,这种网站内部直接发送的SQL请求不会有危险,但实际情况是很多时候需要结合用户的输入数据动态构造 SQL语句,如果用户输入的数据被构造成恶意 SQL 代码,Web 应用又未对动态构造的 SQL...SQL操作类 Select……, mysql_query… 文件操作类 Move_uploaded_file,copy,/upload/等 命令执行类 System,popen等常见的系统命令做关键词 代码执行类...正则快速查询 通过一些查询语句的特征,用正则匹配源代码中的SQL语句所在位置 3. 辅助工具 使用Seay源代码审计系统的自动审计功能来辅助我们快速找到SQL注入可能存在的位置。 4....where.*=\{ 根据代码上下文审计是否存在漏洞。 下图中,id参数直接进行了拼接,有可能存在SQL注入的,这里是两处sql执行操作一处是select,一处是update。...有关SQL注入的代码审计的内容到此就告一段落了,下一课将给大家带来更多漏洞的代码审计讲解,敬请期待~ 待续

6.6K20

python表白代码-表白python代码

闲话少说,让我们来欣赏这些代码吧~01 委婉的表白! python代码: 以下的数字对应的是ascii码: python一行代码实现心形: 效果图:?...代码能实现什么丧心病狂的功能?...2准备这个代码仍然是用简单的python编写的,用到的模块也只有小编以往多次使用pygame,其下载方式依然是用pip安装。 只需要在命令行运行以下代码安装即可。...一行代码… 点进去发现一行python代码可以做这么多丧心病狂的功能! 整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。...3一行代码表白爱情print(n.join( … 点进去发现一行python代码可以做这么多丧心病狂的功能! 整理了一下知乎上这篇文章的内容,颇觉有趣,分享给大家。

2.5K50

代码解读器_网页代码解读

此外,虽然论文作者发布是tf的源码,但由于我对tensorflow不如pytorch熟稔,因此这里我只看了pytorch官网复现的STN代码。...1 具体教程 注:以下内容均为复制/翻译,不过我在代码上加了点中文注释 Spatial transformer networks(简称STN)允许神经网络学习如何对输入图像执行空间变换,以增强模型的几何不变性...实际上,由于maxpool层中ceil_mode=False,也就是会舍弃无法整除的部分,因此下面代码的第三行中,xs.view是1033,其中10代表MNIST有十个分类,3*3代表经过最后一个池化层的图片尺寸...= xs.view(-1, 10 * 3 * 3) # 展开为向量 具体计算过程如下: 此外,输入MNIST是单通道的(C=1),经过localization net后变为了10通道,这点代码里写得很清楚...,C,W’,H’),N代表一次性输入的图片数量,C代表通道数目;affine_grid函数得到的输出grid的大小为(N,H,W,2),这里的2是因为一个点的坐标需要x和y两个数来描述;官方教程给出的代码中是采取了

2.6K40
领券