top100summit用友 池建强-构建企业级应用开发平台
TRANSCRIPT
构建企业级应⽤用开发平台 @瑞友科技IT应⽤用研究院池建强
12年11月22⽇日星期四
Agenda• 要有平台• 失败与成功• 幸福时光(ROI)• 启⽰示录• Q & A
12年11月22⽇日星期四
构建企业级应⽤用开发平台产品名称:GAP平台案例简述:
从2003年开始研发,历时8年,期间历经各种波折,包括架构、开发、协作、新技术引⼊入、业务拓展等等,经验教训数不胜数⺫⽬目前该平台承担了数百个项⺫⽬目产品的研发和实施⼯工作
未来⽅方向:企业云平台、移动终端和⽤用户体验的完美融合,为企业⽤用户打造Anytime | Anywhere | Any Device的业务环境
12年11月22⽇日星期四
案例背景:
所在软件研发中⼼心名称:瑞友科技 IT 应⽤用研究院所在研发团队(或部⻔门)规模:30+该研发团队(或部⻔门)职能定位:研究和研发
产品⺫⽬目标:
构建企业级应⽤用开发平台,解决软件开发过程问题、软件复⽤用问题,并提升开发效率。通过平台、技术和产品服务,为客户提供IT技术服务,并形成公司的核⼼心竞争⼒力。
12年11月22⽇日星期四
建筑常常作为软件架构的隐喻出现在软件研发中
再好的建筑设计都需要从⼀一砖⼀一⽡瓦开始
⽽而软件可以构建于平台之上
12年11月22⽇日星期四
⽼老板说:要有平台......
12年11月22⽇日星期四
为什么不⽤用开源平台?
12年11月22⽇日星期四
为什么不⽤用开源平台?
⽉⽊木有!
12年11月22⽇日星期四
2003年的技术⼟土壤
‣ Java,编程语⾔言类的技术新星,刚刚发布JDK1.4.2
‣ 各种即将闪亮登场的⽜牛框架和开源平台还在进⾏行最后的酝酿‣ HTML4/Javascript/Jsp/Java/RDBMS‣ MVC——Struts1
12年11月22⽇日星期四
2003年的技术⼟土壤
‣ Java,编程语⾔言类的技术新星,刚刚发布JDK1.4.2
‣ 各种即将闪亮登场的⽜牛框架和开源平台还在进⾏行最后的酝酿‣ HTML4/Javascript/Jsp/Java/RDBMS‣ MVC——Struts1
我们似乎是从黎明前的曙光中出发了
没想到那是晚霞,等待的是慢慢⻓长夜
12年11月22⽇日星期四
失败之路
12年11月22⽇日星期四
‣ 迷信软件⼯工程和架构设计‣ ⾼高级开发⼈人员(架构师)不写代码‣ 忽视最终⽤用户的诉求——给程序员写⼯工具不是闹着玩的‣ 缺乏服务意识‣ 封闭,⽽而不是开放‣ 仅有个框架是万万不⾏行的
历时8个月完成第⼀一个版本,⽆无⼈人问津
传统建筑⼏几乎是不可重构的,软件没有重构⼏几乎是不可⽤用的⼀一幢⼤大楼盖好了,⼯工程基本就结束了。⼀一个软件发布了1.0版本,我们才刚刚开始建筑设计师不需要去浇筑施⼯工,软件架构师却需要深⼊入技术细节。架构师不写代码就是个笑话
12年11月22⽇日星期四
‣ 迷信软件⼯工程和架构设计‣ ⾼高级开发⼈人员(架构师)不写代码‣ 忽视最终⽤用户的诉求——给程序员写⼯工具不是闹着玩的‣ 缺乏服务意识‣ 封闭,⽽而不是开放‣ 仅有个框架是万万不⾏行的
历时8个月完成第⼀一个版本,⽆无⼈人问津
传统建筑⼏几乎是不可重构的,软件没有重构⼏几乎是不可⽤用的⼀一幢⼤大楼盖好了,⼯工程基本就结束了。⼀一个软件发布了1.0版本,我们才刚刚开始建筑设计师不需要去浇筑施⼯工,软件架构师却需要深⼊入技术细节。架构师不写代码就是个笑话
12年11月22⽇日星期四
成功之道
12年11月22⽇日星期四
平台的定义和技术⽅方向的选择
12年11月22⽇日星期四
早期平台的定义是计算机软硬件的操作环境。
随着技术的发展,平台的含义变得丰富起来,远远超过早期定义。但有⼀一点没有改变,那就是平台是基础设施,可以通过各种⽅方式为该领域的上层建筑提供帮助。
12年11月22⽇日星期四
Microsoft Google IBM Oracle Apple Amazon Twitter Facebook Baidu Alibaba Tencent Sina
Eclipse Netbeans VS.Net BOS EOS UAP GAP
谁拥有最⼤大化的平台,谁就拥有未来
12年11月22⽇日星期四
⾃自主研发和开源技术相结合
12年11月22⽇日星期四
组件化技术
12年11月22⽇日星期四
规则引擎
Main FrameWork
组织权限
业务⽇日志
消息
任务调度
全⽂文检索
报表AJAX
Flex
⼯工作流引擎
数据字典
接⼝口服务管理
ERP业务平台
银企直联平台
电⼦子商务平台我们遇到的...
12年11月22⽇日星期四
规则引擎
Main FrameWork
组织权限
业务⽇日志
消息
任务调度
全⽂文检索
报表AJAX
Flex
⼯工作流引擎
数据字典
接⼝口服务管理
ERP业务平台
银企直联平台
电⼦子商务平台我们遇到的...
12年11月22⽇日星期四
规则引擎
Main FrameWork
组织权限
业务⽇日志
消息
任务调度
全⽂文检索
报表AJAX
Flex
⼯工作流引擎
数据字典
接⼝口服务管理
ERP业务平台
银企直联平台
电⼦子商务平台Here you are!我们遇到的...
12年11月22⽇日星期四
组织权限
⼯工作流引擎
数据字典
接⼝口服务管理
ERP业务平台银企直联平台
电⼦子商务平台
规则引擎
业务⽇日志
消息
任务调度
全⽂文检索
报表
AJAXFlex
短信预警
消息 监控
Main FrameWork
GAP-API
我们希望的...
12年11月22⽇日星期四
组件化的技术让我们更加接近成功的⼤大⻔门
12年11月22⽇日星期四
OSGi?
组件化的技术让我们更加接近成功的⼤大⻔门
12年11月22⽇日星期四
Eclipse WTP Facets
‣ 提供了优秀的扩展机制‣ 对WTP(Web Tools Platform)平台进⾏行扩展‣ 创建WTP项⺫⽬目时增加⾃自定义的组件‣ 提供组件的依赖关系和多版本管理‣ Facets允许开发⼈人员以组件集成的⽅方式来创建项⺫⽬目,像搭积⽉⽊木⼀一样把各种组件进⾏行组合并完成最终构建,是⾯面向组件开发的⼀一种实现机制
‣ Facets不提供运⾏行时组件⽣生命周期的管理
12年11月22⽇日星期四
引⼊入领域驱动设计
12年11月22⽇日星期四
分层架构12年11月22⽇日星期四
名称 职责
展现层 负责向⽤用户展现信息以及解释⽤用户命令
应⽤用层 很薄的⼀一层,⽤用来协调应⽤用的活动。它不包含业务逻辑。它不保留业务对象的状态,但它保有应⽤用任务的进度状态
领域层本层包含关于领域的信息。这是业务软件的核⼼心所在。在这⾥里保留业务对象的状态,对业务对象和它们状态的持久化被委托给了基础设施层。
基础设施层 本层作为其他层的⽀支撑库存在。它提供了层间的通信,实现对业务对象的持久化,包含对⽤用户界⾯面层的⽀支撑库等作⽤用
12年11月22⽇日星期四
领域驱动设计事实上针对是OOAD的⼀一个扩展和延伸,DDD基于⾯面向对象分析与设计技术,对技术框架进⾏行了分层规划,同时对每个类进⾏行了策略和类型的划分
12年11月22⽇日星期四
12年11月22⽇日星期四
采⽤用DDD的设计思想,业务逻辑不再集中在⼏几个⼤大型的类上,⽽而是由⼤大量相对⼩小的领域对象(类)组成,这些类具备⾃自⼰己的状态和⾏行为,每个类是相对完整的独⽴立体,并与现实领域的业务对象映射。领域模型就是由这样许多的细粒度的类组成
12年11月22⽇日星期四
开放是永恒的主题
12年11月22⽇日星期四
很多开发平台浓墨重彩宣传的特性是可视化和拖拽,有些平台干脆就叫可视化XX平台
企业应⽤用开发平台不是Vs.Net和Eclipse拖拖拽拽是没有前途滴,对于程序员来说,开放才是硬道理
Linus: Talk is cheap, show me the code
12年11月22⽇日星期四
很多开发平台浓墨重彩宣传的特性是可视化和拖拽,有些平台干脆就叫可视化XX平台
企业应⽤用开发平台不是Vs.Net和Eclipse拖拖拽拽是没有前途滴,对于程序员来说,开放才是硬道理
Linus: Talk is cheap, show me the code
12年11月22⽇日星期四
注重⽤用户的情感需求
从情感的⾓角度重新审视提供的产品和服务,才能体会⽤用户的真实感受通过什么途径满⾜足这些情感需求,哪种设计更能抓住这些情感,哪些产品特性阻碍⽤用户宣泄情感?
让程序员写有价值的代码
12年11月22⽇日星期四
注重⽤用户的情感需求
从情感的⾓角度重新审视提供的产品和服务,才能体会⽤用户的真实感受通过什么途径满⾜足这些情感需求,哪种设计更能抓住这些情感,哪些产品特性阻碍⽤用户宣泄情感?
让程序员写有价值的代码
12年11月22⽇日星期四
互联⺴⽹网因素
12年11月22⽇日星期四
你的软件是否⽀支持IE、Chrome、Safari、Firefox?你的软件是否可以在Pad的浏览器上使⽤用?有配套的移动终端吗?操作简洁吗?UI现代吗?你的企业软件好玩吗?能处理海量数据吗?能横向扩展吗?企业软件可能应该是这样......
12年11月22⽇日星期四
你的软件是否⽀支持IE、Chrome、Safari、Firefox?你的软件是否可以在Pad的浏览器上使⽤用?有配套的移动终端吗?操作简洁吗?UI现代吗?你的企业软件好玩吗?能处理海量数据吗?能横向扩展吗?企业软件可能应该是这样......
12年11月22⽇日星期四
ROI分析
12年11月22⽇日星期四
8年软件研发,累计投⼊入超过2000万承担了数百个项⺫⽬目和产品的研发与实施形成了公司的核⼼心竞争⼒力与⾦金融、保险、互联⺴⽹网领域客户形成战略技术合作伙伴关系
12年11月22⽇日星期四
启⽰示录
12年11月22⽇日星期四
• 规划产品要有⻓长远的打算• 好的技术要尽快引⼊入, 追新和求稳之间要有平衡
• 同类型技术在不⽤用应⽤用场景下的使⽤用• ⽤用户体验的平衡• 产品发展过程中⼀一定会有瓶颈,不断寻求突破和横向链接点• 技术创新推动业务发展(打造⽤用户喜爱的产品)• 慎重对待重写代码• 软件开发周期的基本规则• 关于技术⽀支持,想挣钱,就别怕脏
12年11月22⽇日星期四
更深远的⼀一步
12年11月22⽇日星期四
• 深⼊入企业应⽤用的互联⺴⽹网化
• 如何把企业软件做得有趣
• 企业私有云
• 企业移动应⽤用
• SaaS?不⼀一定,可能是混搭:License+SaaS
12年11月22⽇日星期四
Questions?
12年11月22⽇日星期四
www.top100summit.com
揭⽰示研发管理⽩白⾦金定律,分享那些激动⼈人⼼心的创新与变⾰革,使得团队获得过多源动⼒力与更⼤大的推动⼒力!
12年11月22⽇日星期四