Reader feedback: this year’s wave of layoffs is a bit fierce, but in our company last year there were some bad signs, in order not to let oneself so pull hips 🌶, but all kinds of potholes. Following the content of Xiao Fu ge’s blog, I have completed a lot of my knowledge, including: middleware, bytecode, DDD project, design pattern and interview manual, etc., finally I have a little competitiveness. Just in time for this wave of layoffs! There may also be luck, keep trying!
Technology is a long-term accumulation of precipitation, not overnight, not to become a pile of useless data collectors. Only by following the core code master who is still in the first line of code can he absorb practical experience and grow rapidly. – Look at the materials written by the architect of DACHang. It smells good!
- Data includes: Java face Book manual, relearning Java design Pattern (PDF), Hand Spring, bytecode programming, from college to graduation information collection, Lottery distributed second win actual project
Got all the goodies out of Fogo!
- Study address: bugstack.cn
Valuable introduction to dry goods
1 Java Interface Manual
- The book consists of 5 chapters, 29 sections, 417 pages, 115,000 words and took four months to complete. It covers data structures, algorithmic logic, concurrent programming, JVMS, as well as resumes and interviews with major Internet companies.
The Java Manual is a PDF book that explains core Java technologies in an interview title and tries to prove to you that code is a concrete implementation of mathematical logic. Why do you say so? As you peruse the books, you’ll find a lot of math: disturbance functions, load factors, zipper addressing, open addressing, Fibonacci hashing, the use of the golden ratio, and more.
Coding is only in the determination of the design of the specific implementation, and the design part includes: data structure, algorithm logic and design mode, and this part of the data structure and algorithm logic in the Java core API reflected incisively and vividly. So, that’s why these are so popular interview questions, even though we might all feel like we’re building rockets.
Relearning Java Design Patterns – PDF version
- The book consists of 22 real business scenarios corresponding to 59 groups of case projects, 180,000 words and 271 pages of PDF, which took 50 days to complete.
This book is the author of small Fu Ge, based on the Internet real case preparation of Java design pattern practice books. The book takes solution as the core, and extracts 22 real scenarios such as transaction, marketing, rule engine, middleware and framework source code from the actual development business, and makes a comprehensive and thorough analysis of design patterns. It helps readers flexibly use various design patterns, cope with complex and changing business requirements, and write easy-to-maintain and extensible code structures.
3 bytecode programming
Total 107 pages, 117,000 words, 20 chapters covering the use of three bytecode frameworks and JavaAgent with a complete set of case source code!
To be fair, there is little systematic knowledge of bytecode programming on the market or in web search, largely because most developers have little exposure to it, including; ASM, Javassist, Byte-Buddy, and JavaAgent don’t have a big market and therefore don’t have a lot of data. But you’re already using it from other frameworks or middleware like you’re using it; Cglib, chaos engineering, non-invasive full-link monitoring and have you ever done an experiment using JetBrains – Agent.jar?
4 Spring manual column
After writing part of the introduction to the Spring core source code, I decided to hand polish Spring. Why do you do that? Because everything I want to write about, I want it to be learned for the purpose of understanding science, not by memorizing. And every piece of Spring source content analysis involved in writing an interview can be huge even if some of the non-mainstream logic is removed.
This column is a book to develop a simplified version of Spring to learn its principles and kernel knowledge content, not only code writing and implementation but also pay more attention to the content of the requirement analysis and scheme design, so in the learning process to combine these content to practice together, and debug the corresponding code. Fans in the process of reading, do not be afraid to encounter problems in the process of learning, these are normal! I hope you can always stick to these content hands-on, hands-on learning, come on!
5 IDEA Plugin Development Manual
This development manual is divided into 4 chapters and 12 sections, which series the common technical points of IDEA Plugin development step by step through the way of practice case development, and explains how to develop an IDEA plug-in for readers.
IDEA plug-in development can help researchers improve energy efficiency and solve some common problems in practical scenarios. But recently in the IDEA of the plug-in development over time, market information is not much, nor into system complete development guidelines, so he went to a lot of don’t know won’t things, need a little query search source, verify the API interface, the functions realized, finally, of course, in this process is also true that a lot of pit! Next, in this column, we will output some knowledge about IDEA plug-in development into cases to help r&d partners in need to build IDEA Plugin together.
6. Lottery System — A four-tier architecture practice based on domain-driven design
Lottery Lottery system project is an Internet Lottery system for C-end crowd marketing activities, which can provide logical functions such as creation, participation, bookkeeping and distribution of Lottery strategy. In the process of use, operators create lottery games of probability prizes to attract new users, activate them, and retain them. Usually, such systems are used in various scenarios such as e-commerce, take-out, travel, and public account operation.
- This system architecture is a four-tier architecture implementation of DDD domain driven design. It introduces and shows readers how to develop such code in a way that pays attention to the implementation of code.
- In the Domain Domain layer, system process design is gradually disassembled, and Domain modules are designed and developed in accordance with responsibility boundaries. Finally, logical functions are arranged in the application layer.
- This system will reflect a lot of design pattern ideas and the final implementation, only the DDD and design pattern together, in order to develop a more easy to expand and maintain the code structure.
7. SpringBoot Middleware Volume
The full volume consists of 19 chapters, including 16 middleware design and development, including test cases, a total of 30 code libraries for readers to learn and use. The middleware scenarios implemented in the volume cover seven aspects: technical framework, data services, data components, distributed technology, service governance, bytecode, IDEA plug-in, which run through the core content commonly used in the entire Internet system architecture. It is worth understanding, learning, practicing and mastering.
- Technical framework: including Spring, SpringBoot configuration loading, custom annotations, scan registered beans, etc., as well as ORM framework design principle and implementation. This part of the technology is mainly the development of middleware and framework combined with the development of the corresponding components or packaging as various SpringBoot Starter ability learning.
- Data Services: Mysql, Redis, Elasticsearch are all data services, and usually need to develop various components to package the use of data services, Mysql we know JDBC, Redis we know Jedis, But Elasticsearch has x-pack if you know.
- MyBatis: Mysql+JDBC+ORM allows users to query data from Elasticsearch (MyBatis). MyBatis: Mysql+JDBC+ORM allows users to query data from Elasticsearch (MyBatis). The technical ability of two-fold page needs to be familiar with the implementation principle of ORM framework such as MyBatis, and at the same time need to understand the concept of JDBC.
- Distributed technology: RPC framework, registry and distributed task are all very important technologies in the existing Distributed architecture of the Internet. As for how to implement an RPC framework, technology is also the key for researchers to master. Meanwhile, how to use the registry and how to issue distributed scheduling tasks, etc. Learning these techniques will give you a deeper understanding of the use of existing frameworks.
- Service governance: fuses, downgrades, curtailments, cutouts, blacklists, and non-invasive extensions and enhancements to existing methods can all be components of the service governance class, which were originally integrated with business logic code in the early days and then gradually disassembled and developed into corresponding components. So we can learn how to wrap and integrate these components.
- Bytecode & plug-in: In the process of Internet system application operation and maintenance, you will certainly come into contact with various monitoring systems, and many monitoring systems are non-invasive full link monitoring, so how to achieve these? In fact, they are based on bytecode staking, the enhancement of the system method, the collection of corresponding runtime information, for monitoring. The extension of JVMTI and IDEA plug-in development are all aimed at the sustainable delivery and on-line improvement of delivery quality and reduction of human efficiency in the whole research and development process.
Xiao Fu ge prepared these technical information, are personally verified, system combing, gradually summarized the technical content, so in the process of learning must control the source corresponding case study, so that you can have a greater harvest.
Finally, I want to say: ability is the biggest guarantee for you to move forward. Even if you are a conscientious worker, you must have the ability to stay and jump out of the ability, will be relatively stable through the turbulence and turbulence again and again.