很高兴和你们见面!git
上周五我在掘金发表了 《真香警告:即便不用饿了么订餐,也请务必收藏好该库!》,文中主角 Linkage-RecyclerView 本来只是为 《RxJava魔法师》 这个项目的需求而存在的,没想到在各路读者的积极参与下,让一个原本默默无闻的项目,在内容发布的第三天,登录 GitHub 今日趋势 Java 专区榜单前三,并在 5 天内作到 GitHub star 从 0 飙至 666。(不要慌,项目连接文末已给出)github
在此我首先特别感谢热心读者的见证和参与。掘金社区、WanAndroid 读者对源码的认真阅读和交流,让我备受感动。架构
开源这个项目的初衷有两个,一个是方便读者借助该项目深刻理解,当咱们为项目选择架构时,选材的依据是什么。post
就我当前的认知来看,项目开发,无非就是顾及 “配置解耦”
和 “职责分离”
这两件事。ui
对于通用必用的控件库和组件库,咱们能够将其抽取成模块,作成可供多个项目依赖的第三方库。编码
第三方库的目标是让使用者无需了解内部逻辑、经过外部简单的配置便可轻松上手,于是第三方库适合使用 MVP 架构,来实现 “配置解耦”。spa
对于多人参与的主干工程,咱们须要确保 UI 和 业务之间能够分工给不一样的人协做,这就要求架构必须具有 “关注点分离(SoC)” 或 “职责分离(SoD)” 的特性。设计
于是咱们能够在主干工程中采用目前主流的关注点分离架构 JetPack MVVM,或者由我自主设计并在公司项目重构中采用的职责分离的 VIABUS Architecture。code
开源这个项目的另外一个原因是:blog
有些事我都已忘记,
但我如今还记得,
在一个晚上,
同事阿左问我,今天怎么不开心。
...
我说在个人想象中,有一个开源库,
不同凡响最时尚,接入确定棒,
整个 GitHub 找遍全部的 Repo,都没有。
他说未来会找到的,
时间,时间,会给我答案。。
哈哈,开玩笑的。缘于,公司某个项目中的另外一个需求:为多级联动表单动态绑定数据。
用过 Spinner 的读者都知道,原生的 Spinner 在 onSelectItem 回调中存在延迟的 bug,虽然延迟只有 100ms,但对于哼哧哼哧地装载、绑定、协调表单数据的多级联动表单来讲,实在是致命的错误。
于是在那天晚上加班改需求的时候,我很是盼望着找到一款当下就可使用的 PopupWindow + RecyclerView 实现的第三方 Spinner 开源库。
然而,现实却和我开了个大玩笑,我寻遍了 GitHub 仓库,尝试了若干个项目,都是随便糊弄两下、高度耦合的我的练手项目,这对于急着改需求的我来讲,无异于火上浇油。
因为状况紧急,我选择求助于同在加班的阿左,没想到,阿左竟然在项目闲时本身封装了一个 Spinner 库。
虽然一眼望去,Adapter 三方逻辑的解耦程度还有待提升,但这个库既然能独立存在、经过几行代码便可调用,对于彼时的我来讲,就已是最丰盛、最美的食物。
因而我坚决果断地将该库用在了项目上,在几经尝试后,表单初始化数据终于如愿地正常加载。
最后总结一下你们都关心的,如何让本身的做品能被更多地访问、让 GitHub Star 数一路爬升:
———— 向用户提供价值。
什么是价值?人们对一件事物有需求,这件事于是有了价值。
人们有什么需求?人们面临着什么困境?这是每一个想要服务于大众的人都要首先考虑明白的。
换言之,咱们所作的每一件事,都务必精准地化解目标用户的痛点,惟有如此,才有机会在纷杂的信息中脱颖而出,让做品受到用户的青睐和珍视。
每一个人服务的领域不一样、目标用户也不一样,于是用户痛点须要本身在平常生活中投入大量精力去思考和领悟,这也是为何文章我一周最多只更新一篇的缘由。
在 Linkage-RecyclerView 开源的短短几天里,我累计提交了 49 次代码、多达 9k 行的代码变更。
用户不是傻子,代码是好是坏,一眼就能看出来。惟有一丝不苟地对待工程设计和编码,才有机会让用户感到肯定和安心。
想让精心打磨的做品让更多的用户接触到,就要敢于在社交场合展现本身的价值。产品最终都是服务于人,务必多与用户沟通,让产品和我的品牌往更好的方向发展。
固然,口说无凭,如下贴上 别处看不到的、且你们喜闻乐见的 群聊学(chui)习(shui)交流截图:
考虑到我在技术社区发文,应以技术分享和经验交流为主。想一睹群聊现场的朋友,请移一步到个人同名公众号阅读原文~
GitHub 项目连接:https://github.com/KunMinX/Linkage-RecyclerView