Author: Xiao Fu Ge blog:

Precipitation, share, grow, let oneself and others can harvest! 😄

One, zha, is it inflated?

Born to resist Meituan blogs? Shameless, boys, I have never seen such a "cheeky" person!

Meituan blog is a very excellent and high quality official website blog in the technology circle, full of excellent content of hard currency: Technical architecture and algorithm, a search engine implementation, talked about risk control strategy, Java and dynamic tracking, monitoring, analyzed the whole link hundreds of pieces of high technical content of the basis of the quality of practice as research background move brick yards farmers, not only you, and I, are very like this kind of strong technology atmosphere.

Well, that's it? You want to develop resistance?

Yes, even if it is such a tough tech blog, I also want to be born against it! Because like is like, challenge is challenge, and learning how to learn is more important than just trying to copy the whole idea of a blog post into your head. Why do you say so, because most of the essence of the technical articles are the implementation of mathematical logic description, from the target, condition and behavior to the result of deduction, but such as inference results copy the answer is meaningless, only these ideas in your brain and perfect walking up and down, halting the collision 💥, grope for to the results, in order to have a more profound impression.

Quick, is the biggest obstacle!

Live in the sun and follow the light to reduce unnecessary inner anxiety. Don’t be disconsolate for thinking that you can’t eat too much. Slowly lay the foundation under your feet. Don’t be in a hurry. Every little thing you do now will all come together. I remember when I was in school, I saw many students like to do some part-time jobs, distribute leaflets, wash dishes, tutor, but in fact, as far as I am concerned, I will not support to do these things, unless I really need the money. Because most students will basically be engaged in their major (computer, software engineering) after graduation, and other part-time jobs are not consistent with your long-term value accumulation in your own growth, and this part of part-time jobs can only bring you a little social experience and temporary experience. But with a long-term goal in the future, there are clear goals, not anxious, not anxious, slowly grow, slow down, slow down, you will gain more! The world is big, life is bigger.

Two, look, strong content!

In addition to the hands of a few selling anxious articles, you can have better!

A day to learn, a paper to understand, learn on the P8P9, 30 years old yard farmers and just graduated to do the same work useless! And so on selling anxiety articles, look at these content in addition to let people be agitated can also bring what, can there be any growth? Reasonable, will not have what big growth, because you are too anxious, anxious like the river water muddy, there is no time to precipitation, you can only in the above fishing some floating sand.

And those really valuable content, is the need to go through time to temper, remember “Huo Yuanjia” in the movie there is a sentence, I this fist 20 years of kung fu, you can block it!

Yes, maybe you can't stop these insightful tech blogs!

  • Meituan technology, Meituan technology salon is hosted by Meituan technology team. Each salon invites technical experts from Meituan and other Internet companies to share practical experience from the front end, background, system, algorithm, testing, operation and maintenance and other technical fields.
  • 360 core security, share the technology of Qihoo 360 company, and grow together with the secure Internet. Virus protection, security monitoring, software vulnerabilities and other aspects of the in-depth study of the article.
  • Ali database kernel monthly report, Ali database kernel monthly report very good database advanced data, the article is mostly written by Ali database kernel experts, have depth) in the analysis, that kind of database products are more favored by Ali kernel experts.
  • Jenkov Tutorials, We tend to select projects that are related to entrepreneurship, one way or another. Our projects are either an entrepreneurial project in itself, or it helps other people’s entrepreneurial projects.

Why do you need to read such blog content?

Many of my friends and partners have asked me what kind of technology is needed to develop on the Internet, how is the distributed system built, how is the library and table divided, whether the system should be pressed after it is launched, and how are these all carried out under what standards?

Here take a Meituan blog as an example, to introduce the cause, process and result of library and table separation, the article is: MTDDL – Meituan Comment on Distributed Data Access Layer Middleware

Meituan (Background) : At the beginning of Q3 2016, after Meituan Takeout 2.0 project was launched, the number of merchants and goods increased rapidly. It is estimated that the capacity of commodity warehouse and the QPS of peak value will soon encounter great pressure. Subsequently, it will also affect the query performance of online services, the delay of DB (database, hereinafter referred to as DB) master and slave, difficulties in changing tables and a series of problems.

Due to the rapid development of business and the explosion of volume, the original system design has been difficult to meet the existing data volume, so there will be a series of technical problems to be solved. However, from the point of view of the use of the database, a single database and single table is difficult to the existing business volume, usually a 64-core, 7T database server, when the TPS reaches 10,000 has approached the limit.

So what to do? Splitting apps vertically into product repositories is only a pain in the short run, but in the long run? Therefore, the design of database and table is inevitable, which arises at the right moment is Meituan’s MTDDL (Meituan Distributed Data Layer), and Meituan’s Distributed Data access Layer middleware, which aims to provide a common Data access Layer service for the whole company. Support MySQL dynamic data source, read/write separation, distributed unique primary key generator, library and table separation, dynamic configuration and other functions, and support monitoring of all aspects of data sources (such as connection pool, SQL, etc.) from the perspective of the client, and consider supporting NoSQL, Cache and other various data sources in the future.

