Blog: bugstack.cn

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

First, with big projects, throughout the knowledge system

All r D, R D, R D, r D, r D, r d, r d, r 996, is just a screw of repetition. If you want to break the bottleneck of existing work and raise the awareness of technology, it is very necessary to have a large project that cuts through the knowledge of the common technology stack. Fragmentation fault back eight-part text, is not to solve this matter

So what? Of course, it is the liver project, which is a real scene project with Internet technology system, distributed architecture application, DDD thought and design mode practice. Only in this way can a skilled workers who have not been exposed to such projects or have been immersed in CURD for a long time open their vision and grow up quickly.

For half a year, Little Brother Fu has been doing this thing, until today to complete the implementation and landing of the first phase of the design of the whole system. In the “distributed lottery system” project, I will bring you to DDD architecture and design patterns of actual combat landing, code development, video introduction, documentation way of interpretation and implementation of distributed lottery system, then here will involve a lot of DDD application of design thinking and design patterns, as well as the development in the application of the Internet companies to technology, including: SpringBoot, Mybatis, Dubbo, MQ, Redis, Mysql, ELK, sub-library sub-table, Otter, etc.

Two – and four-tier architecture, 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.

1. DDD four-tier architecture

  • 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.

2. Distributed engineering design

The overall system architecture design includes six projects:

  1. Lottery: a distributed deployed Lottery service system that provides Lottery business domain functions and RPC services in a distributed deployed manner.
  2. Lottery-api: gateway API service that provides; H5 page lucky draw, public number development reply message lucky draw.
  3. Lottery-front: C-side user system, Vue H5 Lucky – Canvas large rotary table Lottery interface, explains vUE project creation, module introduction, development interface, cross-domain access and function implementation
  4. Lottery-erp: B-side operation system, which can meet the needs of operators for activities query, configuration, modification, review and other operations.
  5. Db-router: sub-database sub-table routing component, the development of a HashMap based on the core design principle, the use of hash hash + disturbance function, the data hash to multiple library table components, and verify the use of.
  6. Lottery-test: a Test validation system used to Test validation of RPC services and system function calls.

3. Refine process areas

  • Disassembling functional processes and refining domain services teaches you step by step how to disassemble a business functional process into domain modules under each responsibility boundary, and provide the whole service link by connecting developed domain services in series at the application layer.
  • Through such design and implementation ideas, as well as in the process of the function in accordance with the object-oriented design mode of design, so that every step of the code becomes clear and easy to understand, so that the code is easier to maintain and expand.
  • So, what you learn in this process is not only code development, but also more practical ideas. It can also lay a good foundation for you to develop such a project in the future or in the interview process, some of the actual complex scene questions design ideas.

Three, learning introduction, teach you how to get on the bus

Including: document, video, code, homework, the combination of four aspects of learning, so it can also make even the lack of coding experience in school students, fresh graduates or CRUD skilled workers, can quickly join the project to learn.

  • Courses are divided into:Giant specification,Field development,Operating the background,Application scenarios,The system operational, a total of 5 chapters 34 sections to explain the DDD distributed system architecture design and practice.
  • A 22-year Offer won’t come cheap, as long as you follow through.Is research and development ability to have difference really, in fact not, what you are poor is just a large system that someone is taking your liver!

1. Study catalogs

  • Part 1: Specifications for large factories

    • Section 01: Dachang code agricultural development foundation
    • Section 02: Where does demand come from
    • Section 03: System Architecture Design
    • Section 04: Entering the development phase
    • Section 05: System on-line maintenance
  • Part 2 domain development

    • Section 01: Environment, Configuration, specification
    • Section 02: Setting up (DDD + RPC) Architecture
    • Section 03: Run through broadcast mode RPC procedure calls
    • Section 04: Lottery strategy library table design
    • Section 05: Drawing strategy domain module development
    • Section 06: The template pattern handles the lottery process
    • Section 07: Simple factory construction award field
    • Section 08: Configuration and status of activity domains
    • Section 09: ID generation policy domain development
    • Section 10: Implementing and using subtables
    • Section 11: Declare transaction claim activity area development
    • Section 12: Orchestrate the lottery process at the application layer
    • Section 13: Rules engine quantifies crowd participation activities
    • Section 14: Facade interface encapsulation and object transformation
    • Section 15: Set up the MQ message component Kafka service environment
    • Section 16: Sweepstakes the shipping process using MQ decoupling
    • Section 17: Introduce XXL-job to handle active state scanning
    • Section 18: Scan library tables to compensate invoice MQ messages
    • Section 19: Designing a sliding inventory distributed lock to handle active SEC kills
  • Part 3 Operation Background

    • Section 01: UI engineering setup
    • Section 02: Activity list data presentation
  • Part 4 Application scenarios

    • Section 01: Establish wechat public account gateway service
    • Section 02: [Homework] Vue H5 big turntable raffle
  • Part 5 System operation and maintenance

    • Section 01: Deploying Docker in the cloud
    • Section 02: Deployment environment Redis
    • Section 03: Deployment environment Kafka
    • Section 04: Deploy the Mysql environment
    • Section 05: Deployment environment xxL-job
    • Section 06: Deployment environment NACOS

2. What will you learn

  • How distributed system architecture is developed (RPC,MQ,Distributed task,Depots table)
  • The combination of DDD four – tier architecture design and design pattern
  • Code development specification, requirement review, operation and maintenance monitoring for Internet giants
  • Docker operation and maintenance practice, environment, deployment, configuration, monitoring, logging, etc

3. Fit the crowd

  • Developers with Java programming background want to improve their technical skills
  • Hope to improve coding thinking and eliminate the bad taste in the code
  • Willing to become an architect, but still at a bottleneck
  • Want to join the big factory to do code farming, but the total feeling can not find the way

4. Join the learning

  • Lottery Lottery System – A Four-tier architecture practice based on Domain-driven Design

5. Class represents homework

Seriously, I met someone who understands me!

In the actual combat project learning, there was a class representative, who could be described as delicate every time she shared homework. She was super fast in learning and could clearly analyze the process of each piece and put up the flow chart as follows:

  • I also hope to have more excellent you, with me to learn, grow, make money, 22 years, we come on!