Repositório para estudos dos 5 princípios conhecidos como SOLID.

Overview

SOLID 🗒

Repositório para estudos dos 5 princípios conhecidos como SOLID.

O que é SOLID?

SOLID é um acrônimo dos cinco primeiros princípios da programação orientada a objetos e design de código identificados por Robert C. Martin (também conhecido como Uncle Bob) por volta do ano 2000. O acrônimo SOLID foi introduzido por Michael Feathers, após observar que os cinco princípios poderiam se encaixar nesta palavra.

  • S - SRP - Single Responsability Principle (Princípio da responsabilidade única)
  • O - OCP - Open-Closed Principle (Princípio Aberto-Fechado)
  • L - LSP - Liskov Substituition Principle (Princípio de substituição do Liskov)
  • I - ISP - Interface Segregation Principle (Princípio da Segregação da Interface)
  • D - DIP - Dependency Inversion Principle (Princípio da inversão da dependência)

SRP - Single Responsability Principle

Uma classe deve ter um, e somente um, motivo para existir.

OCP - Open-Closed Principle

Você deve ser capaz de estender um comportamento de uma classe, sem modificá-lo.

LSP - Liskov Substituition Principle

As classes bases devem ser substituídas por suas classes derivadas.

ISP - Interface Segregation Principle

Muitas interfaces específicas são melhores do que uma interface única.

DIP - Dependency Inversion Principle

Dependa de uma abstração e não de uma implementação.

💫 Vantagens da aplicação destes princípios:

  • Seja fácil de manter, adaptar e se ajustar as alterações de escopo.
  • Seja testável e de fácil entendimento.
  • Seja extensível para alterações com o menor esforço necessário.
  • Que forneça o máximo de reaproveitamento.
  • Que permaneça o máximo de tempo possível em utilização.

O que você evita utilizando SOLID:

  • Dificuldade na testabilidade/criação de testes de unidade.
  • Código macarrônico, sem estrutura ou padrão.
  • Dificuldades de isolar funcionalidades.
  • Duplicação de código, uma alteração precisa ser feita em N pontos.
  • Fragilidade, o código quebra facilmente em vários pontos após algumas mudanças.
You might also like...
Aplicación SwiftUI para visualizar datos de Github dados un usuario y un token (Github token), implementa autenticación biométrica mediante FaceID.
Aplicación SwiftUI para visualizar datos de Github dados un usuario y un token (Github token), implementa autenticación biométrica mediante FaceID.

ios-app-swift-gitapp Aplicación SwiftUI para visualizar datos de Github dados un usuario y un token (Github token), implementa autenticación biométric

Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift
Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift

Onde_estou_iOS Aplicativo criado para estudos de desenvolvimento de Mapa e GPS usando Swift, onde ele pede autorização para usar GPS e localização do

Projeto utilizando Flutter para desenvolver uma aplicação com o objetivo de gerenciar uma lista de livros, como se fosse uma biblioteca, sendo possível adicionar, editar e excluir livros.

todo_list_flutter A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you st

Repositório com app exemplo para o uso do gráfico de Heatmap
Repositório com app exemplo para o uso do gráfico de Heatmap

HeatmapExample Repositório com app exemplo para o uso do gráfico de Heatmap O gráfico Heatmap retrata os dados entre duas variaveis diferentes como um

Repositório com o app exemplo para o uso do gráfico radar.
Repositório com o app exemplo para o uso do gráfico radar.

RadarExample Repositório com o app exemplo para o uso do gráfico radar. É um método gráfico de apresentar dados multivariáveis, na forma de um gráfico

Função para calcular despesas da viagem para a formação iOS na Stone

Calcular despesas da viagem Desafio: Desenvolva uma função (ou método) que irá receber uma lista de despesas (como a detalhada acima) e uma lista de n

Aplicativo simples demonstrando como implementar ContextMenu em uma CollectionView
Aplicativo simples demonstrando como implementar ContextMenu em uma CollectionView

Aplicativo simples demonstrando como implementar ContextMenu em uma CollectionView Ambiente de desenvolvimento Estas são as versões das ferramentas qu

Aplicativos dos mais diversos memes da internet através de uma API.
Aplicativos dos mais diversos memes da internet através de uma API.

MemesAPI Esse aplicativo foi um desafio de uma das aulas passadas da digitalhouse, nele consumimos uma API de memes, em arquitetura MVC, que trazia o

TodoList-iOS-master - DailyCheck makes it easy to manage your to-dos by date

Daily Check DailyCheck makes it easy to manage your to-dos by date. App Store Do

