Perspectiva de conceitos
por Reinaldo Luckman
1. Paradigmas
1.1. Programação Orientada a Objetos
1.1.1. Princípios
1.1.1.1. SOLID
1.1.1.1.1. Single responsability
1.1.1.1.2. Open-closed
1.1.1.1.3. Liskov's substitution
1.1.1.1.4. Interface segregation
1.1.1.1.5. Dependency inversion
1.1.1.2. Design by Contract
1.1.1.3. Dont Repeat Yourself (DRY)
1.1.1.4. Keep It Simple, Stupid (KISS)
1.1.1.5. Demeter Law
1.1.2. Padrões de Projeto
1.1.2.1. General Responsibility Assignment Patterns (GRASP)
1.1.2.1.1. Controller
1.1.2.1.2. Creator
1.1.2.1.3. Information expert
1.1.2.2. Gang of Four (GoF)
1.1.2.2.1. Criacionais
1.1.2.2.2. Estruturais
1.1.2.2.3. Comportamentais
1.2. Programação Funcional
1.3. Internet
2. Tendências
2.1. Domain-Driven Design (DDD)
2.2. Representational State Transfer (REST)
2.2.1. Nível 0: RPC sobre HTTP
2.2.2. Nível 1: Recursos
2.2.3. Nível 2: Verbos
2.2.4. Nível 3: Hipermídia