Springside Development Combat (eight): Not the end of the end, talk about the state of the programmer

Source: Internet
Author: User
Tags abstract file upload

Springside is a good thing, for me, it's good mainly in two aspects: first, it provides a framework for agile development, eliminating my own integration of spring, Hibernate, Struts, ACTIVEMQ and so on open source components of time, but also the best practice; , it guides My learning goals, the various components that are integrated in Springside are the best in the same class of components, and if you want to be proficient with these components, you must learn them in depth.

Originally thought I will be in the Springside development actual combat series to write more articles, but wrote to now, I thought should write the ending, why? Because in the process of using Springside for project development, I increasingly feel that the project is definitely not a simple stack of various components, but programmers have to constantly have their own ideas and ideas, and can be abstracted to a height. That's why my article is increasingly deviating from the core of Springside from the first article to the eighth article. Here, I mainly want to talk about the realm of programmers. The following views are purely personal, and you are welcome to explore them.

The first level of realm: never to be able to.

So to speak, I had mastered the language of C, Visual FoxPro, HTML, CSS, and Javascript,c languages and Visual FoxPro as early as 7 years ago, and the HTML, CSS, and JavaScript were taught by the school, and I also taught myself Flash animation and Photoshop image processing. However, I did not know the application development at that time, learning these things is fun, and occasionally participate in a school-sponsored web design competition.

The first application I developed was the silver character English online, using ASP + SQL Server 2000, Time is 2004, when I just test software designer (original senior programmer), someone asked me to do the program, he said want to do an English level 46 online exam system, asked me if I can do it, I didn't hesitate to say that I could. I think I really have a talent for software design, one weeks to design a database, and then use one weeks to write a demo, and then he conquered, so he became the boss, I when the programmer, together with the development of online English test.

During this time, I feel that I am in the first level of the realm. JScript I have long been a rolling melon cooked, ASP tutorials more everywhere available. During this time, I used full JScript code to achieve user authentication and rights management, with Visual C + + wrote a COM component for data encryption and decryption, but also on the Internet to search for file upload and dynamic picture generation solutions. At the time, I felt that my development process was fulfilling and satisfying; now, I'm just a fool who invented the wheel again.

In 10 months time, I have developed this program from 1.0 version to 3.0 edition, the function has carried on a lot of upgrades. But I think the biggest upgrade is my technology, I try my best to separate the code from the Web page, do my best to reduce the duplication of the code, and even have the basic use of patterns to make the program easier to expand and maintain. Everything I've done has coincided with some of the modern web development frameworks. However, with the internal force of my time, there is no way to abstract it into a framework. My program is still full of spaghetti-style code, and when the number of online people, the Web page will be slow like a snail crawling.

The second level: from being able to do it beautifully

In 2005, I started to touch Java, with my foundation, and naturally it was soon learned the Java grammar and marched into the EE. I think the Java open source World gives me a lot of energy, in these two years, my speed is exponential. At my current level, using only JSP and servlet is enough to solve most of the requirements. However, is it all about using only JSPs and servlet?

This time, we will not only be able to complete the application of the writing, more importantly to make the application easy to maintain and facilitate expansion. At this time, not enough abstract ability is not enough. To be able to understand and apply layered architecture, know MVC, IoC, AOP, ORM, learn declarative transactions, and learn the most popular Ajax. All of this will not only make our application easy to maintain, reasonable use of various open source components can speed up the development of speed, but most importantly, they can make our application full of artistic beauty.

In the Springside community, now the most popular is the Acegi, which is also an abstraction of security and privilege functions. Originally I also want to write an article of Acegi aspect, but the document that the CAC writes is in is too perfect, too classics, I cannot surpass. We should make our application as close to Acegi as possible, because it represents the best practices in the field of security and permissions.

Third level: From programmer to architect

What can architects do? How to make applications best in terms of performance, scalability, scalability, reliability, disaster tolerance, recoverability, manageability, and so on, is the architect's responsibility, and the architect is able to grasp the entire lifecycle of software development. Since I am still just a programmer and have no energy to learn from architects, the above discussion may not be accurate. But, as a programmer, it is true that you should consider something other than coding when you go up to a realm.

For example, Cnblogs's blog program formula is relatively perfect, I personally to webmaster Dudu is also full of admiration. I also downloaded the 1.0beta2 version of Cnblogs, and I was going to use it to build a blog site of my own, but it didn't work because it did not reach my requirements in terms of performance, scalability, scalability.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.