Giter Site home page Giter Site logo

architect-handbook's Introduction

Software Architect Handbook

What is software architecture?

System design

For a complete System Design study, you should also be familiar with Databases related topics such as CAP Theorem. This section assumes prior knowledge about such topics, but you can also read about those in this very same repo.

System Design - Case Studies

Problems Solutions
Instagram News Feed - Gaurav Sen Solution
Key-value store Solution
Unique ID generator in distributed systems Solution
URL shortener Solution
Web crawler Solution
Notification system Solution
News feed system Solution
Chat system Solution
Search autocomplete system Solution
Youtube Solution
Google Drive Solution

Design principles

Design patterns

What is a design pattern?

Base patterns

System-level or architectural patterns

Gang of Four Patterns

Please check the this repository for a detailed explanation and examples of each of the following patterns.

Creational Structural Behavioral
Abstract Factory Adapter Chain of Responsibility
Builder Bridge Command
Factory Method Composite Interpreter
Prototype Decorator Iterator
Singleton Facade Mediator
Flyweight Memento
Proxy Observer
State
Strategy
Template Method
Visitor

Domain logic patterns

Data source & persistence patterns

Object relational patterns

Behavioral patterns

Structural patterns

Metadata mapping patterns

Web presentation patterns

What are web presentation patterns?

Distribution patterns

Offline concurrency patterns

Session state patterns

Anti-Patterns

What is an Anti-Pattern?

Architectural Styles & Patterns

Recommended book: https://en.wikipedia.org/wiki/Pattern-Oriented_Software_Architecture

Three-Layer System (Martin Fowler)

REST: Representational State Transfer

Recommended reference: restfulapi.net

Domain-Driven Design

Overview

Microservices

Overview

Tools

Data storage

General concepts

Data Consistency

Data partitioning

Types

Relational Databases

Wide-column store

GraphQL

Software types

Although some techniques and patterns are relevant for all kinds of software, many are relevant for only one particular branch.

Operating systems

Linux

Refactoring & code smells

Programming paradigms

Structured programming

What is structured programming?

OOP: Object-oriented programming

Functional programming

What is functional programming?

Software Engineering Culture

Laws & Theorems

Working Methodologies

Testing

General concepts

About system-design and architecture

About software engineering

Common jargon

Tooling - Language Agnostic

  • Telepresence: tool that is aiming to make a hybrid local/remote developer workflow easier for Kubernetes users.
  • Pact: customer-driven contracts.

Technology specifics

Frontend

Frontend developer roadmap.

architect-handbook's People

Contributors

herrera-ignacio 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.