Ali joined the technical team for three years, which used to let me continue to benefit at work?

Author: Wonder, Ali cloud Senior Development Engineer

2017 graduate school, I joined Alibaba database technology team, engaged in research and development of distributed database, now calculation has been three years time, during which I deeply involved in the two-eleven database behind PolarDB-X from design to implementation The whole process. In these three years, to me, the biggest gain from two aspects:

Grounding (1) large-scale database project. As one of the three basic database software, complexity is self-evident, but the complexity of the distributed database and to the next level, so try not many companies in this field. A graduation have the opportunity to challenge this level of difficulty, sharpening to create growth.
(2) the privilege of working with a small group of superior strength partners, can learn from them too many things.

With pictures .jpg

According distinguished colleagues around work experience and observation, I have found good work habits is an important difference between the quality of general engineer and expert engineers. Want to improve yourself, you must realize what kind of work habits will delay the work efficiency, improve project complexity, increase communication difficult, even for partners down, and then correct them. Deliberate practice that are proven effective and practical ways of working become a habit. Ali in three years, I have accumulated these work habits:

01

The most basic and most important habit: think clearly before you start. Large modules and functions, detailed design documentation is essential. Small modules and functions, before the best hands in white paint or paper to write clearly, and recorded, do not rely on coincidence programming, to understand what they are doing, and fully consider the possibilities.

02

Design, write good code orthogonality module. It is generally accepted good programming practice, but easier said than done. Engineers may map vivre, written in duplicate, complex "spaghetti code," With the expansion of the amount of code, which will undoubtedly be code maintenance and troubleshooting of disaster. Deliberate practice usually best to write good code orthogonality (beginning may take time, but to be familiar with this habit of thinking), learning the industry's best code is sophisticated way. Here simple practical tips listed four points:

1, unnecessary information is not exposed to any other module, other modules do not rely as much as possible, hiding the complexity of the

2, try to avoid a similar function to write, so that reuse becomes easier.

3, try to avoid direct use of global variables.

4, write a separate function, reduce dependencies between functions, some tips decoupling function:

(1) only call the function object itself.

(2) only call a member function parameter passing object.

(3) only call the function to create an internal function object.

(4) reduce the length function.

03

If you are not satisfied with the local code detection and early reconstruction, remodeling and more. Try not to tolerate software "junk." Before reconstruction should ensure that:

1, do not add at the same time the reconstruction of function;
2, make sure you have a good test before the reconstruction, reconstruction of the system to ensure that the impact of weight minimization;
3, take short, deliberate rhythm reconstruction.

04

Each knowledge of the system is a single, unambiguous, authoritative, to agree with all R & D personnel. Avoid the differences appreciated, contrary to write the code semantic between partners.

05

The low-level knowledge on the code, comments left senior explanation, it requires a lot of bad code comments, of course, can not do without comments. commit message should be carefully written.

06

Concurrent in time to consider the impact of the code, for concurrent design; time considering spatial efficiency and time; time considered Corner case.

07

Develop a detailed coding standard for the project, and strictly adhered to. Well as modules, files, variables and function names, meaning clear and unambiguous. Rational distribution of files and folders.

08

About bug investigation.

1, encountered bug, do not panic, that we can solve it. Learn to assess the impact of surface bug.
2, bug yours or someone else does not matter, do not complain, problems already there, fix it.
3, if you exclude a bug took a long time, thinking whether to do something (for example, increase the log, summary documents, optimized code, etc.), so that next time the investigation easier.
4, Crash early, once an exception occurs, an immediate collapse, let the problem first field exposure as soon as possible. If you think what can not happen, use assertions to ensure it does not happen, do not deceive yourself and convince yourself.
5, print containing tracking information, a standardized log format, especially the abnormal path.

09

As much as possible early test as comprehensively as possible. Let the quality to become an official demand.

1, to cover the unit test exception path and the forward path, focus on some boundary conditions, and the check result.
2, module testing, integration testing, stress testing, performance testing should be automated.
3, do not ignore depletion of resources, the recovery of test scenarios

10

About tools:

1, choose a powerful editor, learn it as far as possible, take advantage of it.
2, automated as much as possible, let the computer do those repetitive tasks, it is clear that they are better at. This not only avoids errors, and improve efficiency.
3, using the configuration file, rather than integrated in the code. Abstract into the code, the details into metadata.

11

Do a knowledge exporter, write articles and summarize, in their common platform to share, review and re-set to speed up progress. Do not be afraid exchange, do not be afraid to expose weaknesses, the more effective communication, the more influential you are.

12

Great software today, tomorrow is more important than perfect software.

13

Finally, more exercise, keep hair and neatly dressed, protect the cervical spine, protect eyesight ...


Ali cloud distributed database PolarDB-X team to recruit people it!

Team Profile:

PolarDB-X Alibaba distributed database system-wide self-study self-control. Different from the same brand-based database PolarDB shared memory architecture, PolarDB-X Share Nothing architecture is a distributed database, can support ten million and one hundred concurrent scale of PB grade mass storage, dedicated to solve the massive data storage, high concurrent throughput , large table bottlenecks and complex computational efficiency database bottlenecks.

Audience (s) :

2021 session of college graduates at home and abroad

(Graduation time for the 202,011 Month - October 2021)

Candidates ways : scanning the bottom of Alibaba recruit spring two-dimensional code

Spring recruitment .png

Or directly to the resume to [email protected]


Live notice

March 26 15: 00-16: 00 invite you to witness

The country starting cloud database SQL Server version 2019

To enhance the cost-effective and database capabilities

Year to enjoy 60% off

Point here

Reservation Watch live
SQL.jpg

Guess you like

Origin yq.aliyun.com/articles/751248