This topic is relatively large, I don't want to do any comments, just talk about some experiences in my work, I will share with you, I hope that some inspirations that have entered the software or are preparing to enter this industry.
I work in a foreign company's software center. For four years, the company is European companies in the communications industry. Our work is mainly based on China's customer needs, and works in the company's products. It is all said that foreign companies are more human, especially European companies, but in terms of customer demand and intense competition with domestic local manufacturers, we still work overtime, and many times, you can't follow the company's development process, if procedures Then, it means that the project delivery period is extended, and more people needed. Many details when encoding, only to achieve demand than competitors, early delivery. Such things have been continued for three years until I participated in a special project, and this project has given me a lot from the various aspects of the project to achieve. I only say that some development process is very small, very Slight, but I think these qualities with an engineer have a big relationship.
Last year, the customer put forward a relatively new product demand. If it is implemented, it is impossible to revise in the original product. It can only be re-developed. According to common sense, such a task is to be completed at the company's headquarters, but the demand is China's clients are proposed, and the original text is written in Chinese, so it has formed a Chinese and foreign mixed development team here. From the company's headquarters, five engineers come here. We also have five people here. Project managers, technical experts are foreigners, this expert has been more than forty years old, there are two daughters. The other three are young people, all of which have graduated from authentic computer. Two years in the company have worked for two years. We are a young engineer, and the longest work is formerly for five years. Time, three computer majors, and two are self-study to go to program development. The project is very different from the beginning, these are mainly the things on project management, and they will be explained later.
According to the work background of individual people, we divide the tasks, core modules and frameworks by this expert, and the rest is done. The code is regularly integrated and then supplied to the test group to test. We all know that foreigners are more serious, and professional quality is very high, although there is no discussion, but we have a common consciousness, don't let them look, so I am very paying attention to my code quality. And repeatedly scrutinized, optimized. But we still feel the gap, especially in several integrations in the initial stage of the project. Because everyone understands the needs of our customers, it also masters technology that implements these needs. In the code of the code, we have quite quenched (challenge), mainly in a lot of details, and foreign colleagues are very straightforward, but we have a good or bad place in the code, they will face directly Point out and don't leave. This makes us start hard to accept it. It is not a bit emotion. It often curses the foreigners of these eggs in the back, but the emotions are in the emotions, and they will not be in the same way. .
So there are those details of the details? I am roughly divided into three categories.
1. The code style we also follow the coding specification when programming, but time long, often show their respective preferences in some small places, and they have shown strict compliance coding norms at all times, such as large The brackets are aligned, requiring braces to occupy a row, IF, ELSE statement must be enclosed with braces, even if there is only one expression. And when we often in IF, Else, there is only one expression, and they don't add, they don't, plus all regulatory torque. There is also the name of the variable. Everyone knows the readability of the program. We pay very attention to the naming function and some global variables, but it is more casual in the local encoded naming of the function. This is what they can't accept. For example, seeing such a statement in our code will be very angry: int Temp1, Temp2; they immediately said that Temp1, Temp2 represents what, is easily confused when reading this function. It is required to represent its meaning as much as possible even if the name of local variables. Regarding the maintenanceability, there is an example, everyone has such experience, some of the code is to change many times, regardless of the quality of the code, if it has been tested, usually change this part of the code, Everyone will not delete it directly, but this part of the code is commented, but everyone knows, but they also require the code that comments, it is necessary to add a comment note why you want to comment. I remember that there was a foreigner that I said that I got my comment. I asked me why, it was actually very simple, why and he said, why, he said to me, he does not talk about what I speak, but I want to tell me The content plus it. 2. Performance Optimization We do is the development of embedded systems. The speed is a factor that users are very concerned. It can be said, such as our system runs slowly than competitors, does not mean that we can't get orders, but if Not orders, it is obvious, and the running speed is a best reason. So we are very focused on performance optimization, such as the best algorithm, etc., but there are still some details that we have not noticed, the most common example, under many judgment conditions, our usual practice It is written according to the designed USE CASE, so sometimes there is such a situation, the most likely thing, is also the most common judgment conditions, not placed in the starting position of judgment, but in the middle, no The last situation occurs. Outsiders pay more attention, they write the most common judgments when users use, so that software is better in use.
3. The code stabilizes that I have forgotten something specific example, but their handles in memory are sometimes harsh, according to our statement, what is abnormal, they all want to come out, and they must be on the program Do handle.
The difference between the engineers determines the differences in the products they have developed. Through this project, I understand why many foreign products are better than China's products, not only software, other products, planes, cars, or one The spoon of eating, our products and foreign differences are often in these subtle places. In addition, I am more emotionally, in China, many programmers don't know what they do after you are 30 years old. And the most important thing, this is not only ideas, but the real environment is like this, and thirty has continued to make a program. It is considered to have no interest. If you have to rise to a manager, you can develop, your own career Development, their own wages can have a new jump, but it seems that there is no such phenomenon abroad. The experts mentioned above have been forty years old. They are still programming, everyone is very admired, there is a long time. worship. The frame written is very elegant. We can very easy to realize each module on this framework. The clean and beautiful level written is very strong. It feels very comfortable. The core module he wrote is very rare. There is no many years of skills that can't write like that. Of course, our Chinese employees have advantages, we are very diligent, so good, and smart. Foreigners look very heavy, work and life are very clear, do not work overtime. And we often overtime to the night, the completed module is much more surprised than they, which is very surprised. At the same time, I learned a lot of things in the process of evaluation, and the programming level was rapid, and there was basically no challenge in the final stage of the project.