企业开发领域的语言特性

107
企业开发领域的语言特性 思考者:发明正确的技术来解决问题 …… 师建茁,[email protected] Jan 15, 2011

Upload: jeffz

Post on 10-May-2015

807 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 企业开发领域的语言特性

企业开发领域的语言特性  

思考者:发明正确的技术来解决问题 …  …    

师建茁,[email protected]    Jan  15,  2011  

Page 2: 企业开发领域的语言特性

About  Amos  

•  程序猿 *  •  * Un;l  Jan  15,  2011  

•  Thinker  

* 图片来自互联网  

Page 3: 企业开发领域的语言特性

企业软件  

与开发有关的部分特性:  •  开放源代码  •  快速订制和开发  •  容易升级和维护  •  Bug  很少  

– 平台强大  – 高度集成  – 代码很少  

Page 4: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 5: 企业开发领域的语言特性

管理集成  

例子:打补丁需要多长时间  •  在超过150G的程序中修改生效一行  •  包括部署到客户系统上以解决问题  

 

Page 6: 企业开发领域的语言特性

打补丁  

•  编译型语言 vs.  解释型语言  – Na;ve  (C,  C++,  Delphi,  VB,  VC,  …  )  –  .NET  –  Java  – Script  (JavaScript,  PHP,  Python,  Ruby,  TCL,  …  )  

•  有没有可能在10分钟之内完成?  – ABAP  since  1983  

Page 7: 企业开发领域的语言特性

不同的  Run;me  

Source  Code  Text  

Complied  Applica;on  

Run;me  Manual  Load  

Source  Code  Text   Complied  Applica;on  Run;me  Auto  Load  

Page 8: 企业开发领域的语言特性

源代码管理  

* 图片来自SAP  

Page 9: 企业开发领域的语言特性

Change  Request 对象  

Page 10: 企业开发领域的语言特性

Change  Request  Transport  过程  

Page 11: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 12: 企业开发领域的语言特性

类型集成  

例子:数据库表的列  •  数据库表格的列  =  源代码中的数据类型  •  数据库表格的列  =UI元素的  Label  •  数据库表格的列  =  Value  Help  +  F1  Help  

Page 13: 企业开发领域的语言特性

类型集成-数据库表的列  

对比 (非公平)  •  Java  :各种框架,配置繁琐,一致性问题  •  .NET,  Delphi:  Data  Binding  (Anders)  •  Ruby:配置 à  约定 à  集成工具  

– “约定优于配置”  –   集成工具优于约定  

Page 14: 企业开发领域的语言特性

数据库表的列  

Page 15: 企业开发领域的语言特性

数据库表的列的外键  

Page 16: 企业开发领域的语言特性

数据库表的列的定义  

Page 17: 企业开发领域的语言特性

Dynpro:  窗口程序  

•  关键字:Parameters  

Page 18: 企业开发领域的语言特性

窗口程序:程序代码中直接使用数据库表名字作为 Structure,  引用数据库的列  

Page 19: 企业开发领域的语言特性

窗口程序:根据数据库的列自动生成的界面  

Page 20: 企业开发领域的语言特性

窗口程序:根据数据库的列的外键自动生成的 Value  Help  

Page 21: 企业开发领域的语言特性

窗口程序:复杂查询条件叠加;外键套外键  

Page 22: 企业开发领域的语言特性

窗口程序:根据数据库的列的定义,自动生成的帮助文档  

Page 23: 企业开发领域的语言特性

Web  Dynpro:  网页程序  

•  Meta  Data:顺便解决了浏览器兼容性问题  

业务逻辑  

Meta  Data  

网页程序  

Page 24: 企业开发领域的语言特性

Web程序:MVC  -­‐  网页代码中直接引用数据库列  

Page 25: 企业开发领域的语言特性

Web程序:MVC  -­‐  向导自动生成界面  

Page 26: 企业开发领域的语言特性

Web程序:运行中  

Page 27: 企业开发领域的语言特性

Web程序:根据数据库的列的外键自动生成的 Value  Help  

Page 28: 企业开发领域的语言特性

Web程序:根据数据库的列的外键自动生成的 Value  Help  

Page 29: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 30: 企业开发领域的语言特性

界面集成  

例子1/2:Type  Range  •  Type  Range  vs.  复杂条件选择界面  •  Type  Range  vs.  OPEN  SQL  语句  

例子2/2:Search  Help  

 

Page 31: 企业开发领域的语言特性

界面集成  

•  对比  –  .NET、Java、PHP、Python 、Ruby 、 C  …  

UI  Layout:  Web,  Window  

Business  Logic:  Language-­‐Specific  Blocks  

Database  Driver  /  O-­‐R  Mapping  File  

Oracle   MSSQL   MySQL   …  

Page 32: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  vs.  OPEN  SQL  keyword  IN  

Page 33: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Start  

Page 34: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Category  1/2  

Page 35: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Category  2/2  

Page 36: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Priority  1/3  

Page 37: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Priority  2/3  

Page 38: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Priority  3/3  

Page 39: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Debug  

Page 40: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Debug  Inspector  1/2  

Page 41: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Debug  Inspector  1/2  

Page 42: 企业开发领域的语言特性

Type  Rang  via  Select  Op;on  –  Result  

Page 43: 企业开发领域的语言特性

Type  Rang  via  DDIC:  1/2  

Page 44: 企业开发领域的语言特性

Type  Rang  via  DDIC:  2/2  

Page 45: 企业开发领域的语言特性

Type  Rang  via  Code  :  1/3  

Page 46: 企业开发领域的语言特性

Type  Rang  via  Code  :  2/3  

Page 47: 企业开发领域的语言特性

Type  Rang  via  Code:  3/3  

Page 48: 企业开发领域的语言特性

界面集成  

例子1/2:Type  Range  

例子2/2:Search  Help  •  Search  Help  vs.  Customizing  •  Search  Help  vs.  Coding  •  Search  Help  vs.  User  Interface    

Page 49: 企业开发领域的语言特性

Search  Help  -­‐  Source  Code  

Page 50: 企业开发领域的语言特性

Search  Help  -­‐  Start  

Page 51: 企业开发领域的语言特性

Search  Help  -­‐  Structure  Search  2/3  

Page 52: 企业开发领域的语言特性

Search  Help  -­‐  Structure  Search  3/3  

Page 53: 企业开发领域的语言特性

Search  Help  -­‐  Defini;on  1/4  

Page 54: 企业开发领域的语言特性

Search  Help  -­‐  Defini;on  2/4  

Page 55: 企业开发领域的语言特性

Search  Help  -­‐  Defini;on  3/4  

Page 56: 企业开发领域的语言特性

Search  Help  -­‐  Defini;on  4/4  

Page 57: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 58: 企业开发领域的语言特性

扩展集成  

例子:Structure  Include  •  Structure  in  Programming  Language    

 =  Database  Table  Defini;on  

   Database  Layer  

Model  Layer   API  Layer   UI  Layout  

Page 59: 企业开发领域的语言特性

Customer  Defined  Field  -­‐  Web  UI  

Page 60: 企业开发领域的语言特性

Customer  Defined  Field  -­‐  DDIC  1/2  

Page 61: 企业开发领域的语言特性

Customer  Defined  Field  -­‐  DDIC  2/2  

Page 62: 企业开发领域的语言特性

Structure  in  Source  Code  

Page 63: 企业开发领域的语言特性

Customer  Defined  Field  -­‐  Web  Page  Design  

Page 64: 企业开发领域的语言特性

扩展集成  

•  对比  – 语义级支持扩展  – 运行时支持扩展  

•  当工具不具备的时候,可以自己做    

Page 65: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 66: 企业开发领域的语言特性

流程集成  

例子1/2:I18N流程  •  DDIC  Label:  Window,  Web  Page  •  Message  Class  •  OTR  Text:  Web  Page  •  Tagged  Text:  Class,  Program    

例子2/2:Portal流程  

 

Page 67: 企业开发领域的语言特性

流程集成 –  I18N  

开发部门(分布式)  

翻译部门(外包)  

测试部门(半外包)  

Packaging  部门  

维护 &  客户服务部门  

Page 68: 企业开发领域的语言特性

InfoQ  架构师杂志,2010年第12期  

Page 69: 企业开发领域的语言特性

Visual  Studio  2010  Express  C#  

Page 70: 企业开发领域的语言特性

* 图片来源于网络:Code  Project,  and  un-­‐well-­‐known  

Page 71: 企业开发领域的语言特性

NetBeans  IDE  6.9  

Page 72: 企业开发领域的语言特性

Example  from  Sun  Java  Web  Site  &  NetBeans  IDE  6.9  

Page 73: 企业开发领域的语言特性

流程集成 –  I18N  

•  一种新的语法  – 括号语法:‘Some  Text’  (001)  

•  一种新的语言对象  – 针对 Web  Dynpro  程序:OTR  Text  – 针对 Window  (Dynpro)  程序:Message  Class  

Page 74: 企业开发领域的语言特性

SAP  ABAP  Code  Example  for  I18N  1/3  

Page 75: 企业开发领域的语言特性

SAP  ABAP  Code  Example  for  I18N  2/3  

Page 76: 企业开发领域的语言特性

SAP  ABAP  Code  Example  for  I18N  3/3  

Page 77: 企业开发领域的语言特性

流程集成 –  I18N  

•  一种新的语法  – 括号语法:‘Some  Text’  (001)  

•  一种新的语言对象  – 针对 Web  Dynpro  程序:OTR  Text  – 针对 Window  (Dynpro)  程序:Message  Class  

Page 78: 企业开发领域的语言特性