Add to-do List  - a mobile application where you can add your to-dos and follow them
Add to-do List - a mobile application where you can add your to-dos and follow them

This project, is a mobile application where you can add your to-dos and follow them. You can add your to-do's.

Neste repositório contém uma atividade de CBL com objetivo de desenvolver o meu primeiro código em linguagem Swift

Relevância de Texto Esse código tem como função poupar tempo das pessoas que necessitam fazer pesquisa bibliográfica e querem automatizar a leitura in

A solid language pack for Vim.
A solid language pack for Vim.

A collection of language packs for Vim. One to rule them all, one to find them, one to bring them all and in the darkness bind them. It won't affect y

A flexible container view featuring a solid background with rounded corners.
A flexible container view featuring a solid background with rounded corners.

A flexible container view featuring a solid background with rounded corners.

Simple utility to change macOS Big Sur menu bar color by appending a solid color or gradient rectangle to a wallpaper image
Simple utility to change macOS Big Sur menu bar color by appending a solid color or gradient rectangle to a wallpaper image

Change menu bar color in macOS Big Sur Simple utility to change macOS Big Sur menu bar color by appending a solid color or gradient rectangle to a wal

Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principles altogether. Protocol oriented development has been followed.

BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe

An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices.
An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & images using best practices.

dog-playground-ios An advanced Swift (IOS Native) application that uses SOLID architectural principles, consumes a RESTFUL Service, downloads & im

Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21
Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21

Pile Up Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21 Descrição Pile Up é um quebra cabeça cujo objetivo é empilhar os bloc

Uma lista de conteúdos para você aprender Swift

Aprenda Swift Esta lista contém diversos links com conteúdos para aprender a desenvolver utilizando a linguagem Swift. Pela escassez de conteúdo em Po

Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo.
Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo.

MVVM Challenge - Delivery App 🍕 Neste desafio, aplicaremos conceitos da arquitetura MVVM para finalizar a implementação de um aplicativo. Desenvolver

Owner
Rayana Prata
Junior iOS Developer ♥ Computing, science, innovation, astronomy and tech lover.
Rayana Prata
Repositório com app exemplo para o uso do gráfico de Heatmap

HeatmapExample Repositório com app exemplo para o uso do gráfico de Heatmap O gráfico Heatmap retrata os dados entre duas variaveis diferentes como um

null 0 Nov 5, 2021
TodoList-iOS-master - DailyCheck makes it easy to manage your to-dos by date

Daily Check DailyCheck makes it easy to manage your to-dos by date. App Store Do

Kushal Shingote 1 Feb 5, 2022
Add to-do List - a mobile application where you can add your to-dos and follow them

This project, is a mobile application where you can add your to-dos and follow them. You can add your to-do's.

Cem 4 Apr 1, 2022
Neste repositório contém uma atividade de CBL com objetivo de desenvolver o meu primeiro código em linguagem Swift

Relevância de Texto Esse código tem como função poupar tempo das pessoas que necessitam fazer pesquisa bibliográfica e querem automatizar a leitura in

Samantha Eufrásio 1 Oct 29, 2022
Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principles altogether. Protocol oriented development has been followed.

BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe

Dhruvik Rao 2 Mar 10, 2022
Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21

Pile Up Swift Playgrounds desenvolvido para o Swift Student Challenge da WWDC 21 Descrição Pile Up é um quebra cabeça cujo objetivo é empilhar os bloc

Beatriz Sato 3 Jun 5, 2021
Diseño para prueba técnica de MayaSoft

FrontPet Prueba de diseño para MayaSoft Desarrollado en Swift Instalación Clonar este repositorio y entrar a la carpeta FrontPet cd FrontPet pod insta

Jonnattan Choque 0 Nov 2, 2021
TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI

TabBar do aplicativo do Mercado Bitcoin para iOS usando SwiftUI Screenshots Vídeos Vídeo on YouTube Requisitos iOS 14 SwiftUI Xcode 12 Meta Github: ht

Raphael Cerqueira 2 May 22, 2022
Cliente de iOS escrito en Swift para el módulo de Concurrencia y Red del bootcamp Fullstack Mobile Developer de KeepCoding

DiscourseClient Descripción Práctica del módulo de "Concurrencia & Red" para el KeepCoding Fullstack Mobile Developer Bootcamp, en su 13ª edición. Cli

Donato Gómez 0 Jun 6, 2022
SafeTimer es una app para iPhone y Apple Watch que te ayuda a controlar el tiempo que has usado una mascarilla.

SafeTimer es una app para iPhone y Apple Watch que te ayuda a controlar el tiempo que has usado una mascarilla.

Chubby Apps 13 Sep 20, 2022