Share some of my own experiences in company development
I don’t know if the word principle in this title is correct or not. Let me call it principle. For those of us who write code, I will actually call it a standard later, but after thinking about it, for other aspects, it may be a principle, okay, don’t get entangled and go directly to the topic.
I have been in the new company for more than a month. The day I first arrived at the company happened to be the beginning of an iteration. Until yesterday, the backend version had been synchronized to the public network. The APP was slightly delayed because it needed to be reviewed, but the internal test It is also in full swing. I have just changed to another environment, and the development model, code specifications, code submission mode, etc. in the new environment are all new. The most profound thing about me is naturally the method of code submission. I am used to the previous code review method. After coming here, there is no such mandatory mechanism, so I indulge a little bit. Because of this, I relaxed myself.
The price of laxity is a bit tragic. It was not until yesterday, the eve of the version's launch, that I truly understood that many things require principles, rules, and standards. Without rules, there is no circle. Without standards, the code cannot be called good. I develop products for Android, so naturally I can’t produce a good APP. Let me talk about regulations first from my perspective. From the perspective of programming standards, especially Java programming standards, null pointers are one of the most common problems. If a field is added to the background, but the APP version wants to connect to the old background first and compare the functions before and after, this has not been done at this time. Entering the parameters to judge, you can imagine what the result will be, the APP crashes. If the judgment is made, then OK, at least from the user experience point of view, the APP does not have fatal problems. However, entering parameter judgment is only one step. Without judging null, it can also prevent it from crashing. This is a trick that can be found on the Internet, and it can only use constants as the prerequisite for judgment. In fact, when I was writing this paragraph, the classmates who read it must have thought that such a simple thing was easy. That’s good. It means that I was stupid for this little mistake. This was also the first deep feeling I had after I got home yesterday. It’s not that you don’t know how or that you don’t understand, but that you didn’t pay attention and a small detail caused a murder.
Non-null judgment, as well as array out-of-bounds exceptions, these are problems that easily occur in both Java and C. I remember that in the previous project team, there were military regulations for Java and C. These low-level errors needed to be eliminated. A good way to avoid this is code review. Even a company as awesome as Google needs to do it, let alone us. I remember that when I first arrived at the Hangzhou company, my colleague asked me to do a review. I didn’t respond for a while. Later, I gradually became familiar with the process and listed some common mistakes as prerequisites for review. I have read a lot of chicken soup articles on the Internet, and the importance of reviews has been mentioned many times. Reading more about other people's codes is also a way to improve your capabilities. Code review used to be a must for the project team, but now because it is not enforced, I have slacked off, and there are problems with the code when the new version goes online. In fact, I can also shirk the responsibility. There was an error in the backend when the version was launched. It took three rollbacks to fix it. However, there were still parameters that were not configured, resulting in incorrect configuration and incorrect parameters obtained by the APP. Logically speaking, in a situation where the APP and the backend are strongly related, I actually confirmed it with the backend before, but the reason is irresistible, so it doesn't mean that the backend colleagues tell you that there will be no problem, you have to be 100% convinced. This is also a problem. This kind of self-judgment ability requires you to strictly abide by your own inner programming standards and principles. No matter when and where, you need to make a complete plan for the APP and ensure the user experience.
This is the first time I participated in the launch of a new company's version. The client encountered a crash caused by the input parameters not being judged to be non-null and the array length not being judged. I really felt guilty. In fact, this was the case before. Necessary operations, this time the problem was entirely caused by my not strictly following it. Fortunately, it was only pre-launched and the problem was solved internally. I don't know much about the background problems, but I know that it was rolled back several times. Fortunately, it was within control and there were no near misses. As far as I know, most of the backend problems are caused by the configuration not being synchronized and the code not being synchronized online. Suddenly I discovered a common problem. On the day when the version I encountered was launched, the development team was fully prepared. There will always be problems, big or small, either during deployment or when the APP was suddenly tested. I don’t know if you have experienced this, haha.
This is my first experience, and I know the routine. I also want to share another feeling of mine. Making products is a very serious matter. I still remember that when I was developing together with several new colleagues, because one of them was slacking off, the boss of the group said in front of everyone during the morning meeting: Our product development will no longer be like the graduation project in school. Yes, everyone needs to be product aware. Since then, I have kept this sentence in mind, but unfortunately, I have not done it well myself, especially when it comes to writing code, and I have lost the awareness of the product in my self-relaxation. To make a product, writing code is just one of the things. There are also needs analysis, needs assessment, and even flow charts, etc. I will make the most of what I have learned in the past three years to make the product better. I also used the experience of releasing a version for the first time to warn myself, don’t lose the principle of whatever you throw away, otherwise what you will always do is just an APP, not a product.
The above is the detailed content of Share some of my own experiences in company development. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to set up keyboard startup on Gigabyte's motherboard. First, if it needs to support keyboard startup, it must be a PS2 keyboard! ! The setting steps are as follows: Step 1: Press Del or F2 to enter the BIOS after booting, and go to the Advanced (Advanced) mode of the BIOS. Ordinary motherboards enter the EZ (Easy) mode of the motherboard by default. You need to press F7 to switch to the Advanced mode. ROG series motherboards enter the BIOS by default. Advanced mode (we use Simplified Chinese to demonstrate) Step 2: Select to - [Advanced] - [Advanced Power Management (APM)] Step 3: Find the option [Wake up by PS2 keyboard] Step 4: This option The default is Disabled. After pulling down, you can see three different setting options, namely press [space bar] to turn on the computer, press group

