Code simplicity-the science of Software Development excerpt

Source: Internet
Author: User
Chapter1 Introduction

That is the art and talent involved in programming-matching cing complexity to simplicity.

A "Bad programmer" is just somebody who fails to reduce the complexity.

So, a "good programmer" shocould do everything in his power to make what he writes as simple as possible to other programmers. A good programmer creates things that are easy to understand, so that it's really easy to shake out all the bugs.

The phrase "a computer program," in the way that most people use it, has two verydistinct definitions:

1. a sequence of instructions given to the computer

2. The actions taken by a computer as the result of being given instructions

The first definition is what programmers see when they are writing a program. the second definition is what users see when they are using a program. the programmer tells the computer, "display a pig on the screen. "That's Definition 1, some instructions. the computer pushes around a lot of atomicity that causes a pig to appear on the screen. that's Definition 2, the actions taken by the computer. both the programmer and the user here wocould say that they are working with "a computer program," but their experience of it is very different. programmers work with the words and symbols, while users see only the end result-the actions taken.

Perception: programmers are easy to fall into their inertial thinking. They need to think more from the user's perspective, so that the design is more popular. The two definitions here describe the two very different perspectives of programmers and users looking at the same program.

Chapter 2 The missing science

Every programmer working on a software project is involved in design. the lead developer is in charge of designing the overall architecture of the entire program. the Senior programmers are in charge of designing their own large areas. and the junior programmers are in charge of designing their parts of the program, even if they're as simple as one part of one file. there is even a certain amount of design involved in writing a single line of code.

A designer shoshould always be willing to listen to suggestions and feedback, because programmers are usually smart people who have good ideas. but after considering all the data, any given demo-must be made by an individual, not by a group of people.

Chapter 3 the driving forces of Software Design

Well, there is in fact a single purpose for all software: to help people.

What about software that helps animals or plants? Well, its purpose is really to help people help animals or plants.

People who cannot conceive of helping another person will write bad software-that is, their software won't help people very much.

In general, this purpose-to help people-is the most important thing to keep in mind when designing software, and defining it allows us now to create and understand a real science of software design.

The goals of a science of software design:

  • To allow us to write software that is as helpful as possible.
  • To allow our software to continue to be as helpful as possible.
  • To design systems that can be created and maintained as easily as possible by their programmers, so that they can be-and continue to be-as helpful as possible.

One thing that's important to point out about this third goal is the phrase "as easily as possible. "The idea is to make our programs easy to create and maintain, not to make them difficult or complex.

Chapter 4 the future

To be continued...

Related Article

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: 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.