No meio do desenvolvimento de software, é provável que você vá encontrar algumas siglas não muito fáceis de entender. Neste artigo, vamos destrinchar algumas delas.
SOLID é uma forma de lembrar os 5 princípios básicos para escrever programas orientados a objeto. Ela for criada por Robert Martin como uma forma de promover a produção de código reutilizável e evitar o que ele chamou de "código podre". Em inglês, são eles:
- Single responsibility (ou "Responsabilidade única")
- Toda classe deve ter somente uma única responsabilidade;
- Open-closed (ou "Aberto-fechado")
- Entidades de software devem estar abertas para extensão mas fechadas para modificação;
- Liskov substitution ("Substituição de Liskov")
- Métodos que usam referências a classes básicas devem ser capazes de usar objetos derivados sem se preocupar com isso;
- Esse princípio é a base do que chamamos de Polimorfismo e foi definido pela cientista da computação Barbara Liskov;
- Interface segregation (ou "Segregação por interface")
- Classes não devem depender de interfaces que elas mesmas não usam;
- Dependency inversion (ou "Inversão de dependências")
- Classes devem depender de outras classes abstratas, nunca classes concretas;
O método CUPID foi criado por Daniel Terhorst-North como uma resposta ao SOLID. Em vez de focar em princípios, este método foca em propriedades que toda base de código deve ter e manter ao longo do tempo. Essas propriedades são, em inglês:
- Composable (ou "Agregabilidade")
- Toda unidade de software deve harmonizar com os outros componentes ao redor de maneira harmônica;
- Unix philosophy (ou "Filosofia Unix")
- Todos os componentes devem se especializar em uma única tarefa, aderindo a uma interface única e consistente;
- Predictable (ou "Previsível")
- Todo código deve demonstrar comportamentos previsíveis e observáveis, em particular para a infraestrutura de segurança ao redor dele;
- Idiomatic (ou "Idiomático")
- O código deve seguir as convenções do ambiente onde ele está, desde a comunidade que mantém a linguagem de programação até o meio que o mantém;
- Domain-based (ou "Baseado no domínio")
- Todo programa é escrito para resolver um problema que existe dentro de uum domínio específico, então a linguagem e o conhecimento deste domínio devem ser seguidos e respeitados pelos mantenedores;
RACI significa, em inglês, Responsible; Accountable; Consulted; e Informed (ou encarregado; responsável; consultado; e informado) e são os componentes da chamada "matriz de determinação de responsabilidades". Ela é a usada para determinar, dentro de uma organização quem são pessoas que participam na execução de uma tarefa. Essas pessoas são:
- Encarregado
- Aqueles que de fato completaram a tarefa;
- Responsável
- Aqueles que tem autoridades para aprovar quando uma tarefa é dita completa e que responderam por ela depois que o resultado for entregue;
- Consultado
- Aqueles que tem conhecimento sobre o domínio no qual o problema está sendo resolvido;
- Informado
- Aqueles que tem que ficar sabendo que a tarefa foi terminada;