Author: Xiao Fu Ge
Blog: https://bugstack.cn
Precipitate, share, and grow, so that you and others can gain something! 😄
1. What, is it swollen?
Health Anti-Meituan Blog? Shameless, now, I have never seen such a "cheeky" person!
Meituan Blog is a very good and high-quality official website blog in the technology circle. It has excellent content of hard currency: technical architecture, algorithm application, search engine implementation, risk control strategy, Java dynamic tracking , Analyzed the full-link monitoring, hundreds of high-quality technical content with practical foundation, so that, as a developer and programmer, not only you, but also me, I very much like this kind of articles with a strong technical atmosphere. .
Now, this is it? Are you still fighting?
Yes, even for such a staunch technical blog, I have to fight it! Because you like to like, the challenge is the challenge, and the method of learning is more important than just moving it into your own mind according to the complete idea in a blog post. Why do you say this, because the essence of most technical articles is the description of the realization of mathematical logic, from the deduction of goals, conditions, behaviors and results, but it is meaningless to copy the answers according to the deduction results. There are only these ideas. Walk up and down in your brain completely and stumblingly, bumping up and down 💥. After you find the results, you will have a deeper impression.
Fast is the biggest obstacle!
Born toward the sun, walk by the light, reduce unnecessary inner anxiety, don't be melancholy thinking that you can't eat a fat man. Slowly lay the foundation under your feet, don't rush fast, every little thing you do now will come together in the future. I think of myself when I was in school. I saw that many students like to do some part-time jobs, distribute flyers, wash dishes, and be a tutor. But in my own opinion, I would not support doing this unless it is really needed. The money. Because most students will basically be engaged in the major ( computer, software engineering) after graduation, and other part-time jobs are not in line with the long-term value accumulation of your own growth, and this part of the part-time job can only bring you Have a little social experience and short-term experience. But from the perspective of long-term goals in the future, there are clear goals, not anxious, not anxious, grow slowly, slow down, slow down, and you will gain more! world is big and life is bigger.
Second, look at the content!
In addition to a few articles selling anxiety in your hand, you can have better ones!
It's useless to learn in one day, understand a text, and P8P9 after learning, 30-year-old coders still do the same jobs as they just graduated! Wait for articles that sell anxiety, what else can you bring about and growth if you read these content besides making people irritable? To be reasonable, there will be no big growth, because you are too anxious, as if the water in the river is muddy, there is no time to settle, you can only fish some floating sand on it.
The content that is truly valuable requires time. I remember there is a saying in the movie "Huo Yuanjia", can you stop me for 20 years of fisting!
Yes, you may not be able to stop these in-depth technical blogs!
- Technology , Meituan Technology Salon is hosted by the Meituan technical team. Each salon invites technical experts from Meituan and other Internet companies to share practical experience from the front line, covering front-end, back-end, system, algorithm, testing, operation and maintenance, etc. Technical field.
- 360 Core security , sharing Qihoo 360's technology, and growing together with the secure Internet. There are articles about in-depth study on virus protection, security monitoring, software vulnerabilities, etc.
- database kernel monthly report , Alibaba database kernel monthly report is very good database advanced information, most of the articles are written by Alibaba database kernel experts, with in-depth analysis in), that kind of database product is more favored by Alibaba 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 watch such blog content?
I have met many friends and partners asking me what kind of technology is needed for development on the Internet, how to build a distributed system, how to sub-databases and tables, and whether to perform stress testing after the system is online. These are all How did it proceed under what standard?
Meituan (background): At the beginning of Q3 2016, after the launch of Meituan's Takeaway Order 2.0 project, the number of merchants and products increased rapidly. It is estimated that the volume of the product library and the peak write QPS will soon encounter huge pressure. It will also affect the query performance of online services, DB (database, hereinafter referred to as DB) master-slave delay, difficulty in table changes, and other issues.
Because of the rapid development of business and the rapid increase in volume, the original system design has been difficult to meet the existing data volume, so there will be a series of technical problems that need to be resolved. But from the point of view of the use of the database, a single database and a single table is already difficult for the existing business volume. Usually a 64-core, 7T database server is approaching its limit when tps reaches 10,000.
So what to do? Will each application be split vertically according to the commodity library? This can only solve the temporary pain. What about the future? Therefore, the design of sub-database and sub-table is inevitable. Meituan Distributed Data Layer (MTDDL) came into being. Meituan Dianping's distributed data access layer middleware aims to provide a common data access layer service for the entire company. , Supports MySQL dynamic data source, read-write separation, distributed unique primary key generator, sub-database sub-table, dynamic configuration and other functions, and supports various aspects of the data source (such as connection pool, SQL, etc.) from the perspective of the client Monitoring, follow-up consideration of supporting multiple data sources such as NoSQL and Cache.
Sub-library and sub-table is not just the development of a middleware, it also requires a complete set of technical implementations to support the use of such technical components;
- The system is split into distributed applications, and RPC, MQ, distributed tasks, configuration centers, etc. need to be introduced together.
- Sub-database and sub-table modulus algorithm. I don’t know if you have read the source code of HashMap in depth. HashMap is a data structure based on hash bucket and linked list + red-black tree. Every data storage needs to be hashed and disturbed. Function, Poisson distribution and zipper addressing methods are used to calculate data index and storage logic. So when you design the sub-database and sub-table components of
, what hash algorithms will you have in your mind, 160e721116b6e2 hash,
division hash,
square hash,
Fibonacci (Fibonacci) Hashing method? What are the characteristics of each hashing algorithm? Which one is more suitable for your component development? Will it make the data more hashed and reduce collisions? What is the effect of collision? The collision of HashMap is the conversion of linked list to red-black tree and expansion and disassembly of data. Then what is the effect of serious data collision in the database
- In addition, it is about the design of the distributed unique primary key generator, because each piece of your data needs to be globally unique, so you need to generate a unique ID for each piece of data. Meituan’s distributed ID generation system, Leaf, is actually a DB-based ticket service. It implements the persistence of distributed IDs through a general ticket table, and executes update statements to obtain a batch of tickets. These are obtained Tickets will be allocated in memory, and the next batch of Tickets will be obtained from the DB after the allocation is complete.
Seeing this , do you dare to say that you are rolling technology and building rockets? In many cases, it is not that the technology is useless, it is because you have no idea to use it, and there is no soil for using such technology yourself! So I don’t know where the various scattered technical modules are used, I only know that I will use it during the interview, so let’s learn some dry stuff, Sao Nian!
3. What did I write?
for 2 years, wrote 8 topics, 22 categories, 245+ articles!
Two years ago, I could only write code, not articles
Two years ago, the sharing I made to my colleagues always made others listen to it.
Two years ago, I also suffered from a technical defense, and I didn’t have the ability to describe content.
Two years ago, I lacked knowledge to build a system, and a lot of content was fragmented
So from not very happy, I continued to summarize the precipitation and output technical content, systematically build my own technology stack dimension, try to write articles and absorb readers’ feedback little by little, and slowly compile articles with complex technical content. Write as easy to understand as possible. So 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 a systematic technical content, which not only satisfies my own precipitation and improvement, but also shares it with my colleagues for growth!
farmer’s three punches in terms of technical career growth. Therefore, the technical content I write and output is also based on data structure, algorithm logic, design mode, core technology, and system. Structure, service operation and maintenance, and summarize several aspects of its own growth to summarize content and write articles.
And these big pieces of content are also the content that every more expensive Java programmer should master, and they can include:
- Java&Spring : Based on explaining the core knowledge of Java and Spring, using mathematical and logical thinking to analyze the core source technology content of Java, Spring, Mybatis, Dubbo, etc. Among them, "Java Handbook" is a technical book that explains the core content of Java with interview questions as the entrance. The content in the book strongly proves to you that the code is the concrete realization of mathematical logic. "Hand-drawn Spring" that is being prepared through handwriting a simplified version of the Spring framework to understand the core principles of Spring. In the process of handwriting, the Spring source code will be simplified, the core logic in 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 in the process of programmers learning technology growth. If they can learn in depth, it will be very helpful to future personal growth.
- algorithm logic and data structure : This part mainly starts with the Java source code to explain the mathematical knowledge, including: disturbance function, load factor, zipper addressing, open addressing, Fibonacci hashing There is also the use of the golden section point, etc., which is also the core content of the "Java
- Object-oriented : "Java Design Patterns" is laid out on the basis of Java. After having a certain understanding of data structure and algorithm logic, we will learn and use the technology in depth. It is also a requirement. After learning the design pattern, I also read a lot of excellent code of others. When he realizes the requirement, he will split a lot of interfaces and inheritance of interfaces, implementation of isolation of duties of abstract classes, and specific business modules. The layering, the refinement of functional service components, the application of design patterns in the specific implementation process, and so on. After such a code is implemented, it will be very easy to extend and maintain, otherwise an ifelse will either pit yourself or someone.
- middleware : Maybe a large part of R&D will not touch middleware, and it is unlikely that someone will tell you that you can use middleware to solve some of the actual problems encountered. Because most of the time you will think that middleware is only written by someone in a company's specialized department, or by a technical expert, and it has nothing to do with you. But in fact, the specific realization of mathematical logic by code knowledge, business development has a business development method, "Spring Middleware and Development" is also only the use of Spring's specific interfaces and classes in the container, the specifics are still ordinary logic Code, such as exposing services, collecting logs, monitoring systems, etc. But if you can learn the core idea of such technology earlier, it will be very helpful for appreciation, salary increase, and job-hopping.
- Communication topic : In fact, Netty is a very important technology, such as Dubbo, or MQ in the implementation of RPC services, and many times the communication technology can be used. Even Xiao Fu's first interview with Dachang relied on his learning of Netty and came in! So Xiao Fu wrote a lot of Netty from basic introduction to core principles, telling you how to deal with semi-packets, sticky packets, how to define message protocols, and developed a Netty-based imitation WeChat chat project. You can find all these technical contents in My blog learns to learn.
- bytecode programming : This technology may be most researched and developed, even 35-year-olds may not necessarily be exposed to it. But you have basically used this kind of technology. For example, is your IDEA purchased? How can you make it work? Have you used some non-intrusive full-link monitoring systems, have you done something through bytecode instrumentation, then you have used Cglib, its bottom layer is through the ASM bytecode framework for bytecode A series of operations.
- Story : In addition to technical learning, many partners will often ask me about learning, growing, and how to survive in the workplace. So I combined my own learning and growth experience in Dachang Internet to write a lot of this kind of content to reader partners. Such as resume writing, recruitment requirements, technical information, code specifications, review and promotion, salary treatment, sideline income, etc. Many of these contents may help you to spend a stable career!
4. Well, some gains!
Ding, a punch in the technical road!
On April 23, 2021, in the Book Festival, my first technical book "Relearn Java Design Patterns" published. Not long after, I have experienced books rushing to the top of the sales list, seeing my technical books in the library, being bought by foreign fan partners and taking them abroad, and seeing a girl bought as a gift to his boyfriend. I also saw the information on Baidu Baike and my book soon, and I was really happy, but not inflated !
The output is just a time card for me as a technician. I want to walk the road I haven't traveled,
climb the mountain I haven't climbed, and
see if the rainbow is gorgeous after the wind and rain. And through this experience, we understand the book publishing process; topic selection, finalization, three reviews and three proofreadings, application number, printing and binding, delivery, and sales.
In addition, when you write more and more articles, in addition to the technical improvement of the system, you will also receive support from various platforms, such as writing a booklet in the Nuggets, and getting the invitation of the signing authors of the Nuggets! Come on, there is always a chance that you can go!
5. Do you want to do it?
write an article, if you still don’t know where to start!
From daily notes for myself to articles compiled for analysis for readers, it is actually not easy to write. Whether it is technology, life, or workplace, there will be certain barriers to writing. Take me as an example. Even if the writing of an article does not count the summarization of the content before writing, it does not include the copywriting, promotion, and sharing after writing. Just writing time requires 6-8
hours, which includes content creation. , PPT, xmind, visio and other tools of the drawing may also be connected with some story-like pictures. So the writing of a recent article has already taken a lot of time, especially for science coders who don't like writing, it is even more difficult at the beginning!
But in fact, with , it is difficult and threshold to do anything to do well! Based on my experience in writing articles, the writing of an article can summarize several aspects in the following artwork:
- Topic : This is the first step, and it is also a very important step. Before you start, you have to spend a lot of time thinking about what you want to write, whether it is popular, practical, innovative or what, this is the time to have no specific content, because regardless of popular, practice is under each column You can write different content.
- Type write my own story, my own experience of career development, or write a summary of the techniques learned into an article. In fact, for you in the early stage, writing technology is the best way to start, because as long as you have experienced it, there will be a summary of the technology. For example, if you have a technical accident and your seckill product system fails, then you will definitely summarize. Out of the corresponding technical experience. job license or been dismissed during the probation period, you will definitely be popular, but such articles do not have long-term value for your personal growth.
- Content : When you have decided on the topic and selected the content to be written, then you need to summarize the information of this type of content. This includes your own views on technology, as well as some of the information you learned when learning this technology. The information obtained from valuable websites, of course, also includes the source code and official documents you read. These contents are all very authoritative. However, don't use content that is boring when you look at it, or you don't understand it. Maybe such content itself has a pit!
- Selling point : An article with a hot style must have the highlight and selling point of this article, such as whether it has the value of technological innovation, is it interesting to read, is there sharing and communication resonance, is there any traffic conversion, it will all be an article Selling point. In fact, every article can also be regarded as a sku, how many copies of this sku is determined by your selling point!
- with pictures , there will be pictures with them! Xmind is very easy to play, visio also draws very well, and the ppt is even more beautiful, because a good picture will make the whole text-filled article more readable. At the same time, you will see some funny pictures to increase the interest of the article.
Six, come, sum it up!
world in mind, and the sensual dog "code". There is enthusiasm, hidden in commonplace!
When I wrote this, I thought of a song, eats rice from the pot, walks the road of the world, and carries the flag against the wind. Just like myself, is anti- Technology Blog, not to challenge Meituan's technology, but to carry my own pursuit of technology, what I resist is the quality of technology!
Any direction you like, continuous pursuit of the ultimate, may become your own most valuable wealth. Seek survival within eight hours for you, and seek development outside eight hours!
If you do not realize that you should work hard for eight hours, how many cards can you still draw before the age of 35? A healthy body, a harmonious family, sufficient savings, implemented plans, etc. are used to resist your mortgage and car loans, exhaustion in the workplace, and consumption in life.
Come on! I hope that everyone who is struggling on the road can do it; you want is what you want, and what you want is smooth!
Seven, series recommendation
- 160e721116bbb1 Brother Fu, a code farmer with a "
- Mathematics, how close is it to a programmer?
- working for 3 years, what information can I get a monthly salary of 30K?
- hold the grass, you actually poisoned the code!
- If you only write CRUD, then you will never
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。