Android:这是一个高级工程师的国庆充电规划

2018-10-01 16:08:50 +08:00
 KunMinX

前言

前不久刚结束对 20 模块项目的第 3 轮重构,一路见证 MVC、MVP、Clean 的优缺点并形成自己的体会。

近期在总结工作经验的同时,开始写博客。

之所以将规划放出来,一来是总结的过程中已经形成底稿,不如和大家一块分享,各抒己见。二来粘贴布告,能有效督促自己执行。

Viabus 架构 的开源就是因为有一天,和同事聊着聊着说要开源,结果就真的就做了。

国庆规划

由于 Viabus 对很多人来说,是个很陌生的东西,因此如果想让更多人享受到,“合理而快捷” 的开发体验,可不是一件简单的事。

对此我想的招是,先在网上找个文艺小清新的项目,重构,然后挂在 [Github 项目页面](https://github.com/KunMinX/android-viabus-architecture ) 下方,这样人们就愿意尝试,毕竟试错成本超级小嘛。

在项目重构前,我需要利用国庆七天做一些准备工作。

以上是我依据 “个人开发” 的顺序流程而罗列的技术堆栈。

做过个人开发的一定知道,最头疼的莫过于被一些非专业层面的事情打断。例如如何设计一个好看的界面,这个页面的视觉交互该如何如何。

如果这些事情一开始没有定好,那软件开发根本无从开始。因为如果没有一个好看的界面,你都不会相信这个软件能受人喜欢,首先自己就不相信、不喜欢。

再者,如果没有一个既定的界面设计,那么开发的过程中就会不断的斟酌,反反复复,消磨了开发的热情、拖延了进度。

因此想到的好招就是上述说的,重构市面上已有的产品。

软件的本质

软件的本质是数据的交互。数据是 app 的灵魂。

因而除了那些工具类软件,多数软件只有和后台建立了连接,才能源源不断的拿到数据和层出不穷的变换着展示。

所以第一个要掌握的就是 抓包

教程网上一搜一大把,链接我就不提供了。可以使用 Charles ( Mac ) Fiddler ( Windows ) 来完成抓包工作。

除此之外,过程中可能还要涉猎一番 http 协议和 TCPIP 体系结构。掌握它们的概念,都是会用的到的。

软件重构的目标

软件的本质是数据的交互。无论是多么简单还是复杂的软件,都遵守这一定律。小到一个方法:输入参数,返回结果,大到一个业务,一个模块,输入配置,返回结果。都是一个道理。

那么软件重构的目标,就是将不符合软件本质定律开发的软件,推倒重来,依据该定律来开发。

在该定律的指导下,UI 和 业务 是完全分离的。UI 的职责仅限于请求数据和处理 UI 逻辑,业务的职责仅限于处理请求和返回结果。因此 UI 只负责 UI,它不需要知道业务是怎么准备数据的,业务只负责数据,它不需要 UI 在拿到数据后怎么使用怎么处理。

刚好符合设计模式的 6 大原则。

因此,进一步说,软件重构的目标,

一是使数据的交互标准化。底线是,数据配置和资源的存放位置,必须便于联想。数据名称的定义,必须规范化,不允许使用魔法值。

二是使数据的交互模式化。意思是,数据交互的双方职责明确、职责边界明确、独立自主、互不干涉。

为此第二步就是,查阅一下数据交互框架的源码,对设计模式在 android 中的广泛应用有所见证。

通用必用 Widget 的准备

磨刀不误砍柴工,平日里就要总结、归类和封装你在项目中必然会用的到的控件。例如列表、菜单、对话框等等。这样在编写新项目时,不会被打断。

根据使用场景,我将控件分为以下四类:

1.展示类。是那些供展示,不可编辑的控件。例如引导页、信息展示页。

2.提示类。像吐司、对话框等等,及时提醒用户必要信息的手段。我们可以通过它们来增强软件的表现力,以获取用户的信任。

3.导航类。就是点击即可从此处跳转到别处的控件。例如列表、按钮等。

4.表单类。就是可以执行输入、勾选等表单操作。

总结

以上就是国庆期间的规划:

1.寻找文艺小清新项目,抓包,温习 http 和 TCPIP。

2.归类和整理通用必用控件,供后期不断封装。

3.查阅数据交互框架的源码,见证设计模式。

感谢你的阅读,欢迎点赞评论督促我完成!

更多文章

Github : KunMinX / android-viabus-architecture

Android:四大架构的优缺点,你真的了解吗?

Viabus - 年轻人的第一款架构

9132 次点击
所在节点    Android
6 条回复
qiuqiuer
2018-10-01 19:26:11 +08:00
楼下的,国庆去汕头偶遇吗?
likuku
2018-10-02 14:48:22 +08:00
安卓工程师,充电 ... 第一时间想到的是 三爽 Note7 电池爆炸事件
KunMinX
2018-10-02 15:29:46 +08:00
@likuku 哈哈哈,那可真是名垂千古了 老铁
cjh1095358798
2018-10-02 16:41:07 +08:00
有点厉害,srae 一个
sobigfish
2018-10-02 21:02:33 +08:00
居然还是简书上。。。
lz 找的那个学习的项目叫啥啊
Fulcrum
2018-10-02 23:18:00 +08:00
插个眼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/494420

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX