企业开发领域的语言特性

Post on 10-May-2015

807 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

企业开发领域的语言特性  

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

师建茁,AmosShi@yahoo.com    Jan  15,  2011  

About  Amos  

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

•  Thinker  

* 图片来自互联网  

企业软件  

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

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

议程  

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

管理集成  

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

 

打补丁  

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

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

不同的  Run;me  

Source  Code  Text  

Complied  Applica;on  

Run;me  Manual  Load  

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

源代码管理  

* 图片来自SAP  

Change  Request 对象  

Change  Request  Transport  过程  

议程  

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

类型集成  

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

类型集成-数据库表的列  

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

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

数据库表的列  

数据库表的列的外键  

数据库表的列的定义  

Dynpro:  窗口程序  

•  关键字:Parameters  

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

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

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

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

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

Web  Dynpro:  网页程序  

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

业务逻辑  

Meta  Data  

网页程序  

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

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

Web程序:运行中  

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

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

议程  

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

界面集成  

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

例子2/2:Search  Help  

 

界面集成  

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

UI  Layout:  Web,  Window  

Business  Logic:  Language-­‐Specific  Blocks  

Database  Driver  /  O-­‐R  Mapping  File  

Oracle   MSSQL   MySQL   …  

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

Type  Rang  via  Select  Op;on  –  Start  

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

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

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

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

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

Type  Rang  via  Select  Op;on  –  Debug  

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

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

Type  Rang  via  Select  Op;on  –  Result  

Type  Rang  via  DDIC:  1/2  

Type  Rang  via  DDIC:  2/2  

Type  Rang  via  Code  :  1/3  

Type  Rang  via  Code  :  2/3  

Type  Rang  via  Code:  3/3  

界面集成  

例子1/2:Type  Range  

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

Search  Help  -­‐  Source  Code  

Search  Help  -­‐  Start  

Search  Help  -­‐  Structure  Search  2/3  

Search  Help  -­‐  Structure  Search  3/3  

Search  Help  -­‐  Defini;on  1/4  

Search  Help  -­‐  Defini;on  2/4  

Search  Help  -­‐  Defini;on  3/4  

Search  Help  -­‐  Defini;on  4/4  

议程  

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

扩展集成  

例子:Structure  Include  •  Structure  in  Programming  Language    

 =  Database  Table  Defini;on  

   Database  Layer  

Model  Layer   API  Layer   UI  Layout  

Customer  Defined  Field  -­‐  Web  UI  

Customer  Defined  Field  -­‐  DDIC  1/2  

Customer  Defined  Field  -­‐  DDIC  2/2  

Structure  in  Source  Code  

Customer  Defined  Field  -­‐  Web  Page  Design  

扩展集成  

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

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

议程  

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

流程集成  

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

例子2/2:Portal流程  

 

流程集成 –  I18N  

开发部门(分布式)  

翻译部门(外包)  

测试部门(半外包)  

Packaging  部门  

维护 &  客户服务部门  

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

Visual  Studio  2010  Express  C#  

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

NetBeans  IDE  6.9  

Example  from  Sun  Java  Web  Site  &  NetBeans  IDE  6.9  

流程集成 –  I18N  

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

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

SAP  ABAP  Code  Example  for  I18N  1/3  

SAP  ABAP  Code  Example  for  I18N  2/3  

SAP  ABAP  Code  Example  for  I18N  3/3  

流程集成 –  I18N  

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

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

SAP  OTR  Library:  Search  or  an  OTR  Text  

SAP  OTR  Library:  OTR  Text  Object  

SAP  Web  Dynpro:  Using  OTR  Text  Object  1/2  

SAP  Web  Dynpro:  Using  OTR  Text  Object  2/2  

流程集成  

例子1/2:I18N流程  

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

流程集成 –  Portal  

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

议程  

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

环境集成  

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

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

开发调试环境  

Visual  Studio  

Eclipse  /  NetBeans  

Notepad,  Eclipse,  NetBeans  

…  …  

运行环境  

Standalone  Applica;on  /  Windows  IIS  

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

Apache  +  PHP  Extension  

…  …  

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

开发调试环境 +  运行环境  

业务应用程序  

运行环境  

Services  Basis  

开发调试环境  

SAP  NetWeaver  Architecture    

环境集成  

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

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

用户断点,Session断点  

条件断点 – 基于静态对象  

条件断点 – 基于动态对象  

断点跳跃-­‐1/2  

断点跳跃-­‐2/2  

断点回退-­‐1/2  

断点回退-­‐2/2  

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

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

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

议程  

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

技术 vs.  业务  

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

业务部门   IT 部门  

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

技术 vs.  业务  

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

 

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

技术 vs.  业务  

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

 

中国制造 vs.  中国创造  

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

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

n 专栏�

n 在线教程�

n 中文专家博文分享�

n 英文专家博文分享�

n 维基百科�

n 中文论坛�

* PPT由SDN提供

Thank  you!  

Amos  Shi  

SAP  Labs  China  1001  Chenhui  Road  201203  Shanghai  

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

Amos.Shi@sap.com    www.sap.com  

top related