Giter VIP home page Giter VIP logo

awesome-software-architecture's Introduction

Awesome Software Architecture

awesome-badge

Software architecture aims to describe the high level structures of software as well as the discipline of creating them. As this topic is pretty broad, it might contain some resources that are also present in more niche lists.

If you like this list, consider showing your support by following @0x12b on Twitter.

Contents

Principles

  • Flexibility - Able to adapt to changes in both environment and usability requirements without encompassing structural changes.
  • SOLID - Lend to developing software with considerations for maintaining and extending as the project grows

Design Patterns

Scalability and Resilience

  • Circuit Breaker - Protecting failing resources to prevent cascading failures.
  • Bulkhead - Partition resources to isolate failures.
  • Leader Election - Coordinate distributed workloads by electing a leader.

Methodology

Documentation

  • arc42 - Template for documentation and communication of software and system architectures.
  • Architectural Decision Records - Version and document architectural decisions the same way you do with code.
  • Documenting architecture - Pragmatic tips on how to effectively document software architecture.

Workshop formats

Modeling

Tools

  • Sparx Systems Enterprise Architect - Object-oriented modelling suite. Only available natively for Windows.
  • Visual Paradigm - Similar to Enterprise Architect. Available for multiple platforms.
  • Lucidchart - Paid cloud-based diagram editor. Available on all common platforms.
  • Draw.io - Free and simple diagram editor. Comparable to Visio and its likes. Available on all common platforms.
  • Structurizr - Modelling tool based on the C4 Model (see above).
  • PlantUML - Like markdown for diagrams, PlantUML renders an english-like grammer into diagrams.
  • PlantUML for Atlassian - Adds support for PlantUML-based diagrams in the atlassian suite.
  • Sketchboard.io - Collaborative sketchboarding.

Frameworks

Agile

Lean software development

Extreme programming

  • Extreme Programming - The most specific of the popular agile processes, focusing on engineering and development practices.

DevOps

Bonus

Contributing

Want to contribute into making this list even better? Yay, that's awesome! Before you get started though, please have a look at our code of conduct and contribution guidelines.

License

CC0

To the extent possible under law, simskij has waived all copyright and related or neighboring rights to this work.

awesome-software-architecture's People

Contributors

eomm avatar feststelltaste avatar newalexandria avatar simskij avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.