Since I mastered the 5 core principles of software development, I can fish for at least 4 hours a day at work

As a programmer, have you ever thought about this simple question, "What is software?" You can close your eyes and let yourself think about it for a while. If you think it’s a bit abstract and it’s not easy to answer, let’s take a look at my answer. .

Software = Program + Data + Document + (Service)
Program = Data Structure + Algorithm

After reading these two intuitive formulas, is there a feeling of sudden realization, "Oh, it turns out that way."

Let's look at the four definitions of "software". Although they are boring, the concepts are in place:

  • The software is a computer instruction that can complete the predetermined function and achieve the expected performance;
  • Software is a data structure that enables programs to process appropriate information;
  • Software is a document describing the operation and use of the program;
  • Software is a logical entity, a collection of knowledgeable products, an abstraction of the physical world, and at the same time a result of human brain intelligence.

In the eyes of many self-righteous Party A, the software is cheap and can be copied at will, so they often put forward some harsh requirements, some of which make software developers feel dumbfounded: "This requirement is simple, you can go to the Internet and find one. Ready-made, just change it. It won't take long, can it be done in one month?" Every time I hear similar words, there are 10,000 horses running by in my heart.

Software development is not an easy task, you need to go through the following basic processes:

1) Software plan, determine product positioning and target users. This step requires Party A to plan and investigate.

2) Software requirements analysis: According to the needs of Party A, analyze the product functions required by Party A. This step requires the project leader (or product manager) to communicate with Party A.

3) Design according to requirements: including outline design and detailed design. This step needs to be done by the project leader (or product manager), and it must be correctly communicated to the developers.

4) Code and run. This step is for developers to do.

5) Test: Confirm the requirements of Party A, and verify the design and results. Developers need to conduct unit testing and integration testing. If there is a professional testing team, they need to test whether the overall product meets the requirements and meets the performance requirements from the perspective of Party A and the user.

6) Maintenance: to ensure that the software can run in a formal environment, and some defects (bugs) are corrected, or functions are improved, or performance is improved, and the software version is constantly iterated.

Look, the software development process is not as simple as Party A imagined. If a small partner encounters an unreasonable Party A, throw this article to him for a good look.

Since the process of software development is difficult and requires time and effort, it is necessary to follow some principles, otherwise the development cost will become very expensive and the development cycle will be delayed for a long time.

Principle 1: Don't Repeat Yourself .

The literal translation is "Don't repeat yourself", and there is another familiar version, "Don't repeat the wheel".

After you first enter the field of software development, you must pay attention to putting together some of the solutions you have written yourself, sorting it out regularly, writing some documents, and constantly refactoring to make them a Swiss army knife. If you can, open them up to serve more developers.

Once you have your own tool library, when you encounter similar needs next time, you can use it directly, saving a lot of time.

In addition, you should also be good at using mature technical solutions that the industry has already open sourced, such as the following.

GitHub and Code Cloud are two places full of treasures. If you feel that your ability is not enough to make your own wheels, then you must go to these two websites. There are many mature solutions for you for free. use.

For example, if you want a mall system, then marcozheng's mall can be directly used as a prototype. For example, if you want a personnel management system, then the vhr of a little rain in the south of the Yangtze River can be directly used as a prototype. (Although I have recommended it many times, it is not too much for a good friend to recommend one more time.)

Principle 2: Keep it simple stupid .

The famous KISS principle, "Keep it simple, stay foolish", has the same effect as Steve Jobs' famous saying "stay hungry, stay foolish".

This principle can also be reflected in the design of Apple products. The original mobile phones, such as Nokia smartphones, had many physical keys, but Apple had only one home button, instead of all other virtual keys, which completely revolutionized Nokia.

In the process of our software design, don't think too complicated, the simpler the better, and the effect will be enriched after it is formed, otherwise the development cost will become very expensive and the software will die.

Principle 3: You Ain't Gonna Need It .

Literally translated in English as "you don't need it", the rule requires programmers not to add functionality before necessary. Ron Jeffries, the co-founder of Extreme Programming, once said: "Always implement things when they are actually needed, not when they are foreseen."

The person in charge of the project (product manager) should adhere to this principle. Don’t over-disassemble the user’s needs, and add too many functions that you think should be added in the product design process, because in the use of a software, 80% Requests are spent on 20% of functions.

Many minor functions may be needed, because their existence makes the software icing on the cake, but without them, the commercial value of the software still exists. The fewer features, the shorter the development cycle, which makes it more likely to defeat competitors.

Principle 4: Done is better than perfect .

Done is better than perfect because perfect is never done。

A very simple sentence in English, can you understand it?

Don’t always think about perfecting all the functions and going online after they are perfect. You should go online as soon as the product has a certain prototype. Trial and error. According to user feedback, according to market demand, consider whether to add some other functions or optimization.

"No one is perfect, no gold is perfect", some flaws should be allowed to exist, and deliberate pursuit of perfection is not necessarily a good thing. Jobs wanted a whole screen, but when the technology was not up to date, he would leave a home button.

When we programmers develop software, we should also follow this principle. We should make the function first. As for the effect and the user experience, we should put it later. Don't always think about perfection. Perfection means that it will never be completed. There is no best, only better.

Principle 5: Choose the most suitable things .

Choose the most suitable one and don't blindly pursue fashion. Technology is changing with each passing day, and it is overwhelming. If you blindly pursue the most cutting-edge technology when developing software, you may turn the product into a guinea pig.

It's like when we are in a relationship, don't blindly pursue the unattainable. Often those who are by our side and willing to accompany us are the best.

When selecting technology, just fit it. If the target users of the product are less than 1,000 people, there is no need to engage in distributed and big data, otherwise it will be a bit of "snake swallowing elephant"; when it is really necessary to engage in distributed and big data, then upgrade completely Too late.

Finally, I hope my friends can follow these 5 principles in the process of software development. After all, they can fish for 4 hours every day at work.

After three days and nights, the first edition of "Soft Power Indispensable for Programmers" hits strongly. It is purely hand-knocked and contains 200,000 words of essence. It runs through my more than ten years of programming career, involving life and work. In all aspects, if you are a confused college student or a newcomer who just entered the job, I believe my personal experience can bring you some thinking and establish a correct outlook on life and values.

How can I get this PDF?

Link: https://pan.baidu.com/s/1o6MY84my0OD0DHnAmZT6rA Password: tx5e

Finally, I sincerely hope that this PDF can be of substantial help to you, and I will continue to improve this e-book in the future, so stay tuned.

Of course, I also ask for a like every day !

Guess you like

Origin blog.csdn.net/qing_gee/article/details/108765748