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

微信扫一扫,分享到朋友圈

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

前言

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

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

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

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

高能.jpg

国庆规划

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

对此我想的招是,先在网上找个文艺小清新的项目,重构,然后挂在 Github 项目页面 下方,这样人们就愿意尝试,毕竟试错成本超级小嘛。

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

技术堆栈.png

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

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

推眼镜.jpg

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

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

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

软件的本质

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

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

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

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

Charles.png

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

软件重构的目标

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

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

viabus_view_bus_business.png

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

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

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

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

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

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

通用必用 Widget 的准备

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

capture.gif

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

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

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

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

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

总结

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

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

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

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

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

老司机.jpg

Reactive Programming in JavaScript with RxJS.

上一篇

vivo X23 视频评测 :外表之下,怎一个炫字?

下一篇

你也可能喜欢

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

长按储存图像,分享给朋友