Princípios SOLID para Arquitetura de Aplicações Web

Programador Web

Arquiteto Front-end

Professor Universitário

Curioso pelo universo

Guilherme Siquinelli

Co-fundador da DevParaná

Princípios de design e padrões de design

Arquitetura

Camadas

Dependências

Princípios de Design de Classes Orientado a Objetos

SOLID

5 princípios

Princípios

  1. Responsabilidade Única
  2. Aberto-Fechado
  3. Substituição de Liskov
  4. Segregação de Interface
  5. Inversão de Dependência

SRP / PRU

SRP / PRU


abstract class User {
  
  abstract login(email: string, password: string): void
  
  abstract sendCode(email: string, code: string): void
  
}

SRP / PRU


abstract class Auth {
  abstract login(email: string, password: string): void
}


abstract class Email {
  abstract send(email: string, message: string): void
}

OCP / PAF

abstract class Repository<T, K extends keyof T> {
  abstract findAll(): T[];
  abstract findOne(key: T[K]): T[];
  abstract create(entity: Omit<T, K>): void;
  abstract update(key: T[K], entity: Partial<T>): void;
  abstract remove(key: T[K]): void;
}

abstract class UserRepository extends Repository<User, 'id'> {
  abstract findOneByEmail(email: string): User
}

Princípios SOLID para Arquitetura de Aplicações Web

By Guilherme Siquinelli

Princípios SOLID para Arquitetura de Aplicações Web

  • 116