课程:

 从接口(Interface)出发:接口设计的技术和艺术

  • 一個成功案例的實務傳承
  • 高焕堂37码农经验讲解

 指导教练:高焕堂

ee                                                       ee

欢迎访问 =>高焕堂老师的博客

高焕堂:MISOO(大数据.大思考)联盟.台北中心和东京(日本)分社.总教练

 

1. 简介翻转式课堂

1.1  翻转式课堂的目标

 

   萨尔曼·可汗 說:未来的世界是不确定的,因此重要的不是学到什么,而是学习新知识的能力。教育应该具有实践性,其目的应该是帮助学生掌握技能、取得信息,使他们能够谋生。教育应该具有实践性,其目的应该是帮助学生掌握技能、取得信息,使他们能够谋生。学徒制的基础是主动学习—也就是通过实践来学习,即学徒视察并模仿师父的技巧和策略。

 

1.2  翻转式课堂的步骤

   这种<翻转式课堂>的进行步骤如下:                        

  • 步骤-1:参加在线自学微课
  • 步骤-2: 完成微课之后,自行思考相关议题
  • 步骤-3:参加在线翻转式课堂,分组讨论相关议题;并与同学、嘉宾和教练交换见解
  • 步骤-4: 各组实践与演练
  • 步骤-5: 参加在线翻转式课堂,分组报告实践成果;并与同学、嘉宾和教练分享、交换心得

2. 课程

2.1 课程简介

  

    当我们一谈到软件设计,最重要的就是接口设计(The design of interface)。在大家所熟悉的GoF这本"Design Patterns(设计模式)"的一书里,其开宗明义就明确地指出软件开发的重要原则就是:"Program to an interface, not an implementation." (针对接口而写编程,不要针对实现。)这就是说,我们开发软件的时候,先设计好接口,然后才依循接口的定义而开发实现代码。

    大家都知道,要学好软件(或架构)设计,不是从业务或需求开始,而是从接口(Interface)设计出发,才是迅速成为有效(架构)设计师的鸟语花香之路。因为业务(或需求分析)的焦点在于流程(Business flow),而软件(架构)设计的天赋职责就在于结构(Structure),这结构是用来支撑互联网时代下的千变万化企业流程,而未来企业环境、需求与流程的<变化>是不可知的,所以才需要(架构)设计。

   因此,知道结构与流程是分别来自不同而互补的两个面向(Dimension),软件(架构)设计师必须基于两个不同视角(View)来设计架构和规划流程。因此,软件(架构)设计不是从业务(或需求)流程开始,而是从接口设计出发的,而接口不是从业务(领域)或需求抽象出来的。许多初学软件设计者常常迷失于其中,没关系的,我(高老师)陪您越过这个原野,驰聘于广阔无垠的软件世界。

 

2.2  课程内容大纲

Section-1.接口与未来性设计                

1A. 设计思维的转换

  • 常见的迷思(Myth):总是抱怨底层碎片化
  • 新潮思维:维护底层(碎片)的变动自由度

1B. 设计技术的演进

  • 古老技术:上层<直接调用>底层接口
  • 新潮技术:中层形式,限制上层,保护底层碎片

1C. 常用设计模式

  • 设计底层碎片
  • 以形式包装碎片
  • 形式创新组合:简单形式,创新组合,美的韵律

Section-2.掌握接口,才有话语权

2A. 什么是强势接口?

  • 强势vs.弱势接口
  • 演练:分辨出强势&弱势接口

2B. 如何转变为强龙

  • 飞上枝头变凤凰:让Server端(地头蛇)变成强龙
  • 扩大地盘:从Server端拓展到Client端
  • Client端Client端或第三方,如何变成强龙?

2C. 实际案例分享

  • Android范例说明 :第三方成为强龙
  • 多机整合范例:解析谁是强龙
  • 挟天子以令诸侯:成为Client端(或Server端)的小强龙

Section-3.强势平台的<通用性接口>设计方法

3A. <通用性接口>设计法则

  • 碎片化时代的创新组合思维
  • 通用性接口:以IBinder为例
  • 活用Object-oriented的多态(Polymorphism)机制

3B. 从<通用性>转换出<特殊性>接口

  • 接口特殊化:运用<组合思维>
  • 特殊化接口设计:以Android系统服务为例
  • 讨论:谁来设计Stub接口和Stub框架呢?

3C. 应用:API设计法则

  • 领域知识与买主知识
  • 设计思考演练
  • 业务(领域)知识分析--以五子棋为例
  • 企业框架的API设计--活用设计思考

Section-4. 接口设计的实践与演练           

4A. 实践目标

  • 如何设计商城(Web Shop)的业务流程接口

4B. 实践平台

  • 平台:Android/HTML5 + Servlet/PHP + Spring MVC

4C. 实践产出(交付)

  • Servlet/PHP与Spring MVC之间的通用性接口
  • 针对WebShop用例(Use Case):查询某一笔交易(Transaction)
  • 基于上述接口,撰写一个App雏型(Prototype),实践上述用例

 

2.3 课程进行流程

時間長度:5

第一周:参加在线自学微课

  • 高老师已经准备好的视频微课

               

     微课-1(请点击此图,立即体验)       微课-2(请点击此图,立即体验) 

  • 完成微课之后,自行思考相关议题(含老师指定的议题)
  • 参加在线的<与老师对谈>活动(2.5小时),讨论相关议题

第二周:参加在线自学微课

  • 高老师已经准备好的视频微课

               

     微课-3(请点击此图,立即体验       微课-4(请点击此图,立即体验

    

     微课-5(请点击此图,立即体验)  

  • 完成微课之后,自行思考相关议题(含老师指定的议题)
  • 参加在线的<与老师对谈>活动(2.5小时),讨论相关议题

第三周:参加在线自学微课

  • 高老师已经准备好的视频微课

                

     微课-6(请点击此图,立即体验)       微课-7(请点击此图,立即体验)

          

      微课-8(请点击此图)                微课-9(请点击此图)

  • 完成微课之后,针对WebShop用例进行分组讨论,提出初步解决方案
  • 参加在线的<与老师对谈>活动(2.5小时),讨论初步方案

第四周:分组实践与演练(一)

  • 分组讨论,基于初步方案来进行优化,提出高可用的实践方案
  • 参加在线的<与老师对谈>活动(2.5小时),讨论实践方案

第五周:分组实践与演练(二)

  • 分组讨论,基于实践方案来进行UI设计、领域建模、结合MVC架构,成为可编程的细部实践方案
  • 编写HTML5/JS代码来实现UI设计,准备执行于Android移动终端。
  • 编写Servlet或PHP代码来使用自己设计<通用性>接口,调用到Spring MVC框架,并存取DB Service数据;然后显示于Android终端上。
  • 如果没有实体的平台设备(如Spring服务器),可以暂用伪码(Pseudo code)来做出雏形。
  • 参加在线的<与老师对谈>活动(2.5小时),讨论雏型代码和执行结果

~ End ~