The library and table division is not only the development of a middleware, but also needs a set of technical implementation to support the use of such technical components;

  • The system is split into distributed applications, and RPC, MQ, distributed task, configuration center and so on need to be introduced together.
  • HashMap is a data structure based on hash bucket and linked list + red-black tree. Each data storage needs to go through hash evaluation, perturbation function, Poisson distribution and zipper addressing to calculate data index and storage logic. So what are the hashing algorithms that you have in mind when you’re designing the library and table components into Meituan,Hash hash,Division hashing,Square hash,The Fibonacci hash? What are the characteristics of each hashing algorithm, which one is best for your component development, and will it make data hashed more and reduce collisions?What is the effect of collision? HashMap collision is the conversion of linked list to red-black tree and the expansion and disaggregation of data. What is the effect of severe collision of data in database
  • The other thing about the distributed unique primary key generator is, because every piece of data you have, you need to be globally unique, so you need to generate a unique ID for every piece of data. The distributed ID generation system of Meituan, LEAF, is actually a kind of Ticket service based on DB. It implements distributed ID persistence through a common Ticket table, executes UPDATE update statement to obtain a batch of tickets, and these obtained tickets will be allocated in memory. After the allocation is completed, the next batch of tickets is retrieved from DB.

See this, you still dare to say you are in roll technology, build rocket? Most of the time it is not that the technology is useless, it is that you do not have the idea to use it, and also do not have a soil to use such technology yourself! So do not know where each scattered technology modules are used, only know that the interview will be used, so come to learn some dry goods, SAO years!

Three, I, have written what?

Resistant for 2 years, wrote 8 topics, 22 categories, 245 + articles!

  • Two years ago, I could only write code, not articles
  • Two years ago, my sharing with a colleague was largely lost on others
  • Two years ago, I also suffered the loss of technical defense, no content narrative ability
  • Two years ago, I lacked the systematic construction of knowledge, and a lot of content was fragmented

So from that unhappy day, I successively summarized precipitation and output technical content, systematically constructed the dimension of my own technology stack, tried to write articles and absorb readers’ feedback bit by bit, and slowly wrote articles with complex technical content as easy to understand as possible. Therefore, you will see that most of my articles are based on actual combat. Through the verification, induction and summary of various technical scenarios, I write systematic technical content, which not only satisfies my own precipitation and improvement, but also shares with my fellow students for growth!

I give myself on the professional growth of positioning of technology is a can withstand the farmer three boxing architect, so I am writing and output on the technical content of in logic, data structure and algorithm design patterns, core technology, system architecture, service operations, and summarizes its growth from several aspects to summarize content to write the article.

These are the big blocks of content that every expensive Java programmer should know, including:

  • Java&Spring: Based on the explanation of the core knowledge of Java and Spring, analyze the core source technology content of Java, Spring, Mybatis, Dubbo and so on with mathematical logic thinking. Among them, such as “JAVA face by manual” is a technical book explaining the core content of JAVA to the interview title entrance, the content of the book to confirm to you that the code is the specific implementation of mathematical logic. Through the handwritten simplified version of the Spring framework, I understand the core principles of Spring. In the process of writing, the Spring source code will be simplified, the core logic of the overall framework will be extracted, the code implementation process will be simplified, and the core functions will be retained, such as IOC, AOP, Bean life cycle, context, scope, resource processing and other content implementation. These are very important knowledge for programmers to learn in the process of technical growth. If they can learn it deeply, it will be of great help to their personal growth in the future.
  • Algorithmic Logic and Data Structures: This section starts with the Java source code and explains the mathematics, including perturbation functions, load factors, zipper addressing, open addressing, Fibonacci hashing, and the use of golden section points. This is the core of the Java Faces Manual.
  • Object Oriented: “Java Design Patterns” knowledge is in the foundation of Java, data structure, algorithm logic has a certain understanding, in the in-depth study and use of technology. Is also a demand after learning design patterns, also read a lot of people good code, so when he implementation requirements, will split out a lot of interfaces and inheritance, the responsibility and isolation of the abstract class implementation, specific business module stratified, functional service component refinement, the specific implementation process of the use of design patterns and so on. Such code implementation will be very easy to extend and maintainable features, otherwise a piece of Ifelse is either pit itself or pit the next person.
  • Middleware: A large part of your development probably doesn’t touch middleware, and it’s unlikely that someone will tell you that you can use middleware to solve some of the problems you actually encounter. Because most of the time you will think that middleware is just written by someone in a specialized department of your company, or by a tech guru, and it’s none of your business. However, in fact, the specific realization of mathematical logic based on code knowledge and business development has the way of business development. Spring Middleware and Development is just the use of some specific interfaces and classes in Spring’s container, and the specific logic codes are common, such as service exposure, log collection, monitoring system, etc. But if you learn the basics early on, it can be very helpful in getting a promotion, getting a raise, or changing jobs.
  • Communications Topics: Netty is a very important technology, such as Dubbo in RPC service implementations, or MQ, and many other technologies used in communication. Even Little Fu’s first interview with Dachang is also relying on the learning of Netty, brush in! So little Fuge wrote a lot of Netty from the basic introduction to the core principle, telling you how to deal with half packet, sticky packet, how to define message protocol, and developed a Netty based on the WeChat chat project, these technical content you can learn in my blog.
  • Bytecode programming: This is a technology that most developers, even 35 years old, may not have access to. But you have basically used all such technologies. For example, did you buy your IDEA? How did you make it work? You’ve used some non-intrusive full-link monitoring systems, have you done anything with bytecode pins, have you used CGLIB, which is a series of operations on the bytecode using the ASM bytecode framework.
  • Story: In addition to technical learning, a lot of people ask me about learning, growing, and surviving in the workplace. So I combined my own learning and growing experience in Dachang Internet to write a lot of such content for readers. Such as resume preparation, recruitment requirements, technical information, code specifications, review and promotion, salary, sideline income and so on. Many of these things will probably help you settle down at work!

