Library
An old console project was created with the goal of not using any software standards, practices or architectures. The goal is to rewrite this project using differents architectures, design patterns and best practices.
Library Console Project - Project with bad practices that will be rewrite.
- SOLID - The library management system has been restructured with SOLID principles, simplifying the code and making it more flexible.
- DRY (Don't Repeat Yourself) - Emphasizes avoiding code duplication in the system, promoting reusability and modularity.
- KISS (Keep It Simple, Stupid) - Advises keeping systems as simple as possible, avoiding unnecessary complexity that might hinder code understanding and maintenance.
- YAGNI (You Ain't Gonna Need It) - Suggests not adding functionalities to software based on future assumptions, but implementing only what is necessary at the moment.
- Law of Demeter (LoD) / Principle of Least Knowledge - Proposes that each unit should have limited knowledge about other units, reducing coupling and increasing cohesion.
- Composition Over Inheritance - Emphasizes preferring object composition over inheritance to maintain more flexible and less coupled systems.
- MVC - Separation of responsibilities between data (Model), user interface (View), and control logic (Controller) for application development.
- MVVM - A variation of MVC where the ViewModel acts as an intermediary between the View and the Model, facilitating separation of concerns and enabling better state management
- Onion - Layered structure emphasizing the separation of core domain concepts from the peripheral implementation details, protecting the core from external implementation concerns.
- Microservices - Software architecture approach where an application is divided into independent components, each performing specific processes and communicating through APIs.
- Monolithic - An architecture type where all parts of the application are developed, implemented, and deployed as a single unit, often without distinct modular divisions.
- Serverless - An approach where the developer doesn't need to manage server infrastructure. Code runs in response to events and is managed by a cloud services provider.
- Event-Driven - Based on producing, detecting, consuming, and reacting to events that occur within a system. This enables asynchronous communication between system components.
- Hexagonal - A structure that emphasizes modularity and separation of concerns through division into concentric layers, facilitating integration with external components.
- Space-Based - Based on the idea of sharing events and state across a distributed infrastructure, enabling scalability and flexibility in distributed systems.
LANGUAGES | STATS |
---|---|
STREAKS | CONTRIBUTIONS |