Android架构设计方法、技巧与实践

培养抽象思维能力,提升开发效率,看懂就能自由设计APP

Android架构设计方法、技巧与实践
145人加入学习
(2人评价)
价格 ¥500.00
教学计划
承诺服务

对外扩展与对内修改的博弈都是建立在对业务流程和代码框架非常熟悉的情况下,看到校长在写代码时就画好了UML图,这个挺好的,方便自己快速完成业务迭代的决策

[展开全文]

我觉得这两节讲得有点乱,没有设计,直接看实现。我觉得不管是发消息也好,还是收消息也好,都要入数据库,然后UI和数据库保持一致。

[展开全文]

1.在回调过程中,回调数据推荐统一放到entity中传递,便于后期维护。

2.尽量将类中一对多的关系简化为一对一关系

[展开全文]

1.和沟通过程中,遇到不确定的情况需标记出变化的地方。

[展开全文]

最少知道原则

在进一步抽象 外观模式(封装) 后,可以推导出这个原则

设计原则如下:

单一职责原则

开闭原则

里氏替换原则

接口隔离原则

依赖倒置原则

以上都是一种写代码的标准,我们平时写代码就应该思考上面的原则,如果没有,以后需要重构的概率就会很大了

 

[展开全文]

外观模式:

1.隔离:将复杂的调用关系和外层隔离,外层只需要调用API就可以了

2.封装:将内部复杂的实现通过各种组合配置在一起,方便外层各种使用

简单来说就是隐藏内部的信息,对外提供业务能力 。

从底层开始不断抽象业务,并一一隔离,这就是封装的

 

[展开全文]

设计模式是某个场景的最优解

类的职能需要单一明确,要学会拆分功能模块

脱离设计模式,组合各种业务构成设计模式

 

 

[展开全文]

高效完成开发的一些套路:

1.工作的一些方式

1.1.菜鸟的需求搜索复制粘贴到求知的需求分析搜索借鉴实现,最后是成熟的需求分析调研,架构设计,拆分实现。

关键是慢慢培养自己面向对象的抽象思维。 

2.高效工作流

2.1.多思考产品的效益达到最大化,写代码之前必须合理建模和反复推敲需求的合理性

2.2.拆分产品的功能模块,分模块开发

2.3.业务层优先于View层,优先完成业务层,业务层是一个面向接口编程的过程。

2.4.写代码必然有bug,解决bug的过程需要耐心和沟通,如果短时内无法实现,就需要和产品经理沟通能否换个业务逻辑了。

[展开全文]

总结:

如何做好一个需求

1.明确业务需求,做好需求分析

2.先考虑高层抽象的实现,最好是通过思维导图来完成.然后就是设计图转架构代码

3.拆分任务,代码需要考虑单元测试

 

[展开全文]

1.合理配置业务,避免代码多次修改

2.使用抽象或接口介绍耦合,组合优先于继承,变化的类不该有强依赖

 

测试的必要性

1.验证程序的正确性

2.方便验证业务是否足够解耦

[展开全文]

1.代码足够解耦,任务分配才能很好完成

2.避免new 带来的问题,创建父类的接口,创建一个工厂来生产需要的具体类

3.面对接口编程,变化的东西将其抽象或者创建为接口,降低耦合,增加代码的灵活性

4.代理模式目前一知半解,需要深入了解。目标:

1)搞明白什么叫静态代理

2)搞明白什么叫动态代理

5.期待单元测试

 

[展开全文]

1.当代码没有约束,写起来随意就意味着容易乱。不过好的代码约束,需要细致的分析才可以得出,一旦得出就要好好遵守。 

 

2.类的属性bean类和回调方法最好写在类里面吧,方便查找和修改,同时这个bean类最好写成静态内部类,不持有外部类的引用。

 

3.这里的Manager类感觉做成的单例比较好吧

 

[展开全文]

需求:采集 车 主的 GPS 和 Sensor,大数据 要 这些 数据 做驾驶行为分析。
第一步:提问

问1:用在什么设备上?
可能:手机、平板、导航仪、中控、行车记录仪、其他智能设备。

问2:应用设备上,是否有指定硬件提供数据?
可能:GPS定位系统,陀螺仪,加速度探测器等等。
   是否可能多设备关联,并行同步采集?(例如一些特种数据,需要车体携带指定传感器才能提供的这种)
   怎么关联?
   可能:OGT、OGT+无线发射器、WIFI/热点、蓝牙、内置(所处设备带有这种传感器)等等

问3:GPS应对目前主流的哪款(哪个公司的)地图?
可能:百度谷歌高德等等等
    是否需要与导航系统协同运作?

问4:采集频率如何即需要多少周期采集一次?
可能:每秒1次、每n秒1次等等
   采集的始末以什么标准界定?可能:启动、停止;点火、熄火;有加速度、加速度为0;导航开始结束等等
   应用可能的运行时长大致是多少?可能:20分钟、2小时、6小时、12小时、用一切手段活着等等

问5:数据如何存储,硬件是否提供存储的空间?
可能:有SD卡、存临时缓存等等。
数据库、文件等形式。

(需要与硬件采集的数据、采集频率配合估算可能产生的数据量,并且考虑硬件的存储容积、存取效率,再具体分析需要用哪种数据库,或者哪种文件格式)

问6:数据采集完成后如何处理?
可能:通过指定接口提交、上传指定格式文件等等

问7:通过网络传输的频率如何?弱网环境如何处理过时数据?
可能:每n秒x次,没有过时数据,是数据就都要。

问7:采集过程中,受硬件影响,可能产生脏数据,这种数据是否需要本地粗略过滤?
可能:要

[展开全文]

代码在类级别上的解耦方式:

1、通过配置来驱动业务,在某一时间内使程序趋于衡定,避免硬编码

2、通过抽象或接口来减少耦合,对于变化的类不该有强依赖,杜绝显示的循环引用

3、 通过中间类来减少直接依赖,比如util类、proxy、工厂类等

[展开全文]

课时5 OOD阶段:

例子:iPhone零件图

  • 面向对象(OOP)程序去中心化,模块化的程序。独立,高内聚,可插拔。
  • 时序图跟类图合并
 
 

 

[展开全文]

需求转化:

 

  • 需求点转模型
  • 画时序图
  • 简单类图
[展开全文]