What graphics card is good for Core i73770? RTX3070 is a very powerful graphics card with excellent performance and advanced technology. Whether you're playing games, rendering graphics, or performing machine learning, the RTX3070 can handle it with ease. It uses NVIDIA's Ampere architecture, has 5888 CUDA cores and 8GB of GDDR6 memory, which can provide a smooth gaming experience and high-quality graphics effects. RTX3070 also supports ray tracing technology, which can present realistic light and shadow effects. All in all, the RTX3070 is a powerful and advanced graphics card suitable for those who pursue high performance and high quality. RTX3070 is an NVIDIA series graphics card. Powered by 2nd generation NVID

Which tablet is suitable for musicians? The 12.9-inch speaker in Huawei’s iPad is a very good product. It comes with four speakers and the sound is excellent. Moreover, it belongs to the pro series, which is slightly better than other styles. Overall, ipad pro is a very good product. The speaker of this mini4 mobile phone is small and the effect is average. It cannot be used to play music externally, you still need to rely on headphones to enjoy music. Headphones with good sound quality will have a slightly better effect, but cheap headphones worth thirty or forty yuan cannot meet the requirements. What tablet should I use for electronic piano music? If you want to buy an iPad larger than 10 inches, I recommend using two applications, namely Henle and Piascore. Provided by Henle

In the process of using the Windows 10 operating system developed by Microsoft, many users are curious and confused about the new technology called Cortana. Cortana's official name in the Chinese context is "Cortana", which is actually a built-in function of the Windows 10 system. Cortana, an artificial intelligence (AIassistant) service program. Frequently asked questions and solutions. How to open Cortana and not respond. Solution steps. Chinese solution is not supported. How to put the search box into Cortana. What software is Cortana? Answer: "Cortana" It is a cloud platform personal intelligent assistant carefully built by Microsoft. It has two usage modes: login and non-login. When you are logged in

What configurations are needed to use CAD smoothly? To use CAD software smoothly, you need to meet the following configuration requirements: Processor requirements: In order to run "Word Play Flowers" smoothly, you need to be equipped with at least one Intel Corei5 or AMD Ryzen5 or above processor. Of course, if you choose a higher-performance processor, you'll be able to get faster processing speeds and better performance. Memory is a very important component in the computer. It has a direct impact on the performance and user experience of the computer. Generally speaking, we recommend at least 8GB of memory, which can meet the needs of most daily use. However, for better performance and smoother usage experience, it is recommended to choose a memory configuration of 16GB or above. This ensures that the

What driver is good to install on rx5808g? 20.5.1 and 20.4.2WHQL refer to the version number of the software or driver. These version numbers are typically used to identify updates or fixes to software or drivers. In the computer world, WHQL stands for Windows Hardware Quality Labs, which is an institution used by Microsoft to test and verify the compliance and stability of hardware and drivers. Therefore, 20.5.1 and 20.4.2WHQL indicate that these software or drivers have passed Microsoft's testing and verification and can be safely used in the Windows operating system. AMDrx580 graphics card relatively stable drivers 20.5.1 and 20.4.2WHQL refers to the version number of the software or driver. These version numbers are passed

The C library memory allocation function void*calloc(size_tnitems,size_tsize) allocates the requested memory and returns a pointer to it. The difference between malloc and calloc is that malloc does not set the memory to zero, while calloc sets the allocated memory to zero. Memory Allocation Function Memory can be allocated in two ways as mentioned below - Once memory is allocated at compile time, it cannot be changed during execution. There will be problems of insufficient or wasted memory. The solution is to create memory dynamically, that is, create memory according to the user's requirements during the execution of the program. The standard library functions for dynamic memory management are as follows: -malloc()calloc()realloc()free

As the importance of PHP in Web development continues to increase, PHP function library design has become one of the key issues in development. A good function library can not only improve development efficiency, but also ensure code quality and maintainability. Therefore, designing function libraries needs to follow some basic principles and standards. 1. A function library with good reusability should be reusable and can be used in different projects. Therefore, functions should be abstract and general and cannot be tied to a specific project or scenario. 2. Ease of use The function library should be easy to use and pass parameters
