"What should technology development do most?", talk about my understanding and gains in server-side development for 5 years

6c180ca96dd3e007661432be347426f0.gif

We have launched a new annual special issue of Taobao Technology "Long-termism, often starts with some small things - the summary of engineers' growth". 7 major technical fields, welcome to communicate and exchange together.

This article is the second in this series.

The first article: Responsible for the front-end development of Taobao business for 9 years, talk about my experience

The author of this article has graduated from a bachelor’s degree in 17 years, and has been doing server development for 5 years. The question of "what should be the most important thing for technology development" often echoes in his mind.

91940a31d017cd25225b07d26dc28802.png

Brief personal experience

I am a server developer with 5 years of experience in the industry. I have experienced the hardships of starting a business before I graduated. After graduation, I experienced the silence of the traditional Internet for several rounds, experienced mature toC products that directly face users, and finally came to Ali Da Taobao technology to do mature toB merchant business. At different stages, I have different understandings of development positions. The following is my growth and harvest, and I hope it will be helpful to you.

733e1fdce7e0979d07c611566748788b.png

2015~2016: In the immature entrepreneurial team, do the only technology development

Entrepreneurship or fooling around? I opted out

This experience was my junior year experience.

I studied java at school for half a year. By chance, I was "invited" to become a member of an unknown "entrepreneurial team". I know, at that time I didn’t have the money to hire outsourced websites), including front-end and back-end development + buying domain names and renting servers.

At that time, I only learned the three tricks of the back end. Every small step took me a long time to Baidu. I relied on fragmented clues to learn new technologies, flipped through CSDN, searched github, and used everything. I was often busy from morning to night. Fortunately, the website was successfully launched and has been running stably for half a year, with a lot of gains in the process.

Of course, the reason for the disbandment was quite sudden. One afternoon, the website was suddenly attacked by "hackers" and could not be accessed. The customer called to complain, and I had to restart my poor cloud server frequently. That day, I accidentally enabled a certain advanced security policy of the cloud server, multiple visits to the same ip will be blocked for half an hour...).

After that incident, I realized that I was lacking in ability, and I also understood that they only wanted to "prostitute" me for nothing, so I immediately found an excuse to quit and quickly disbanded. Then at the end of the school recruitment, I randomly delivered to a company in Beijing, and flew over alone to learn the technology.

▐A place to harvest and grow  

To do technology development, you need to have the drive to face difficulties, and when you encounter something you don’t understand, take the initiative to find a way to solve it.

Be able to see your own shortcomings and stop losses in time.

▐A place worthy of reflection  

It is too blind to make a decision, whether it is to join the "entrepreneurial team" without inquiring clearly, or to find a company and rush to Beijing, it is too hasty and blind, which is irresponsible to oneself, and requires reflection and vigilance.

28a0c70ae564260f8d9877b2a5da0cd9.png

2017~2018: Traditional Internet companies, doing back-end development

The helplessness of the first job after graduation, self-inflicted

My first job out of college didn't last long due to blind decisions.

The main reason is that the tonality of traditional Internet companies is inconsistent with the expectations of Internet companies in my heart. The project rhythm cycle is long, the technology is not novel enough, there is an obvious gap with the outside world, and I cannot learn the cool technology in my heart.

But on the contrary, because of the slow pace, I can have enough time to read books. I used this time to slowly make up for the problem of scattered and incoherent knowledge caused by the previous fragmented learning technology.

▐A place to harvest and grow  

Truly aware of the bitter fruit of blind decision-making

36931d99b643f7a1ae6908cbe1c48724.png

2018~2020: Beijing Sina Weibo, doing toC server development

How to ensure the stability of app services with hundreds of millions of monthly users

In 2018, I went to Sina Weibo to do toC interactive business. The vision of building a high-concurrency and high-traffic system from scratch did not come true. Did everyone add bricks and tiles from the existing system architecture? That's right, how can it be possible to re-install the high-availability architecture every time there is a need? unrealistic.

From the deployment of multiple computer rooms on Weibo, multi-level downgrade of hot events, dynamic expansion and contraction, popular comment model, local cache of hot Weibo, etc., I began to learn how to ensure the stability of app services with hundreds of millions of users a month.

At this time, I have a complete impression of a mature and stable service, so it is necessary to consider comprehensively at the beginning of the design: storage capacity, call current limit, downstream dependencies, exception coverage, and downgrade preparation.

Effective storage capacity evaluation can greatly reduce cost waste; reliable call current limiting can protect the system from being overwhelmed; clear downstream can connect up and down information at any time when there is a problem; abnormal bottom-up settings can keep the system Run within expectations; downgrade preparation, any non-core path function must always consider making way for the core path function, downgrade non-core request pressure, and ensure the integrity of the most core functions.

Those who have gained and grown  