Four, well, some gains!

Ding, a clocking in on the technical road!

On April 23, 2021, at Book Festival, my first technical book, Relearning Java Design Patterns, was published. Not long after, I felt my books hit the top of the bestseller list, saw my technical books in the library, had them bought by a fellow foreign fan and taken abroad, and saw a girl buy them as a gift for her boyfriend. Also in the near future to see baidu encyclopedia and my book information, is really quite happy, but not expansion!

The output is just a time for me to grow up as a technical person. I want to walk the road I have never traveled, climb the mountains I have never climbed, and see whether the rainbow is gorgeous after the wind and rain. And through this experience to understand the process of publishing a book; Topic selection, finalization, third examination, three schools, application for ISBN, printing and binding, delivery, shelves, marketing and sales.

In addition, when you write more and more articles, in addition to the technical system, you will also get support from various platforms, such as writing a booklet in the Nuggets, get the Nuggets contract author invitation! Come on, there’s always a chance you can get on!

Five, you, want to start?

Write an article, if you don't know where to start!

From daily notes for myself to articles organized and analyzed for readers, it is actually not easy to write. No matter it is technology, life or workplace, there will be a certain threshold for writing. In my personal, for example, to write an article, even if they don’t calculate before writing content generalization, also does not include the written text, promotion, share, just write the time also need six to eight hours, this includes the creation of content, all kinds of tools such as PPT, xmind, visio drawing, series may also be in some images of the story. So the preparation of a recent article has been very time-consuming, especially for the science code farmers who do not like to write a composition, and then the initial stage is more difficult to get!

But in fact, do anything want to do well, is difficult, there is a threshold! Based on my experience in writing articles, I can summarize the following aspects in the compilation of an article:

  • Topic: this is the first step, but also a very important step. Before you start, you have to spend a lot of time to figure out what you want to write, whether it is hot, practical, innovative or what, and this is not the time to specify the content, because no matter the hot, practical under each column can write different content.
  • type: Should you write your own story, your own experience developing your career, or write about the skills you’ve learned and summarize them in an article? In fact, early for you, writing technology is the best start, because as long as you have experienced, there will be a technical summary, such as you have a technical accident, their own seckill product system failed, then it is sure to summarize the corresponding technical experience.Of course, if you blabbergingly jump ship and get a job offer, or get fired on probation, it will be popular, but such articles have no long-term value to your personal growth.
  • Content: when you determine the topic selection, chosen to write the content, you need to collect such data are summarized, including your own ideas about the technology, including when you are learning the technology points from some valuable website to obtain information, including your reading of the source, the official document, the content is very authoritative. However, do not take some looking at the grinding jaw, deja vu as the introduction of content, such content itself may have pits!
  • Selling point: A hot style article must have the highlights of the article selling points, such as the value of technological innovation, reading interesting, sharing communication resonance, flow conversion, will be a selling point of an article.In fact, each article can also be seen as a SKU, the SKU is not a few of your selling points to decide!
  • Illustration: remember all the technical number of the main article, there will be a picture! Xmind plays very well, Visio also draws very well, and PPT is even more beautiful, because a good picture will make the whole article full of words more readable. At the same time, you will also see some more funny pictures to make the article more interesting.

Six, to sum up!

Heart the world, color dog "code". Life is warm, hidden in the common often!

When I write this, I think of a song. What I eat is the rice in the pot, what I walk is the way in the world, what I carry is the flag against the wind. Just like myself, born anti Meituan technology blog, is not to challenge Meituan technology, but to carry their pursuit of technology, anti is the quality of technology!

Any one of their favorite direction, continuous pursuit of the ultimate, may become your own most valuable wealth. For your eight hours to seek survival, eight hours to seek development!

If you don’t realize by now that you need to work for eight hours, how many cards do you have left in your hand before you’re 35? A healthy body, a harmonious family, sufficient savings, a plan to carry out, etc. to resist your mortgage and car payments, fatigue in the workplace, the expense of life.

Come on! May every man who struggles on the road be able to; All the desires are fulfilled, the road to smooth!

Seven, series of recommendations

  • Brother Fu, a “sideline” code farmers!
  • Math, how close is it to a programmer?
  • Work 3 years, see what data can monthly salary 30K?
  • Grass, you poison the code!
  • If you just write CRUD, you’ll never touch this technology