Skip to content

Some initial concepts about software structure: Learn how to design a software architecture that effectively solves real-world problems.

License

Notifications You must be signed in to change notification settings

NiuHuangxiaozi/Software-Structure

Repository files navigation

Software-Structure

1. Introduction


​ I tidy up my understanding about software design after attending the class Software Architecture. Here are some initial concepts about software structure. Learn how to design a software architecture to better solve real-world problems and integrate popular algorithms into your program design. These designs will enhance your system's performance and robustness. While this repo may seem basic and even simplistic, it can serve as a great stepping stone for freshmen to complete more complex programs in the future. If you want to learn more, don't forget to subscribe to this channel: click here

2. Navigation


Here is a table to illustrate what we learn in each part:

theme a simple description components
💉Ioc The key concept of the Spring structure Spring, Maven
🗼Layered-Systems just like 5 internet layers design Spring, Maven, Spring Shell
📚MVC a famous software design method Spring, Maven, H2
🧩Restful-Structure unified interface of resources access Spring, Maven, Thymeleaf, H2
💎Scalable-Web-Architecture scalable easily Spring, Maven, H2, Haproxy, JMeter, Redis
🐜MicroServices service Abstract Spring, Maven, vue3, H2, JMeter
✉️Message-Driven Time separation and more flexible Spring, Maven, vue3, H2, RabbitMQ
🪈PipesFilters dealing with big data Spring, Maven, vue3, H2
🔔Reactive Asynchronization and high response Spring(WebFlux), Maven, vue3, mongoDB, RabbitMQ, JMeter

3. Environments


openjdk 17.0.10 2024-01-16 LTS
OpenJDK Runtime Environment Microsoft-8902769 (build 17.0.10+7-LTS)
OpenJDK 64-Bit Server VM Microsoft-8902769 (build 17.0.10+7-LTS, mixed mode, sharing)

3.2 Maven

maven-version


3.3 Vscode (not necessary)

Some useful plugins:

  • Chinese (Simplified)
  • Auto Close Tag
  • Auto Rename Tag
  • Docker
  • Maven for Java
  • Spring Boot Extension Pack
  • Vue 3 Snippets
  • MongoDB for VS Code
  • Spring Boot Tools

3.4 Docker

3.5 mongoDB (using Docker image)

mogo-image

mogo-container

3.6 H2

you can also use Docker image.

image:

rabbitMq

container:

rabbitMq-container

Jmeter-version

Load balance; Install on Linux system

3.10 Redis

Cache; Install on Linux system.

4. Notice(most important)


You can refer to this repo, but please do not copy the code directly for your homework submission. Good luck!👿

About

Some initial concepts about software structure: Learn how to design a software architecture that effectively solves real-world problems.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published