其实对于架构,以前我也是一知半解,但工作了这些年,加上读了许多关于架构相关的文章,结合实际项目经历,有了自己的一些理解。
关于架构的概念,我们可以顾名思义地去看,架构=架+构,也就是在一个整体架子上和各个组件之间的组合结构。
架构离我们并不远,反而在我们的实际开发中无处不在,它是一个很笼统的概念,上至框架选型,组件化等,下至业务代码,设计模式都能称为架构的一部分。对于架构学习而言,我觉得首先得对面向对象(抽象,继承,多态等)及设计原则有一定的理解,进而结合 Android 常用的一些架构如MVVM, MVP, MVI等思想,基础与理论理解清楚了,架构就在日常的开发中,多思考,多结合理论与实际,一点一点地积累起来了。
对于很多新入行的程序员来说,这部分人碰到垃圾代码很多都会想着去重构,但经验丰富的老人(老油子)早就知道能不动别人的代码就不动的(doge),shit都是互相的,你来我往才能生生不息!写代码就讲究一个礼尚往来~
对于程序员来说,在写代码的时候要记得三思而后行,想一想你写的代码是不是在它该在的位置,是不是以该有的形式存在的。
架构不是一蹴而就的,能够从自己写的代码中找到架构的成就感是非常爽的! 如果各位对于架构有迷茫不知从何学起的或者刚入行想要从头开始学习架构,大家可以看看参考一下我整理的这份 《Android 开发架构必备开发文档》。
知识点 :(注解、泛型、策略模式、组件化)
知识点 :(动态代理、反射、编译时处理)
知识点 :(指令集、Android内存管理、类加载机制)
知识点 :(垃圾收集算法、垃圾收集算法分类、垃圾收集器、垃圾收集器分类、物理内存与虚拟内存、GC root算法)
知识点 :(对象内存结构、Object堆内管理策略、逃逸分析、Minor GC、Major GC和Full GC对比与GC日志分析)
知识点 :(JMM并发内存模型、无锁并发策略--CAS、AQS)
知识点 :(Synchronize修饰代码块、锁、同步原理、锁的优化)
知识点 :(线程池、线程池工作原理、自定义线程池)
知识点 :(高效IO、数据序列化、I/O多路复用机制详解、其他序列化方式)