标题本来叫 《KtArmor-MVVM 前传》,可是这样显得太过局限,因此我站着更高点来讲(标题党),我认可我有赌的成分 :)html
回归正题,这篇文章,我主要想要写给的对象是 想要开源,可是惧怕,亦或者已经 ”开源的朋友“的开发者, 分享一些 我我的对 开发框架的 心得体会 和建议 ,但愿你们喜欢~java
自从知道全球 最大 ** 交友网站—— Github 后,看了一下大佬们写的框架,那叫个git
优雅github
简洁面试
易用数据库
方便缓存
牛逼网络
....app
再看看本身的代码,忽然不香了。框架
面试时,被问到有 开源或参与 过框架开发吗,还在为此发愁?
看见别人写的代码那么好,那么实用,难道你不想本身徒手撸一个属于本身的吗?
喜欢哪一种被人叫大佬(滑稽)的感受吗?
若是知足以上一点, 还不赶忙动起来!
可能你会以为本身菜,造不出轮子,可是好的框架,每每是经历长时间的迭代更新,才会有今天的框架,先迈出第一步,开发属于本身的框架,让 ”时间去优化“ 吧(持续迭代)。
撸一款什么 类型 框架呢? 网络(OkHttp),图片加载(Glide)、数据库(LitePal) 选哪种呢?
醒醒!别作梦了,这种 "类型" 框架,新手仍是别想到了(大佬除外),一上来挑个 硬柿子捏,似不似傻。
咱们能够尝试从简单框架入手,如
经常使用工具类库 (通用方法封装)
Android 简单 UI 框架(Loading,Dialog等)
脚手架 (整合多种主流框架集合)
....
这些框架实现起来相对简单,先入个门,尝试一下。大概了解一下框架发布,更新,迭代的流程。
等熟悉了框架流程,技术到家了,在搞一波大的(大型框架),会更加驾轻就熟。
选型好了以后,咱们能够为 本身框架取一个 有意思
的 名字,固然见名知意的框架名,是正常人的选择。如 SpringBoot-XXX
、 OkHttp-XXX
, Image-XXX
.
可是我我的 建议
,能够是 来福
, 旺财
这种(滑稽),有 寓意 的,哈哈,这里是举例(切勿直接使用),固然 须要在 文档补充 说明一下 框架名称 由来。
这样会显得框架更有意思,有故事,有内味 :)
在实际开发框架中,咱们应该站在 “用户的角度” 思考 (这里 “用户” 是指 使用框架的开发者)
用户怎样才能方便使用框架呢?
框架设计,我大体总结了以下 “三部曲” ,这里咱们以 Glide 为例。
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {}
复制代码
在这里,咱们进行了全局添加有 @GlideModule
注解,继承自 AppGlideModule
的类。此类可生成出一个流式 API。方便后续使用的时候,能够直接链式调用。
Glide.with(fragment)
.load(myUrl)
.into(imageView);
复制代码
短短几行代码,包含了 Glide框架 精华 所在,默认实现三层缓存机制, 内存缓存
,磁盘缓存
,网络缓存
。图片解码,绑定生命周期等等默认实现(详细的能够参考 Glide 源码实现)。大大简化开发者编码实现。
本身用起来是否是很爽吗?一行代码实现这么丰富的功能,实在是 妙 !
// 局部配置
RequestOptions sharedOptions =
new RequestOptions()
.placeholder(placeholder)
.fitCenter();
Glide.with(fragment)
.load(myUrl)
.apply(sharedOptions)
.into(imageView1);
复制代码
总会有一些特殊的需求,如大图加载,占位布局,错误图片等等定制化配置,这时候 局部配置
就派上用场了。
因而可知 Glide 框架,是多么强大啊!
咱们本身在开发框架的时候,也能够尝试往这 三部曲
靠(学习的意思),高度的 自定义配置
,这样子的框架,确定深得人心,那么离 优秀框架
也就不远了。
一份 简而全, 优而雅 的 使用说明文档:
理解
框架,上手
框架。有了文档后,咱们还须要养成 编写注释的习惯
在尝试开源后,并尝试推广 (chui)一波后,而后你就会:
有的朋友可能会说,我推广了没人用了怎么办? 个人答案是——持续迭代。
好的框架,总会有 “发光” 的一天。咱们能作的是:
修复已知 Bug
添加注释
丰富功能
丰富文档
更新版本,寻找更好的实现方式
....
一款好的框架,每每须要持续迭代,而不是不了了之。
以上是我我的开源框架后的 心得体会和建议,若有不妥,欢迎你们一块儿交流学习。