"Art" of excellent programming"

Source: Internet
Author: User

A good code is a work of art? Or is the software process Declaration actually true? What are the requirements for becoming an "excellent" programmer?

Imagine you hired a plumber to change the old pipe in the basement. This guy hasn't stopped talking about the artistic beauty of his pipeline before, during, and after work.

"Look at the pipe angle. How nice it is to align with the wall? If you ask me, it is a work of art. "

This is no different from a programmer. Nothing is worse than a programmer who treats his or her own code as a work of art. This analogy borrowed a widely acclaimed article by Dan North, the founder of agile troublemaker and BDD [NOTE 1]. Dan North fiercely criticized the software process declaration, demonstrated that "programming is not art ".

Software Process Declaration

The authors of the declaration, kevlin Henney, Bob Martin, Corey haine, and Glenn vandburg, reveal the following steps that will lead to software processes:

  • It is not only runable software, but also well-designed software.
  • It not only responds to changes, but also increases value steadily.
  • Not only individuals and interactions, but also an expert community.
  • It is not only a customer collaboration, but also a productive partner.

North's problem is that the self-esteem of software developers often prevents them from becoming excellent software projects. North said that the glorious concept of "well-designed software" could not be applied to self-esteem as expected. WebService and J2EE are examples of recent projects. The Artistic interpretation of software partially leads to project failure.

Excellent Programming

You may already know this problem from small IT projects. A developer advocates the use of specific technologies for aesthetic (rather than pragmatic) reasons. From then on, the situation is getting worse.

From North's point of view, code is beautiful because it can run effectively, not because of aesthetic appeal. You should not care too much about what the code looks like, but how reliable and efficient a piece of information that the Code brings from point A to point B.

"A skilled programming team can deliver amazing business results in a very short time. A real expert-a real craftsman-will understand what is buried in, for example, the elegant simplicity of what we call enterprise software, and make it clear ." -- Dan north

However, sadly, even good programmers often forget the core function of good software-the excessive emphasis in the software process declaration is often a cause.

"Software practitioners-especially ironic software practitioners-often forget this. They fell in love with the software itself and began to regard themselves as software craftsmen ." -- Dan north

How many talents do developers need?

There is a question that has aroused the entire debate: Is software engineering an artistic form? The focus is on the struggles between enthusiastic experts who are passionate about their work and programmers who only work for salaries.

It is said that the performance and efficiency differences in the software industry are narrowing down, but there is no agreed or accepted approach as a condition definition for outstanding developers. Dan North said, "A really great programmer is better than hundreds of programmers who work for money. It can be delivered in hours or days, while a common programmer will spend weeks or months ."

"As a buyer of software solutions, don't you want to know that your system is developed by a master craftsman rather than a paid person? If you pay, you have the right to maintain some confidence. Let's figure out how to provide such software ." -- Dan north

North claims that "the beauty of architecture" does not help us distinguish between good and bad. Any programmer can call him or herself a software craftsman and talk about the "beauty" of the software architecture ". North told us that he would "Be happy to see people rewrite the software process declaration based on results-oriented and pleasing customers ."

Basement and code

Homeowners don't care what their water pipes look like, as long as they don't leak water. The same is true for software. Customers and users do not care about how it works, especially whether it looks "beautiful" internally ".

"In the same way, I want an expert electrician instead of a newbie to wiring my room, and I want an expert programmer to get involved in my business," North told us. "However, I don't want a plumber who insists on talking about the elegance and aesthetics of the pipeline system ."

"Art" of excellent programming"

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.