Blog: bugstack.cn

Precipitation, share, grow, let yourself and others can gain something! 😄

First, how, expanded?

Live anti-American group blog? Shame on you! Guys, I've never seen anyone so impudent!

Meituan blog is a very excellent and high quality official website blog in the technical circle, with excellent content in 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.

So, this is it? You still want to fight?

Yes, even if it’s such a tough tech blog, I’m going to fight it! Because the likes are the likes, the challenges are the challenges, and learning how to learn is more important than just following the whole idea from a blog post and forcing it 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, go by the light, reduce unnecessary inner anxiety, don’t be melancholy for thinking that you can’t eat fat. Take time to lay the foundation under your feet. Don’t rush. Every little thing you do now will add up in the future. When I was in school, I saw many students like to do some part-time jobs, hand out leaflets, wash dishes and be a tutor during the holidays. But in fact, FROM my own point of view, I would not support doing these things unless I really need the money. Because most students will basically be engaged in this major (computer, software engineering) after graduation, and other part-time work is not consistent with your long-term value accumulation in their own growth, and this part of the part-time work can only bring you a little social experience and temporary experience. But with long-term goals in the future, have a clear goal, 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!

You can have better than a few articles selling anxiety!

A day to learn, one understand, learn on P8P9, 30 years old code farmers and just graduated to do the same live useless! And so on selling anxiety articles, look at these content in addition to let a person fidgety can also bring what, can there be any growth? In truth, there will be no big growth, because you are too anxious, anxious like the water in the river muddy, there is no time to precipitate, you can only pick up some floating sand above.

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

Yes, you probably won't be able to stop these deep tech blogs either!

  • 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, back end, system, algorithm, testing, operation and maintenance and other technical fields.
  • 360 core security, share qihoo 360 technology, and grow together with the secure Internet. Virus protection, security monitoring, software vulnerabilities and other in-depth study of the article.
  • Ali database kernel monthly, Ali database kernel monthly very good database advanced information, the article is written by ali database kernel experts, has 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 this blog?

I have met a lot of friends and partners asked me, what kind of technology is needed to do development on the Internet, how to build a distributed system, how to carry out the sub-database sub-table, after the system online pressure test, these are under what standards how to carry out?

Here is a meituan blog as an example, to introduce the cause, process and results of the sub-database sub-table, the article is: MTDDL — Meituan comment distributed data access layer middleware

Meituan (background) : At the beginning of Q3 2016, after the launch of Meituan Take-out Order 2.0 project, the number of merchants and commodities increased rapidly. It is estimated that the capacity of commodity database and peak QPS will soon encounter great pressure. Subsequently, it will affect the query performance of online services, DB (database, hereinafter called DB) master/slave delay, difficult table change 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 volume of data, so there will be a series of technical problems to be solved. However, from the perspective of the use of database, single database and single table has been difficult to the existing business volume, usually a 64-core, 7T database server, TPS reached 10,000 is approaching the limit.

So what do we do? Is a vertical split of apps by product library only a temporary fix? What about the future? Meituan Distributed Data Layer (MTDDL), Meituan comment Distributed Data Access Layer middleware, aims to provide a universal Data access Layer service for the whole company. MySQL supports dynamic data sources, read and write separation, distributed unique primary key generator, sub-database and sub-table, dynamic configuration and other functions. It also supports monitoring of all aspects of data sources (such as connection pool and SQL) from the perspective of clients. In the future, it is considered to support multiple data sources such as NoSQL and Cache.

