性格决定命运 气度左右格局 拼搏方能取胜 谦虚才会进步
一个优秀企业级JAVA开发员应知道的25条 (zt)无名小虾译
上一篇 / 下一篇 2008-01-10 18:08:30 / 个人分类:做着
原文地址:http://jroller.com/page/J2JBlog/20040712#what_should_a_good_enterprise
每个人的JAVA旅程都是不同的,这取决于他们的知识背景。从最初的涂鸦程序开始,他们都将面对一个漫长、艰难的过程。对于那些已经有利用其他技术进行企业级开发经验的人来说,这种转变是轻松得多的,因为他们的已有知识将学习曲线平展化了。
:v/O\5DflTod0
首先,请让我解释一下我所谓的“企业级开发员”是什么。“企业”是一个有很多意思的术语,对不同的人群,它有不同的意义。最简单的理解它的途径是来解释一下一个企业级应用程序是干什么的。下面列出的一些属性是有一点泛泛的,但是它们足够用来传达我的意思。我相信一个满足其中的任意三个条件的系统都可以被成为是“企业级”的。
- 它在不同的规则条件下为很多用户服务。
- 它是横向可缩放的
- 它能提供24/7服务
- 它是可容错的
- 它拥有一个在不同的物理机器上运行的N层体系
- 它拥有一个分布式结构
- 它为不同的系统提供接口,而且更适宜使用开放标准
- 它有一个很好的体系结构,并且利用最先进的技术
现在我们或许已经对企业级开发有了一个比较清晰的认识。下面让我们列出一个成为企业级JAVA开发员应该知道的东西。但是要注意,下面所列的某些条目并不完全针对JAVA。
- 你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及state diagrams.
- 你应该了解JVM,class loaders,以及垃圾回收的基本工作机制。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
- 如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),以及桌面程序的SWING,AWT,SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
- 你需要学习JDBC API并且会使用至少一种persistence/ORM构架,例如Hibernate, JDO, CocoBase, TopLink或者iBatis。你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果。
- 你需要学习JAVA的沙盒安全模式(class loaders, byte code verification, managers, policy and permissions, code signing, digital signatures, cryptography, certification, Kerberos,以及其他)还有不同的安全/认证API,例如JAAS( Java Authentication and Authorization Service), JCE (Java Cryptography Extension), JSSE (Java Secure Socket Extension),以及JGSS (Java General Security Service).
- 你需要学习Servlets, JSP,以及可选的JSTL(Standard Tag Libraries)。
- 你需要熟悉主流的网页框架,例如JSF, Struts, Tapestry, Cocoon, WebWork,以及他们下面的涉及模式,如MVC/MODEL2.
- 你需要学习如何使用及管理WEB服务器,例如TOMCAT,并且知道如何在其基础上扩展和维护WEB程序。
- 你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。
- 你需要学习最少一种的XML API,例如JAXP (Java API for XML Processing), JDOM (Java for XML Document Object Model), DOM4J,或JAXR (Java API for XML Registries).
- 你应该学习如何利用JAVA API和工具来构建Web Service。例如JAX-RPC (Java API for XML/RPC), SAAJ (SOAP with Attachments API for Java), JAXB (Java Architecture for XML Binding), JAXM (Java API for XML Messaging), JAXR (Java API for XML Registries),或者JWSDP (Java Web Services Developer Pack)。
- 你需要学习一门轻量级应用程序框架,例如Spring, PicoContainer, Avalon,以及它们的IoC/DI风格(setter, constructor, interface injection)。
- 你需要熟悉不同的J2EE技术,例如JNDI (Java Naming and Directory Interface), JMS (Java Message Service), JTA/JTS (Java Transaction API/Java Transaction Service), JMX (Java Management eXtensions),以及JavaMail.
- 你需要学习企业级Java Beans(EJB)以及它们的不同组件模式:Stateless/Stateful Session Beans, Entity Beans (包含Bean-Managed Persistence [BMP]或者Container-Managed Persistence [CMP]和它的EJB-QL),或者Message-Driven Beans (MDB).
- 你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。
- 你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。
- 你需要熟悉对不同有用的API和framework有。例如Log4J (logging/tracing), Quartz (scheduling), JGroups (network group communication), JCache (distributed caching), Lucene (full-text search), Jakarta Commons等等。
- 如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI (Java Native Interface) and JCA (Java Connector Architecture).
- 你需要熟悉JINI技术以及与它相关的分布式系统。
- 你需要Java Community Process(JCP)以及他的不同Java Specification Requests (JSRs),例如Portlets (168), JOLAP (69), Data Mining API (73),等等。
- 你应该熟练掌握一种JAVA IDE例如JetBrains IntelliJ IDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:))
- 你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP (Rational Unified Process) and Agile methodologies.ITPUB个人空间k@q!O^2o9e
ITPUB个人空间+qSI)EF-Z1a8i
发表于:2005.01.07 16:59
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG:
