Nuggets, together with 4 bytedance lecturers, launches “Go Component Design and Implementation”, which takes you into an in-depth analysis of the design, implementation and performance optimization of basic bytedance components.
With the rapid development of the Internet, almost all companies are popular with the development mode of “small steps, quick trial and error”, which requires students to complete development tasks more quickly and efficiently. Therefore, a good component is essential, which is equivalent to a template code base, containing a lot of basic functions and conventions of operation. With it, we only need to focus on implementing the required business logic, greatly improving development efficiency.
However, when we actually apply components to a business, we often run into problems such as:
- Business often needs us to design high-performance network library, improve the scalability of components, do not know how to operate
- Encountered some components of poor serialization performance, but do not know how to optimize
- Want to design components that fit your business and don’t know where to start
- …
Based on this, Nuggets cooperated with 4 bytedance r&d engineers to integrate the design and implementation of 4 open source and mature components into replicable and referable content, helping everyone quickly grasp the key points and essence of component design.
Specifically, the course is divided into four modules.
- Module 1: Netpoll network library design and implementation. This course focuses on the detailed design and performance optimization of Netpoll network library to help you get familiar with the knowledge of network library, distinguish the different characteristics of network library, and master the correct way of using network library. After learning this course, you can choose the most suitable network library according to the business characteristics and can design network library by yourself.
- Module 2: Go micro-service framework Kitex expansibility design and practice. The focus is on the pain points of the framework evolution in the form of case studies and how to transform Kitex. Kitex expands design, practice and thinking, so as to gracefully support more horizontal capabilities.
- Module three: GORM design and implementation. To help you better understand the concept and working principle of GORM, focus on the GORM design and implementation of its ideas, to give you some inspiration to do some better packaging implementation, but also to encourage you to design software, better service business.
- Module 4: High performance JSON-Sonic JSON library use, design and implementation. JSON codec is a high performance, easy to use, rich functionality, and basic compatibility with the standard library. It helps you understand the characteristics of Sonic library, JSON data structure, basic types and data types. Focus on the implementation principle of Sonic JIT and the application of RCU synchronization mechanism in compilation cache.
Finally, if you want to get inspired for more component designs and apply them better to your work, we want you to have the following foundations:
- Experience in Go language development
- Experience in RPC development or network programming
- Use ORM or database
- Background knowledge (assembly language, x86_64 instruction set, etc.)
- Some knowledge of JSON
By coming back to this course with these foundations, you’ll be able to handle development issues more flexibly and become more comfortable with your own projects. During the learning process, you are also welcome to experience and use the components discussed in the course. If you have any technical questions, please feel free to ask them in the comments section and study group, and the Byte lecturers will actively answer them
At this point, if you are determined to explore the design principles of the Go component, don’t miss the early Bird 50% discount 👉🏻, original price: 69, limited time only: 34.5, from January 7 to January 13
What are you waiting for? Scan code and join the Go component learning!