After nearly ten years of development, Java is the most popular programming language on the earth. Java gives developers a high degree of freedom to choose, and shows the charm and effectiveness of "Java everywhere". Java is everywhere in my life; walking on Mars, eBay shopping, online bank transfers, holding a health insurance card to the hospital for medical treatment, and playing JAVA games on mobile phones when bored ....
In life, you usually only know "Oh! This website was originally written in Java. "," Oh! This is the Java game of the mobile phone 」. Java technology can be divided into Java programming language (language) and Java platform (Platform ).
Java programming language refers to the syntax and vocabulary required for writing a program. For example, in learning and English, there is a set of basic single words and syntaxes. As long as you use a single word to form a sentence that conforms to the syntax, this is the basis of Java programs.
As for the Java platform, as you are familiar with, Java is divided into three major platforms: j2se, j2se, and J2EE, which are specialized in Embedded action platforms, standard platforms, and enterprise application platforms respectively, in addition to the common category Library (API), each platform also has its own specific API for development and use by programmers.
With the release of development tools, Java development technology has been reduced. It is not too difficult to write correct Java programs. However, when it comes to systematic Java software development, that is not easy.
There are three very important factors for developing large projects, which will affect the progress and quality of the entire project, namely, people, process, and technology ).
These three elements are interlocking. The success or failure of any element affects the other two elements, and each element is sufficient to affect the success or failure of a project.
How to strike a balance between the three and give full play to each element depends on the manager's experience and the quality of relevant developers. This is not a simple task, but there are good ways to do this.
Flexible Java multi-choice resource selection by Ren Jun
"Technology" should be the easiest part to grasp, because you have chosen Java. As mentioned above, many Java resources are available all over the world. Some people may think that Java is highly technical. Considering the training cost, they may decide to import a relatively simple program language, such as VB. NET, or dare not convert it to the Java platform.
In fact, what is really difficult is not the use of Java programming languages or APIs, but the concept of the entire object-oriented programming. C # also advertised that it has a similar object-oriented architecture with Java. Apart from different execution platforms and different api names, Java is essentially a twin brother and sister. Why didn't anyone complain? C # It's hard to learn?
Since Java and. Net have the same thresholds, how should we choose? The answer is: Select whoever you like. When you decide to invest in one of the camps, you may wish to think about one thing: "Do I have the space and freedom to choose on this platform ?」
Java is an open technology and platform that can be executed on various job platforms, as well as a variety of development tools, API suites and execution environments, choose from a wide range of resources including commercial, free, and open source code.
Process is related to project budget and time control
"Program" refers to a software development process or a project process. The purpose of defining a process is to control all situations. The biggest enemy of the Project is time and budget. Both are limited. It is an art to complete the project on time within a limited budget.
Fortunately, both time and budget are controllable. It doesn't mean that we can control the speed or length of time, but how to know which time point and what kind of outputs are needed, the amount of budget we have can be fulfilled. For effective control, we need a standard process. Everything can be done as long as we follow the rules.
Rational Unified Process is a commonly used language, method, and tool in most software projects. The spirit of RUP lies in iteration and incremental ).
In the progressive development process, through continuous refining, you can identify problems early and find solutions to ensure the progress of each work project. However, in terms of architecture, it is true that there is little ink in the RUP, and the advantages and disadvantages of the architecture are also the key factors that can affect the success or failure of the software system.
QoS (Quality of Service) or SLR (service level requirement). I think it is the most basic requirement of every system. It includes availability and manageability) reliability, scalability, security, and other conditions.
When planning the system architecture, these conditions should be considered simultaneously. For example, a foreign bank may easily guess the parameter setting method due to poor System Design and directly intrude into the system to steal consumer private data; in addition, a telecom operator has failed to consider the system load, leading to the flood of text messages during important holidays such as Christmas and New Year, resulting in service congestion and system crash.
In TV news, we often see similar news reports. The hidden significance behind this story is that "We didn't plan the system architecture well at the beginning", and we didn't think far enough, it is too late to detect problems after the system is developed in half or after the system is launched.
Although different program technologies have their own methods to satisfy QoS, Java's support for the above five features should be the most abundant. For example, in the Design Pattern of J2EE, almost all of them are designed to solve these problems, and then combined with the robustness of the program language itself, they are developed into an enterprise-level application system, I want to meet customers' strict QoS requirements.
In other words, once an enterprise develops a system using Java, will it be stable and meet QoS? I think the design mode has nothing to do with the programming language. It is also impossible to use the J2EE design mode as the C # implementation architecture. As long as the system can be constructed in the same safe and stable environment, all are feasible. Just like speaking Mandarin, you may not be able to write beautiful articles. Training, experience plus a few days is the most important thing.
Professional technical certification for Reference
"People" is one of the most unpredictable and controllable elements of the project. People can be divided into two parts: customers and R & D personnel. Customers are the most difficult to master. Different customers have different personalities. No one can teach you how to deal with different customers. In addition to luck, you need to rely on experience.
For the moment, we will not talk about customers. Let's first look at the R & D personnel. I think the key to meeting the two factors of technology and process is people. How can we choose the right and right technology and have professional talents? How can we effectively manage the process? How to plan the system architecture that meets the five requirements of amrss? This requires experienced managers and architects ). Of course, a certain level of R & D personnel is required to write beautiful and well-functioning program code.
The developer level is easier to be authenticated. Java has several professional certifications, such as scjp, scjd, and scwcd, which can be used to evaluate the basic skill of developers. In addition, scea and scbcd certification can evaluate the quality of the program architecture personnel. In addition to professional training, experience is also a condition for an excellent architect, and the program is also certified, such as PMP.
Maybe you will think that Java is a very popular. Why does it require a lot of files, design patterns, programs, and methodologies to write programs? For small systems, or systems without operational pressure, it is okay. If there is insufficient manpower, limited budget, and the deadline for closing the case, it is necessary to start work directly.
However, in my experience with the case, I would rather spend a long time and effort planning in detail at the initial stage of the project to save time for future development, after the system is launched, it is easier to maintain and expand. Although the work process will be hard, the benefits will also multiply.