Sub-library sub-table is not only a middleware development is complete, but also needs a set of technical implementation to support the use of such technical components;

  • The system is split into distributed applications. RPC, MQ, distributed tasks, and configuration center need to be introduced.
  • HashMap is a data structure based on hash bucket and linked list + red-black tree. Every data storage requires hash evaluation, disturbance function, Poisson distribution and zipper addressing to calculate data index and storage logic. So what hashing algorithms do you have in mind when you’re designing the table component into meituan,Hash hash,Division and hash,Square hash,The Fibonacci hash method? What are the features of each hashing algorithm? Which one is more suitable for your component development? Does it make data more hashed and fewer collisions?The collision of HashMap is linked list to red black tree and expand the disassembly of data, so the collision of database data is serious
  • The other thing is the design of distributed unique primary key generators, 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. Meituan’s distributed ID generation system, Leaf, is actually a DB-based Ticket service. A general Ticket table is used to realize the persistence of distributed IDS. Update statements are executed to obtain a batch of tickets, which are allocated in memory. After the tickets are allocated, the DB obtains the next batch of tickets.

See this, you still dare to say you are in roll technology, build rocket? Most of the time it’s not the technology that doesn’t work, it’s just that you don’t have the ideas to use it, and you don’t have the soil to use it yourself! So I don’t know where the scattered technology modules are used, only know that the interview will be used, so to learn some dry goods, SAO years!

Three, I, have written what?

For 2 years, I have written 8 special topics, 22 categories and 245 + articles!

  • Two years ago, I could only write code, not articles
  • Two years ago, WHAT I shared with my colleagues was always confusing to others
  • Two years ago, I also suffered the disadvantage of technical defense, and had no content narrative ability
  • Two years ago, I lacked the systematic construction of knowledge, and a lot of content was fragmented

