EJB, Spring, this is not the Java world's two most famous friends, how to pull them together. Spring is, in fact, the successor of Ejb1.x, 2.x, just as COM, CORBA before EJB. Their thoughts are in the same vein, that is, enterprise-class components of the idea, can also be called ideal!
First, the non-modular domestic software industry
Enterprises in various industries always have some core business, long stay unchanged, the new period of business is basically focused on core business. For a long time, there is a great contradiction between the change of it technology and the expansion of enterprise business. When the new business development, how to ensure that the original business stable operation at the same time, the new business can get IT support and expansion? When it technology has made significant progress, how to ensure that the original business at the same time the new technology transformation? In the above two kinds of movement, how to reuse the original technical achievements? This is what every responsible system administrator, CIO, and developer are concerned about. Unfortunately, the Assembly of ideas and practice before, this contradiction is basically very difficult to untie the knot. Most of the practice is rewriting.
For example, the DOS era, many units have used a stand-alone foxbase version of the financial system, although the interface is simple but stable and practical; to the Windows era, popular VB, PB, so the system rewrite; then to the B/S era, the system again rewritten; to the recently hyped Ria, is the system going to rewrite For many of the works of a miscarriage, the answer must be yes.
A lot of the same people might say, is that right? We can continue to make money. Wrong!
Such a situation is called "low-level repetition", a term often used by Chinese people to denounce many unreasonable phenomena in the socio-economic field. It is a pity that we, as a profession of high intelligence, often do such foolish things. Every technological innovation, enterprises to spend a second money, to learn a operation, to restart the data, toss to death, but not adapt to the new technology of the production, with the elimination of the Code together with the exit of the market; programmers who can't adapt to new technology can only switch careers. To not be eliminated, we must keep up with the trend of the times, constantly focus on the new technology, in the understanding of the business spend too little time, and finally lead to our system and business is always half a beat. Because the programmers who were quick to get the business clear were mostly promoted or left.
I think this is the software industry, especially the domestic software industry chaos of the fundamental technical reasons. Because the technology has not been accumulated for a long time, we have to eat leftovers from foreign people again and again.
Then what kind of software do we need to solve these problems?
In fact, the answer has long been around us for too many years, but we do not turn a blind eye. Would you like to replace the host with a new peripheral? Add root memory, swap card, sound card to change the motherboard? Does OS have to run a few specific programs with only a few specific hardware? And everyone in the OS write the program, is not in the new version of the system can not run? The answer is basically negative.
The OS can adapt to tens of thousands of programs around the world and its development, why our applications can not adapt to even a specific unit of change and development. Why should our application system be rewritten in a new environment?
The reason is that most of our applications are too prescriptive and too highly coupled.
In order to improve the standardization and reduce the coupling degree, we must continuously design, continuously and continually reconstruct the structure. When we finally have a day to encapsulate useful and mature code into jars or DLLs, not only can we reuse, others can reuse, the code is actually qualified.
Now everyone is accustomed to using open source products, foreigners are keen to continue to make such parts (components) or technology. We Chinese, however, are passionate about assembling the parts and technologies of others (as in other technology-related industries). Many foreigners have made great components at the age of more than 10, and we Chinese have put the word "do not reinvent the wheel" in the mouth, with the result that neither the old wheels nor the ability to invent new wheels can be created. Many people have been working for more than 10 years with messy codes.
Project, not to say that things thrown into the hands of the client put enough money, pat buttocks to leave. Successful projects, to be responsible for the customer. Even if you retire, it is time to transfer the work. The work in front of the results can not be used, only to say that the previous work is not qualified.
Domestic application software industry has been taking the road of Rad, the first to eat cool, more to the back of the taste. Not to say RAD can not use, but said, a rad, destined to be formed lazy, sooner or later reduced into a coding machine. Rad lures us away from thinking, lures us away from design, and eventually makes us obsolete!