1 概述
随着软件行业日新月异的发展,使用传统的开发工具已经不能满足现有程序员的诉求,每个项目都要从零开始,代码无复用率;所有的基础功能需要一行一点的敲代码,一个预置基本功能模型,可以快速生成代码的开发平台已经成为了“码农”的迫切需要。
笔者作为“码农”中的一员也深受其害,今天与大家分享笔者对开发平台的认知以及为大家推荐几款实用的开发平台。
2 必备要素
考量一个款实用的开发平台
2.1 操作简单
实用的开发平台作为开发工具需要是操作简便如预置导航引导,以及代码编辑器,感受更直观,使开发人员通过简单直观的功能视图也可以快速配置出典型功能模型。
2.2 预置功能
提供典型的功能模型框架以及常见的预置功能,如:单表操作类、主从表操作、树及关联管理、树形分组管理、综合查询、扩展Portlet、树及表选择等;预置功能模块包括:登录认证、功能菜单管理、群组角色管理、系统用户管理、系统授权管理、系统日志管理、系统编码管理等。
2.3 快速上手
开发平台要能够快速生成工程,且有文档要能预置样例能快速上手,让学习者能够大体的认知。同时,对于开发平台类工具而言仅仅预置功能是不够也需要能够方便开发者对其框架的掌握以及学习,这不仅需要完善的学习介绍文档,对于相关源码的开放也是促进开发人员跟深层次的理解平台的原理的必要方式。
2.4 代码生成
平台支持基本模型的代码生成,通过与预置的功能模型的匹配实现通过配置的方式实现代码生成,实现高度的进行代码的复用,进而提高工作效率。
2.5 调试部署
对于开发者而言,开发仅是工作的一部分而大部分都是在完善,调整进而调试的方便性就尤为重要,开发平台支持远程调试的必要性,而调试过后的部署也成为开发者头疼的问题,所以实用的开发平台对于部署也需要支持远程增量热部署,并且部署于多个的服务器。
2.6 扩展机制
对于实用性平台工具,虽然预置了基本的功能模型,但面对客户的个性化需求,对于扩展性的要求也是极高的,需要平台机制能够快速扩展开发以满足客户的定制化需求。
2.7 开放程度
对于开发者而言一个实用的开发平台,操作简单有丰富的预置功能,能够远程调试、部署支持快速扩展固然是好的,但是想更深层次的理解平台的框架知识,对于平台的开源是最理想化的,最好底层源码直接打入源码,可以在开发过程中深入到框架中学习,但目前很少有平台能够做到此点。
3 常见工具
3.1 Eclipse
3.1.1 简介说明
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它是企业最常用的开发软件,主要用来Java语言开发并可以在此基础上开发各自的插件。
3.1.2 产品特色
开放性
开放源码,任何人都可以免费得到,并且可无限扩展的强大插件功能,其帮助文档也非常全面,并且可以免费获得。
灵活性
能接受由Java开发者自己编写的开放源代码插件,Eclipse核心很小,其它所有功能都以插件的形式附加于Eclipse核心之上。
广泛性
Eclipse是主流开发工具,做Java开发的几乎没有不知道Eclipse的。而且Eclipse相对来说占用资源较少,速度快,直接解压就可以使用 。
3.1.3 使用情况
毋庸置疑的是Eclipse是目前企业使用最广泛的java开发IDE,也因其的开放性以及支持插件内嵌呗大众一致追捧,但使用Eclipse有一个不可避免的弊端就是所有的功能代码均需要开发人员手动开发,并无代码复用率可谈,并且第三方的插件良莠不齐,可能一个不良的插件就有可能造成你整体的研发环境无法再正常使用了。
3.2 Idea
3.2.1 简介说明
IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。
3.2.2 产品特色
选取智能
智能的选取。在很多时候我们要选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA就提供基于语法的选择,在默认设置中Ctrl+w,可以实现选取范围的不断扩充 。
导航丰富
丰富的导航模式。IDEA提供了丰富的导航查看模式,例如ctrl+e显示最近打开过的文件,ctrl+n显示你希望显示的类名查找框。
代码纠错
智能代码。自动检查代码,发现与预置规范有出入的代码给出提示,若程序员同意修改自动完成修改。例如代码:String str = "Hello Intellij " + "IDEA"; IDEA将给出优化提示,若程序员同意修改IDEA将自动将代码修改为:String str = "Hello Intellij IDEA"。
3.2.3 使用情况
IDEA是JetBrains公司的产品,其划分为商业版以及社区版,虽然其功能较为完善但在使用过程中也不乏反馈不足之声,比如:插件开发匮乏,目前官方公布的插件不足400个,并且许多插件实质性的东西并没有; 在同一页面中只支持单工程,这为开发带来一定的不便;资源消耗比较大,建个大中型的J2EE项目,启动后基本要200M以上的内存支持,包括安装软件在内,差不多要500M的硬盘空间支持。
3.3 NetBeans
3.3.1 简介说明
NetBeans 由Sun公司(2009年被甲骨文收购)在2000年创立,它是开放源代码以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。
3.3.2 产品特色
全面性
NetBeans是开源软件开发集成环境,是一个开放框架,可扩展的开发平台,可以用于Java、C/C++,PHP等语言的开发,本身是一个开发平台,可以通过扩展插件来扩展功能。
兼容性
由于 NetBeans Platform 基于标准和可重用的组件,因此基于它的 Java 应用程序将可以在支持 Java 2 Standard Edition 的任何平台(包括 Windows、Linux、Mac OS-X、Solaris、HPUX、OpenVMS、OS/2 和其他平台)上工作。
操作性
NetBeans有联机帮助、IDE使用指南、快速学习指南、支持和文档,另外还具有Javadoc文档索引搜索功能,在线文档也提供了中文版 。
3.3.3 使用情况
NetBeans 由于采用了纯Java开发并以Swing库编写GUI,因此界面色调偏暗,使用起来跟本机程序感觉不同,虽然支持插件功能,但与其匹配的插件较于难求可操作性较低。
3.4 JDeveloper
3.4.1 简介说明
Oracle JDeveloper 是一个免费的非开源的集成开发环境,通过支持完整的开发生命周期简化了基于 Java的 SOA应用程序和用户界面的开发,并且支持apache SOAP以及9IAS,可扩充的环境。
3.4.2 产品特色
模型化
具有UML建模语言功能,可以将业务对象及e-business应用模型化,集成了J2EE和XML的开发环境,允许开发者快速开发可以通过WEB。
调试快
配备有高速JAVA调试器(debuger),内置profiling工具,提高代码质量的工具CodeCoach等。
适配性
支持简单对象访问协议SOAP(simple object access protocol),统一描述,发现和集成协议UDDI,WEB服务描述语言WSDL等WEB服务标准。
3.4.3 使用情况
JDeveloper是ORACLE WEB服务的延伸,能够与以前的oracle服务器软件以及其他厂商支持J2EE的应用服务器产品相兼容但对于初学者来说,较复杂,也比较难。
3.5 AEAI DP
3.5.1 简介说明
AEAI DP应用开发平台包括三部分,第一部分是一站式的Java Web框架,在数通畅联软件家族中命名为Hotweb,第二部分基于Eclipse插件的扩展开发设计器,在数通畅联软件家族中命名为Miscdp Studio,第三部分是用于开发调试的服务器HotServer。
开发平台设计器Miscdp Studio可以开发三类Web应用,普通的Java Web 应用、集成Web应用和Web服务应用,Hotweb提供典型的功能模型框架以及常见的预置功能,典型功能模型包括:单表操作类、主从表操作等;预置功能模块包括:登录认证、功能菜单管理、群组角色管理等。
3.5.2 产品特色
开放性
AEAI DP开发平台直接在jar包中打入源码,所有源码都是开源的,方便开发人员了解内部交互机制,从而更好地扩展业务功能。现在产品已开源,目前源码在中国开源网http://www.oschina.net上托管。
易用性
支持应用热部署,封装了功能模型,开发人员可以通过功能模型配置向导快速地配制出典型的功能,内置了典型的功能模型,开发人员可以直接复用;开发平台通过向导式开发,使开发工作更便捷。
实用性
开发平台基于Java平台开发,对不同操作系统做了很好的兼容,支持mysql、oracle、sqlserver等主流数据库,能够满足不同客户的个性化需求。
扩展性
遵循国际通用的标准,框架代码编写符合规范,完善的数据库的兼容性以及默认的约束保证了可扩展性和可移植性较高。
3.5.3 使用情况
AEAI DP开发平台是一款开源、免费的应用开发平台,不同于基础开发工具,需要写大量的代码来完成各个业务模块,使用AEAI DP只需要设计好自己的数据结构,进行一些简单的配置就可以完成功能模型的快速开发,而且支持向导式开发、热部署也使得AEAI DP的开发效率更高,大大减少开发工作量,减少了企业的人员成本,使企业更好地实现资源分配。
3.6 BeX5
3.6.1 简介说明
BeX5定位是开发面向企业和政务的管理软件系统,适用于OA/HR/CRM等各类管理软件,电子政务及各行业管理软件,并且支持工作流支持、组织和权限支持、报表和图表支持、业务数据、业务逻辑和规则处理、文档服务器、协同门户等。
3.6.2 产品特色
控件开发
Bex5中使用建模语言,使用拖拽式方式可以开发。
预置功能
BeX5企业快速开发平台提供了完整支持企业信息化开发的后端支持,包括:统一门户框架、组织机构、权限管理;强大工作流服务、业务数据和规则服务、即时通讯、报表服务及文档服务等专业服务能力。
组件丰富
BeX5内置丰富的组件,包括布局组件,数据组件,网格以及树形组件,选择组件,过滤组件,对话框组件以及附件组件等。
3.6.3 使用情况
BeX5为起步下的针对企业和政务的管理软件系统平台,分为免费版以及推广版(收费)其中预置建模语言可以实现拖拽的方式进行功能开发,但对于初级技术员而言对本身的开发技能并无提高意义。
3.7 EOS Platform
3.7.1 简介说明
Primeton EOS Platform是普元下的一款SOA应用平台,基于JavaEE、Eclipse等开放的技术和开发平台,采用了先进的SOA架构和标准规范,并通过构件化、图形化、一体化的开发平台产品为客户提供了完整的覆盖SOA应用全生命周期的支撑。
3.7.2 产品特色
构件化
构件化业务模型实则是把复杂问题进行统筹和分而治之的一种业务设计模式,并且支持图形化拖拽的方式实现业务需求,降低了对开发人员的要求。
规范化
规范的管理框架将更有效地实现IT与业务可视性和管控性。并进一步通过策略的机制(Policy Framework)不断实现IT治理和业务优化。
标准化
对于底层的资源访问也做到了资源服务的标准化,并在技术上实现了标准化。从而达到了业务服务在业务层面和组织层面的标准和统一,达到了业务逻辑具体实现多样性和继承性,达到了业务应用的流程化。
3.7.3 使用情况
EOS Platform是支撑应用软件体系,并为其提供一个构件化、可视化的软件全生命周期的开发和管理平台,但是作为技术人员基本上看不到代码,通过拖动构件实现业务逻辑,但同时在修改代码也造成了极大的困难,不能直观、快速的定位问题。
4 总结分析
笔者作为一名开发人员对比相关的java开发IDE,如果开发是基础的java应用工程可以选择Eclipe/Idea/NetBeans,或者结合各自其插件以及对应框架进行开发;如果是基于Oracle集成开发场景开发则建议使用JDeveloper;如果移动端开发BeX5是一个不错的选择;如果项目涉及产品较多,工作量较大、个性化需求不多且愿意为开发平台费用买单的话EOS Platform也是不错的选择;但对于普通的开发人员而言,如果既希望可是使用开发平台进行快速开发,又想要有较高的兼容性和开发性,则AEAI DP应该是一个理想的选择。
下面我用表格更直观的展现笔者个人对以上几款IDE的对比认知:
综上所诉笔者认为AEAI DP开发平台具有更高的性价比,虽然现在籍籍无名但不失为一款实用开发工具,希望能帮助广发开发者从繁琐的工作中解脱出来 。如果大家想了解更多关于AEAI DP的详细信息欢迎访问http://www.agileai.com。