SAP  OTR  Library:  Search  or  an  OTR  Text  

Page 79: 企业开发领域的语言特性

SAP  OTR  Library:  OTR  Text  Object  

Page 80: 企业开发领域的语言特性

SAP  Web  Dynpro:  Using  OTR  Text  Object  1/2  

Page 81: 企业开发领域的语言特性

SAP  Web  Dynpro:  Using  OTR  Text  Object  2/2  

Page 82: 企业开发领域的语言特性

流程集成  

例子1/2:I18N流程  

例子2/2:Portal流程  •  开发部门:Content,  System  Config.  •  支持部门:User  Authoriza;on,  Customizing  •  业务专家:Portal      

Page 83: 企业开发领域的语言特性

流程集成 –  Portal  

•  Apache  Jet  Speed  •  IBM  Portal  •  Microson  Share  Point  •  SAP  Enterprise  Portal  •  à  iGoogle,  My  Yahoo!  

Page 84: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 85: 企业开发领域的语言特性

环境集成  

开发环境 +  运行环境  •  二合一的平台  

企业级调试  •  用户断点,条件断点  •  断点的回退 和 跳跃  •  动态修改变量的值    

Page 86: 企业开发领域的语言特性

开发调试环境  

Visual  Studio  

Eclipse  /  NetBeans  

Notepad,  Eclipse,  NetBeans  

…  …  

运行环境  

Standalone  Applica;on  /  Windows  IIS  

Applica;on  Server:  Tomcat,  WebSphere,  JBoss,  WebLogic  

Apache  +  PHP  Extension  

…  …  

开发调试环境 vs.  运行环境  

Page 87: 企业开发领域的语言特性

开发调试环境 +  运行环境  

业务应用程序  

运行环境  

Services  Basis  

开发调试环境  

Page 88: 企业开发领域的语言特性

SAP  NetWeaver  Architecture    

Page 89: 企业开发领域的语言特性

环境集成  

开发环境 +  运行环境  •  二合一的平台  

企业级调试  •  用户断点,条件断点  •  断点的回退 和 跳跃  •  动态修改变量的值    

Page 90: 企业开发领域的语言特性

用户断点,Session断点  

Page 91: 企业开发领域的语言特性

条件断点 – 基于静态对象  

Page 92: 企业开发领域的语言特性

条件断点 – 基于动态对象  

Page 93: 企业开发领域的语言特性

断点跳跃-­‐1/2  

Page 94: 企业开发领域的语言特性

断点跳跃-­‐2/2  

Page 95: 企业开发领域的语言特性

断点回退-­‐1/2  

Page 96: 企业开发领域的语言特性

断点回退-­‐2/2  

Page 97: 企业开发领域的语言特性

修改变量的值-­‐1/3  

Page 98: 企业开发领域的语言特性

修改变量的值-­‐2/3  

Page 99: 企业开发领域的语言特性

修改变量的值-­‐3/3  

Page 100: 企业开发领域的语言特性

议程  

•  管理集成:源码管理  &  客户服务  •  类型集成:数据字典  &  语法元素  •  界面集成:数据字典  &  UI元素  •  扩展集成:一处修改  &  处处修改  •  流程集成:I18N流程  &  Portal流程  •  环境集成:开发环境  &  运行环境  •  企业集成:技术创新 &  业务需求  

Page 101: 企业开发领域的语言特性

技术 vs.  业务  

例子1/3:  演示-­‐Xcelsius  for  业务部门  •  Inter-­‐Department  Communica;on  •  Flash  vs.  HTML5  

业务部门   IT 部门  

* 图片来自互联网,有修改  

Page 102: 企业开发领域的语言特性

技术 vs.  业务  

例子2/3:  视频-­‐BI  Explorer  for  决策者  •  以思维的速度探查业务  •  Column  based  Database  •  In  Memory  Compu;ng  

 

业 务 部 门  * 图片来自互联网,有修改  

Page 103: 企业开发领域的语言特性

技术 vs.  业务  

例子3/3:  视频-­‐卓有成效的GRC风险管控  •  采用最成熟稳定的技术框架  

 

Page 104: 企业开发领域的语言特性

中国制造 vs.  中国创造  

发明正确的技术来解决问题  •  Invented  in  China    

Page 105: 企业开发领域的语言特性

SAP创新社区 – ABAP学习交流中心(免费)�www.sdn.sap.com

n 专栏�

n 在线教程�

n 中文专家博文分享�

n 英文专家博文分享�

n 维基百科�

n 中文论坛�

* PPT由SDN提供

Page 106: 企业开发领域的语言特性

Thank  you!  

Amos  Shi  

SAP  Labs  China  1001  Chenhui  Road  201203  Shanghai  

T  +86/21/6108-­‐3245  F  +86/21/6108-­‐3233  

[email protected]    www.sap.com  

Page 107: 企业开发领域的语言特性