V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KunMinX
V2EX  ›  Android

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

  •  
  •   KunMinX · 2018-10-01 16:08:50 +08:00 · 4560 次点击
    这是一个创建于 2005 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

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

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

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

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

    高能.jpg

    国庆规划

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

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

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

    技术堆栈.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

    更多文章

    Github : KunMinX / android-viabus-architecture

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

    Viabus - 年轻人的第一款架构

    6 条回复    2018-10-02 23:18:00 +08:00
    qiuqiuer
        1
    qiuqiuer  
       2018-10-01 19:26:11 +08:00 via Android
    楼下的,国庆去汕头偶遇吗?
    likuku
        2
    likuku  
       2018-10-02 14:48:22 +08:00
    安卓工程师,充电 ... 第一时间想到的是 三爽 Note7 电池爆炸事件
    KunMinX
        3
    KunMinX  
    OP
       2018-10-02 15:29:46 +08:00
    @likuku 哈哈哈,那可真是名垂千古了 老铁
    cjh1095358798
        4
    cjh1095358798  
       2018-10-02 16:41:07 +08:00 via Android
    有点厉害,srae 一个
    sobigfish
        5
    sobigfish  
       2018-10-02 21:02:33 +08:00
    居然还是简书上。。。
    lz 找的那个学习的项目叫啥啊
    Fulcrum
        6
    Fulcrum  
       2018-10-02 23:18:00 +08:00 via Android
    插个眼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1385 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:43 · PVG 07:43 · LAX 16:43 · JFK 19:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.