Grace Hopper (AI Generated Artwork)
Design
Mastering the art of software design is a complex challenge.
At Repo Racers, we've gathered a series of practices that aid in the design process. This includes not just the technical aspects of software design but also touches on architectural considerations and the collection of non-functional requirements for new initiatives.
Goals
- Offer guidance on creating software that is maintainable, easily extendable, aligns with best practices, and is sustainable over time.
- Provide or point to processes and checklists that assist in ensuring software is well-designed.
- Aggregate and direct to resources (such as guides, repositories, articles) that can expedite the learning curve.
Sections
- Diagram Types
- Design Patterns
- Design Reviews
- Non-Functional Requirements Guidance
- Sustainable Software Engineering Practices
Recipes
Code Examples
To provide practical insights into how these principles can be applied, we include examples of project structures and templates:
- Folder Structure
- For an organized Python project structure, reference the Python Repository Folder Structure Guide.
- Project Templates
- For Rust projects, see the Actix Web, Diesel ORM, Test Containers, Onion Architecture Template.
- For Python applications, explore the Flask, SQLAlchemy ORM, Test Containers, Onion Architecture Template.
Designing software is an evolving discipline, and at Repo Racers, we are committed to continuously updating and refining our approaches to stay at the forefront of technological advancement and best practices.