25 excellent enterprise Java developers who should know
25 (ZT), unknown, unknown, excellent enterprise Java developers, translation
Original address: http://jroller.com/page/j2jblog/20040712#WHAT_SHOLD_A_GOOD_ENTERPRISE
Everyone's Java journey is different, depending on their knowledge background. From the initial graffiti program, they will face a long and difficult process. This shift is much easier for those who have experienced enterprise-level development experience with other technologies, because their existing knowledge will lead the learning curve.
First, let me explain what I called "Enterprise Developer". "Enterprise" is a very meaningful term, which has different people. The easiest understanding of it is to explain what a business-level application is doing. Some properties listed below are general, but they are sufficient to convey what I mean. I believe that a system that satisfies any three conditions can be becomes "enterprise".
It serves many users under different rules.
It is horizontal scalable
It provides 24/7
service
It is uncomfortable
It has a n with one running on different physics machines
Layer system
It has a distributed structure
It provides an interface for different systems, and it is more suitable for open standards.
It has a good architecture and uses the most advanced technology.
Now we may have had a relatively clear understanding of enterprise development. Let us list something that becomes an enterprise Java developer. However, pay attention, some entries listed below are not fully directed for Java.
You need to master object-oriented analysis and design (OOA / OOD
), Involving modes (GOF, J2EEDP
) And integrated models. You should know very much UML
, Especially Class, Object, Interaction
And State Diagrams.
You need to learn Java
Language Basic Knowledge and its core class library (Collections, Serialization, Streams, Networking, Multithreading, Reflection, Event, Handling, NIO, Localization,
And other).
You should learn JVM
, Class Loaders,
And the basic working mechanism of garbage collection. You should have the ability to refine a class file and understand some basic assembly instructions.
If you want to write a client program, you need to learn the web.
Small application (Applet
), As well as the Swing of the desktop program
, AWT
SWT
. You should also be to the UI
Component's JavaBean
Component mode has a solution. Javabeans
Also applied in JSP
The business logic is separated from the performance layer.
You need to learn JDBC API
And use at least one Persistence / ORM
Software, such as Hibernate, JDO, Cocobase, Toplink
Or ibatis
. You should also understand the meaning of impedance of object relationships, and how it affects the interaction of business objects and relational databases, and its operational results.
You need to learn Java
Sandbox Safety Model (Class Loaders, Byte Code Verification, Managers, Policy and Permissions, Code Signing, Digital Signatures, Cryptography, Certification, Kerberos,
And other) there are different safety /
Certification API
For example, Java Authentication and Authorization Service, JAVA Cryptography Extension, JSSE (Java Secure Socket Extension), and JGSS (Java General Security Service).
You need to learn Servlets, JSP,
And optional JSTL
(Standard Tag Libraries)
).
You need to be familiar with the mainstream web frame, such as JSF, Struts, Tapestry, Cocoon, Webwork,
And the following, such as MVC / Model2.
You need to learn how to use and manage the Web
Server, such as Tomcat
And know how to expand and maintain web on it
program.
You need to learn distributed objects and remote APIs
, For example RMI
And RMI / IIOP
.
You need to learn the least one XML API
For example, JAXP (Java Api for XML Processing), Java for XML Document Object Model, DOM4J,
Or JAXR (Java API for XML registries).
You should learn how to use Java API
Build a Web Service
. For example, JAX-RPC (Java API for XML / RPC), SAAJ (SAAJ (Java Architecture for XML Binding, JAXM (Java Api for XML Messaging, JAXR (Java Api for XML Registries),
Or JWSDP (Java Web Services Developer PACK)
.
You need to learn a lightweight application framework, such as Spring, PicoContainer, Avalon,
And their IOC / DI
Style (Setter, Constructor, Interface Injection)
.
You need to be familiar with different J2EE
Technology, such as Java Naming and Directory Interface, JMS (Java Message Service), JTA / JTS (Java Transaction API / Java Transaction Service), JvX (Java Management Extensions),
And JavaMail.
You need to learn enterprise Java Beans
(EJB
) And their different components: Stateless / Stateful Session Beans, Entity Beans
Contains bean-managed personistence [bmp]
Or Container-Managed Persistence [CMP]
And its EJB-QL),
Or Message-Driven Beans (MDB).
You need to learn how to manage and configure a J2EE
Application server, such as WebLogic
And use its additional services, such as clusters,
Connect pool and distributed processing support. You also need to know how to package and configure applications above and to monitor, adjust its performance.
You need to familiarize yourself with aspects of programming and properties (these two are easily abbreviated as AOP)
), And their mainstream Java
Specifications and execution. Aspectj
AspectWerkz
.
You need to be familiar with different useful APIs
Framework
Have. For example, log4j (Logging / Tracing), Quartz (Scheduling), JGroups, JCache (Full-text Search), Jakarta Commons, and more.
If you want to dock or positive and old systems or local platforms, you need to learn the JNI (Java Native Interface and JCA (Java Connector Architecture).
You need to be familiar with Jini
Technology and distributed systems associated with it.
You need Java Community Process (JCP)
And his different Java Specification Requests (JSRs),
For example, Portlets (168), Jolap (69), Data Mining API (73),
and many more.
You should master a Java IDE
For example JetBrains Intellij Idea
Or Eclipse
. (Some people prefer VI
Or EMACS
To write files. Just use anything :))
Java
It is lengthy, it requires a lot of artificial code (such as EJB
), So you need to be familiar with code generation tools, such as xdoclet
.
You need to be familiar with a unit test system (JNUnit)
), Learn different buildings, deploy tools (Ant, Maven
).
You need to be familiar with some in Java
Software engineering processes often used in development. For example, RUP (Rational Unified Process) and Agile Methodologies.