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
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.1 Java-17
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
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)
3.6 H2
you can also use Docker image.
3.7 RabbitMQ
image:
container:
3.8 Apache JMeter
3.9 HAProxy
Load balance; Install on Linux system
3.10 Redis
Cache; Install on Linux system.
You can refer to this repo, but please do not copy the code directly for your homework submission. Good luck!👿