Understand the conditions that must be met for a stable service, and at the same time understand the importance of the platform. The services we build are all based on the currently formed platform. We escape the platform bonus, and the rest is ourselves. Don’t create an inflated psychology.

▐A place for reflection  

It is a pity that I have been immersed in business and have not made breakthrough technological achievements.

cb3009183b6d7891ea35dd95ec3ffd8d.png

2020~present: Ali Taobao technology, doing toB server development

Only by focusing on business can we break down technical barriers

In 2020, I will come to Ali Taobao Technology to do the business of toB merchants.

After coming to Ali, I realized for the first time how convenient the complete and mature infrastructure is, the complete monitoring system, the unattended release process, the convenience of one-click machine replacement, etc., allowing technical students to devote themselves to the business model In the development and design of , there is no need to consider additional burdens. Based on this, I also began to rethink as a server-side development. After the burden related to operation and maintenance is reduced, can the server just do a good job of coding? In the following time, I got an answer to this question after slowly communicating with my colleagues and TL.

"Facing the business squarely" is what I learned that the powerful colleagues around me are doing. From the perspective of the business, I consider problems, design solutions, and evaluate the rationality of product design. To be honest, before I came to Ali, my business awareness was very weak. Every requirement review would only consider the feasibility and stability of the technical solution. I would rarely focus on the business itself, and I would not pursue the business trend too much. Thinking, this is a completely wrong approach, and I am burying my career step by step.

To give an example of requirements, the business needs to do a function of collecting satisfaction. But technically, we can’t just consider a single point, we need to think more about the ability to expand, such as whether to support other scenarios in the follow-up business? Support horizontal expansion; if the capability is complete, can it be opened to the outside world? Benefit the public, reduce the cost of repeated coding, and improve technical influence. If only the "point" is considered at the beginning of the design, the extended "line" and the spread "surface" are not seen, and only the current function points can be seen, then when the business needs to be upgraded again, the current The architecture is easy to catch blind, and you can only be forced to patch it, or even reject the demand. This is completely unreasonable, and it is not what a qualified technician should do.

What is a good technical solution? A good technical solution can fit the business and even drive the business forward. The technical solution needs to consider the future layout and overall direction of the business from the very beginning. It is best to communicate the details together with the business products instead of waiting" Feed". A good plan comes out of communication, not behind closed doors.

When I consciously combine business and technology, the ideas of design solutions are often full of inspiration, and I bring in the perspective of business to evaluate the solution. I feel like I have a new understanding of the technology development position, and I always gain something.

▐A place to harvest and grow  

Re-recognized the relationship between business and technology, business is a ship, technology is a sail, and only by following the trend can we make rapid progress

▐A place for reflection  

Being able to think, be able to do it, and being able to do it well are different stages, and more patient investment is needed

8e0fdca30411742f00d5f9d79e1598bd.png

Summary of personal perception


Code aspect  

Code is the soul of programmers, you must pursue code, and you must say no to junk code at any time, todo is a lie, and there will be no chance of refactoring! "Mountain of Shit" will only make future generations talk about themselves repeatedly!

▐Cooperation _  

Do not set boundaries for yourself, do more things and be less lazy, do not play tricks, do one more thing is not a disadvantage, everyone can see who is paying, and recognition is accumulated little by little in normal times.

Communication  

Chat more with your boss. If you feel distanced and uncomfortable with your boss, you can also communicate more with your senior or team leader. The purpose is to learn from the experience. Someone who can be your senior or team leader is definitely superior. Learning from them can save you a lot of detours.

▐Physical aspects  

A healthy body is the umbrella for a career. If you can maintain a small amount of exercise every week, it is also excellent for your hair.

▐Summary _  

After graduating from a bachelor's degree in 17 years, I have been doing server development for 5 years. "What should be the most important thing in technology development?" This question often echoes in my mind. If you want to ask me, do I have the correct answer now? My answer is to look at what the current environment needs, and always do what the current environment needs most and the most urgent business. If this is met, then whatever you do is the correct answer.

f8ed9439c8c19653c2e1c55b95ec9db1.png

team introduction

We are the Taobao-merchant technology team, using technology and product capabilities to build infrastructure to support the continued operation of merchants, and to bring new growth to merchants through digitalization.
In terms of technology, we strive for excellence, and use the end-to-end technology platform to face the million-level QPS and escort the business explosion of merchants.
In terms of business, we have the courage to make breakthroughs, lead and support the group's strategic battles, thereby promoting the growth of the entire Taobao Tmall.
In terms of talents, we are eager for students with technical dreams to join our team and make plans for the future of Alibaba's retail system.

¤  Extended reading  ¤

3DXR Technology  |  Terminal Technology  |  Audio and Video Technology

Server Technology  |  Technical Quality  |  Data Algorithms

Guess you like

Origin blog.csdn.net/Taobaojishu/article/details/130652485