从程序员到架构师之路.doc
《从程序员到架构师之路.doc》由会员分享,可在线阅读,更多相关《从程序员到架构师之路.doc(10页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1Android:从程序员到架构师之路课程简介:一般而言,人们大多先学开发(代码)的技术,随后才学(架构)设计的方法。然而,在实际做事时,却是先设计,随后才写出代码来。敏捷过程则让设计与写码迭代循环下去,一直到完成为止。在本课程里,就遵循敏捷的迭代过程,从思想、方法、模式、范例和成功案例各种不同角度,带你学习从设计到代码的途径。让你在活泼的过程中,轻松地从原本的代码世界,迅速熟悉设计的新天地。在跃入架构设计新天地时,你很快会发现,架构设计的主要流派有二:抽象思维派:致力于抽象出稳定、可靠、不变的共同性架构;亦即,追求的宗。组合创新派:致力于组合出具体独特性的创新架构;亦即,追求的特质。在本课程
2、里,将以后者(组合创新)为主轴,希望能陪伴你在移动互联网、智能终端的创新潮流中,能如鱼得水、展现无比的创造力。此外,也会帮你建立扎实的抽象思维能力。为了让你能顺利从(代码)开发跃升到(架构)设计,本课程会坚持一个美好的信念:”各项架构设计决策都必须能迅速落实为代码” 。一方面符合敏捷的原则;另一方面,你可以从熟悉的代码中,领悟到其幕后的设计思想和技术。例如,本课程也以 Android 开源的代码来阐述其幕后的 UI、IPC、HAL 等架构的设计思维和技巧。为了特别强调架构与代码两者之间的无隙缝衔接,高焕堂老师特别设计了 EIT 代码造形,让组合创新派的设计核心:接口(即 EIT 的)能直接落实
3、到代码。因之,EIT 造形成为架构与代码的核心交汇点。此外,在本课程里,将由高老师指导大家亲自进行架构设计,直接取得实务经验;例如,以移动互联网+智能家庭的情境,设计出手机与 TV 整合、多萤互动的新型系统架构,并迅速落实为可执行的框架代码。并藉由成功案例分享来提供大量的实务设计模式,融合到框架的开发与 API 设计上,让学员在最短的时间内获得扎实的设计经验和技巧;往上应用于各行各业上。2课程大綱:Part-1: 从架构到代码的过程1.1 敏捷与架构的完美组合敏捷开发的原则和价值观开发、架构、测试之关系 架构在敏捷过程里的角色架构师在敏捷过程的职责过程观点:(需求)测试做,敏捷(过程)做;分合
4、观点:(架构)设计做,(代码)开发做测试触发反馈,反馈带动迭代,迭代驱动 重构迭代促进了的心灵沟通与携手协作举例:架构师如何设计敏捷的起始架构 (Simple Solution)加法设计:围绕问题( Problem)和愿景(Vision),产生创意构想(Creative Idea)减法设计:创意爱上限制(Creativity loves constraint)1.2 代码是架构的外貌,永远青春架构师与开发者的合作成果:架构 +代码=软件(系统)架构是软件的骨架、代码是软件的外貌架构是软件的核心架构的用意:创新组架构设计的焦点:接口 (Interface)设计决策具有,系统才能适应未来1.3 设
5、计与开发的分工合作架构设计的目的是:组合架构师做,支持开发者做,合作实践(系统)组合分得妙,就能合得快(即:分之以为用,合之以为利 )分得妙,就能得好接口 (Interface)架构师的核心工作:接口设计 (Interface Design)开发者的核心工作:依据接口,开发 (系统)模块并整合有许多种开发者:如 App 开发者、底层系统开发者等1.4 敏捷思维:尽快呈现架构的外貌接口设计是的组合设计3接口设计是的分工设计架构师设计多种接口来支撑分工与组合架构师心中的 4 种接口:SI、PI、API 和 UISI:本架构与外部系统之间的整合接口PI:本架构与内部挿件(Plug-in)之间的接口A
6、PI:本架构与应用程序(App)之间的接口UI:App 与用户的互动接口依循敏捷原则,接口迅速落实为代码,尽快呈现外貌1.5 EIT 造形:接口美丽的外貌认识 EIT 软件造形EIT 造形:呈现核心设计的外貌EIT 造形的可涵盖三种:SI、PI、APIEIT 造形的代表本架构EIT 造形的代表本架构的配件(即插件:Plug-in)1.6 一群美妙的组合是:框架(Framework)认识 GoF 的设计模式(Design Pattern)随着敏捷的迭代过程, EIT 造形会逐渐增加如何巧妙组合渐增的 EIT 造形:擅用设计模式组合起来,就成为软件框架了如何迭成多层级(Layer)的框架体系:以
7、Android 为例Part-2: 从 Android 框架代码中学习设计2.1基础设计模式(Pattern)的代码:以 Android 为例Template Method 模式:IoC(控制反转)机制Observer 模式:接口设计Abstract Factory 模式:两个 EIT 造形的组合Adapter 模式:封装接口Composite 模式:实践组合Faade 模式:组合体的接口设计EIT 造形是原子,设计模式是分子更多 EIT 造形的组合模式:以 Android 代码为例2.2 从 UI 框架入手View 体系的架构设计(使用 Template Method 模式)Activity
8、-View 的架构设计(使用 Factory 模式) Layout-View 的架构设计(使用 Composite 模式)4WMS(WindowManagerService)-View 的架构设计WMS-SurfaceFlinger 的架构设计Surface-Canvas(画布)的架构设计 SurfaceView 与 OpenGL 的 3D 绘图架构设计ListView 框架的设计2.3 跨进程(IPC)架构设计Android 的 IPC 幕后设计:BD(Binder Driver)驱动架构以 IBinder 接口包装 BD 驱动的服务包装 IBinder 接口的 Proxy-Stub 设计模
9、式Proxy 和 Stub 类别的代码设计 Proxy 和 Stub 类别的 API如何自动生成 Proxy 和 Stub 类别代码IBinder & AIDL 方法方法(一):Implementing a Binder方法(二):Using a Messenger 方法(三):Bound Services2.4 Java 与 C/C+两层框架的设计JNI(Java Native Interface)代码开发要点JNI 的数据型态(Data Type)转换规则JNI 的线程(Thread)模式:JNIENV 类的设计正向通信:Java 函数调用本地 C 函数反向通信:本地 C 函数调用 Jav
10、a 函数Android HAL 架构设计 HAL(Hardware Abstraction Layer)的意义 理解 runtime 与 HAL Stub 撰写 HAL Stub 代码 Stub 调用 Linux Kernel 的方法2.5 核心服务的框架设计认识核心服务(Core Service)核心服务都是在开机过程中 ,由 Android 的 INIT 进程启动的包括 Android Service 和 Native Service 两种以 Java 语言撰写的,就称为 Android Service以 C+撰写的,就称为 Native Service亲自撰写一个核心服务撰写一个 C+类
11、别5继承 BBinder 基类,继承得来 IBinder 界面提供接口给 Java 层(透过 JNI)调用 2.6 JUnit 测试框架的设计Android 的测试工具,都是基于 JUnit 测试框架的JUnit 框架也是由许多 EIT 造形所组成;其 TestCase 基类是从基类衍生出各子类,如 ServiceTestCase 就是扩充的;其内涵的setUP()和 tearDown()函数就是 可撰写(即 Test case)代码,来启动 TDD 机制可使用 TestSuite 基类来管理一群相关的(即 Test case)Part-3: 梳理你的架构设计思想、方法和模式3.1 复习设计概
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序员 架构
限制150内