Therefore, since that unhappy day, I have summarized, accumulated and output technical content successively, systematically built my own technical stack dimension, tried to write articles and absorb readers’ feedback little by little, and gradually made the complicated technical content as easy to understand as possible. So you will see most of my articles based on actual combat, through the verification, induction and summary of all kinds of technical scenes, write into the system of technical content, not only to meet their precipitation and promotion, but also to share with fellow 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 chunks of content that every expensive Java programmer should know, including:

  • Java&Spring: to explain Java, Spring core knowledge as the basis, with mathematical logic thinking analysis of Java, Spring, Mybatis, Dubbo and other core source technology content. For example, “Java Face Book manual” is a technical book that explains the core content of Java with the entrance of the interview topic. The content of the book tries to prove to you that the code is the concrete implementation of mathematical logic. I am working on a simplified version of the Spring framework by hand to understand the core principles of Spring. In the process of handwriting, 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. All of these are very important knowledge for programmers to learn in the process of technical growth, and it will be very helpful for their personal growth if they can learn it in depth.
  • Algorithm logic and data structure: this part of the content mainly Java source code for the start, explain the mathematical knowledge, including: disturbance function, load factor, zipper addressing, open addressing, Fibonacci (Fibonacci hash method and the use of the golden section point, and so on, which is also the official “Java book manual” core content.
  • Object-oriented: “Java Design Pattern” knowledge is in The Foundation of Java, data structure, algorithm logic have 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 will be very extensible and maintainable after implementation, otherwise an ifelse will either hole itself or the next person.
  • Middleware: Probably a large part of your development will not touch middleware, and it is unlikely that someone will tell you that you can use middleware to solve real problems. Because most of the time you think that middleware is written by someone in a specific department of your company, or by a technical genius, and that it has nothing to do with you. However, in fact, code knowledge is the concrete realization of mathematical logic, and business development has the way of business development. “Spring Middleware and Development” is only about the use of some specific interfaces and classes in the Spring container, and the specific is common logic code, such as exposing services, collecting logs, monitoring systems, etc. But if you learn the core ideas of such technology early on, it can help you get a promotion, a raise, or a job change.
  • Communications topic: Netty is a very important technology, such as Dubbo, or MQ, in RPC service implementations, and many times in communication. Even small fu ge’s first interview factory is also relying on the study of Netty, brush in! So small fu Ge wrote a lot of Netty from the basic introduction to the core principle, tell you how to deal with half packet, sticky packet, how to define the message protocol, and developed a Netty-based imitation wechat chat project, these technical content you can learn to learn in my blog.
  • Bytecode programming: This is a technology that most developers, even at the age of 35, probably don’t have access to. However, you have basically used all such technologies. For example, did you buy your IDEA? How did you make it work? Have you ever used a non-invasive full link monitoring system, have you ever done anything with bytecode staking, have you ever used Cglib, which is basically a series of operations on bytecode using the ASM bytecode framework?
  • Story: In addition to technical learning, many of my peers often ask me questions about learning, growing and surviving in the workplace. So I combined my own learning and growth experience in Dachang Internet to write a lot of such content for readers. Resume writing, recruitment requirements, technical materials, code specifications, reviews and promotions, salary packages, sideline income, etc. Many of these things may help you to have a stable career!

Four, well, some gains!

Ding, a punch in the road to technology!

My first technical book relearning Java Design Patterns was published at Book Festival on April 23, 2021. It wasn’t long before I saw my book go to the top of the sales charts, saw my technical book in the library, was bought and taken out of the country by fellow fans abroad, and saw a girl buy it as a gift for her boyfriend. Also in the near future to see baidu encyclopedia and my book information, is really very happy, but not expansion!

The output is just a growth card for me as a technical person. I want to walk the road I have never walked, climb the mountain I have never climbed, and see whether the rainbow is gorgeous after the storm. And through this experience to understand the process of publishing a book; Topic selection, finalization, three review three school, application isbn, printing and binding, shipping shelves, marketing sales.

In addition, as you write more and more articles, in addition to the technical system of improvement, you will also receive support from various platforms, such as the nuggets to write a short book, get the nuggets contract author invitation! Come on, there’s always a chance you can get in!

Five, you, do not want to start?

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

From daily notes for myself to articles that are analyzed for readers, it is not easy to write. Whether it is technology, life or career, 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 nearly an article has been very time-consuming, especially to do not like to write a composition of science code farmers, and then the initial is difficult to do!

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

  • Topic selection: This is the first and very important step. You always have to spend a lot of time thinking about what you’re going to write about before you get started, whether it’s hot, practical, innovative, or whatever, because you can write different things under each column.
  • type: Should you write your own story, your own experience in your career development, or summarize the skills you learned 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 summary of the technology, such as you out of a technical accident, their second kill commodity system hung, so certainly will be summed up the corresponding technical experience.Of course, you’ll get a lot of hits if you say you got a job offer or were fired on probation, but that kind of article doesn’t have long-term value for 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 look at the grinding chirp, vaguely understand the content as an introduction, may be such content itself pit!
  • Selling point: A popular article must have the highlights of the article selling points, such as the value of technological innovation, interesting reading, sharing and transmission resonance, traffic conversion, will be the selling points of an article.In fact, every article can also be seen as a SKU, this SKU is not a few copies of your selling point decision!
  • Picture: remember all technical main article, there will be pictures! Xmind is very smooth, Visio is also very good, PPT is very beautiful, because a good picture will make the whole article filled with words more readable. At the same time, you will see some funny pictures to add interest to the article.

Six, sum up!

Harbor the world, tone dog "code". Life is warm, hidden in common often!

When I write this, I think of a song. What I eat is the rice of the pot, what I walk is the way of the world and what I carry is the flag against the wind. Just like myself, I don’t challenge Meituan technology, but take up my pursuit of technology, and resist the quality of technology!

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

If you haven’t realized by now that you should be working your way out of eight hours, how many cards can you hold until you’re 35? Good health, a loving family, adequate savings, and a plan to execute against your mortgage, fatigue at work, and expense in life.

Come on! May every one who struggles on the road do; All desires, the smooth road!

Seven, series recommendation

  • Small fu ge, a “sideline” code farmers!
  • Math, how close is it to a programmer?
  • Work 3 years, see what data can monthly salary 30K?
  • Hold the grass! You poisoned the code!
  • If you only write CRUD, you will never touch this technology