We can make software development processes more juggling. Typically, there are at least three items in juggling, and there is no limit to the number of items that can be used. When you start learning how to play juggle, you will find a single ball when you are catching up and thrown. As the proficiency increases, you will start focusing on these balls instead of concentrating on each single ball. When you have a way of juggling, you will focus on a single ball again, while trying to keep this ball balance and continue to throw other balls. You can know the direction of the movement of these balls, and you can also put your hand in the right place to catch the ball and throw. However, what is this similar to software development?
Different roles will "play" different three items in software development: projects and program managers are playing feature, resources and time, while software developers are correct, performance and security. People always try to use more items when juggling, but as long as they have learned juggling people, even if only one ball will make the balance of all the ball in the air, it becomes more difficult. As a result, if the ball is less than three, it will not be juggling. As a software developer, if you don't consider the correctness, performance, and security of the code being written, you will not be in your work. When you have just begun to consider correctness, performance, and security, you will find that you can only concentrate on one aspect each time. When they become part of your daily work, you will find that you don't need to focus on a particular aspect, because when they have already integrated your work. Once you have mastered them, you will be able to trade off with intuition and adjust your attention accordingly. This is the same as juggling, the key is to practice.
Write high-performance code itself also exists in three items: set targets, measure, and understand the target platform. If you don't know the speed of the code must reach, how do you know that you have finished? If you don't measure and analyze the code, how do you know that you have reached the goal, or why didn't you achieve your goals? If you don't understand the target platform, how do you know what to optimize when you don't implement your goals? These principles apply almost all the high-performance code development processes, whether you use a platform as a target platform. To complete an article about writing high performance code, you must mention these three aspects.
The basic principles of writing high performance code on any platform are:
Set up performance target measurements, measure, and then measure the target hardware and software platform for applications.
Original text from a technical document from MSDN, it feels a bit meaningful, so it is extracted, self-feeling ...