Dataprev: Desenvolvimento de Software (FGV)

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Conceitos fundamentais de desenvolvimento de software cobrados em concursos da FGV para a Dataprev.

35 cartões Português Nível: Ensino superior Programação Publicado
Toque no cartão para virar

Cartões · 35

Princípio da Responsabilidade Única (SRP)
Uma classe deve ter apenas um motivo para mudar, focando em uma única responsabilidade no sistema.
Princípio Aberto/Fechado (OCP)
Entidades de software devem estar abertas para extensão, mas fechadas para modificação.
Princípio da Substituição de Liskov (LSP)
Objetos de uma superclasse devem poder ser substituídos por objetos de suas subclasses sem quebrar o sistema.
Princípio da Segregação de Interfaces (ISP)
Clientes não devem ser forçados a depender de interfaces que não utilizam; prefira interfaces específicas.
Princípio da Inversão de Dependência (DIP)
Módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações.
Padrão Singleton
Garante a existência de apenas uma instância de uma classe no sistema e provê um ponto de acesso global a ela.
Padrão Factory Method
Define uma interface para criar um objeto, mas deixa as subclasses decidirem qual classe instanciar.
Padrão Strategy
Define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis em tempo de execução.
Padrão Observer
Define uma dependência um-para-muitos entre objetos, notificando todos os dependentes quando o estado muda.
Padrão Adapter
Converte a interface de uma classe em outra interface esperada pelos clientes, permitindo interoperabilidade.
Padrão Decorator
Adiciona responsabilidades adicionais a um objeto dinamicamente, sem alterar sua estrutura básica.
Propriedade ACID: Atomicidade
Garante que todas as operações da transação sejam executadas com sucesso ou nenhuma delas seja aplicada.
Propriedade ACID: Consistência
Assegura que a transação leve o banco de um estado válido a outro, respeitando todas as regras e restrições.
Propriedade ACID: Isolamento
Garante que a execução concorrente de transações resulte em um estado equivalente à execução sequencial.
Propriedade ACID: Durabilidade
Garante que o resultado de uma transação confirmada seja gravado de forma permanente, mesmo com falhas.
Teorema CAP
Sistemas distribuídos podem garantir simultaneamente no máximo duas de três propriedades: Consistência, Disponibilidade e Tolerância a Partições.
Idempotência em APIs REST
Propriedade de uma operação cujo resultado e efeito colateral são idênticos, independentemente do número de execuções (ex.: GET, PUT, DELETE).
Método HTTP POST
Utilizado para criar novos recursos no servidor; não é uma operação idempotente por padrão.
Método HTTP PUT vs PATCH
PUT substitui integralmente o recurso existente, enquanto PATCH aplica modificações parciais a ele.
Modelo de Maturidade de Richardson: Nível 2
Uso correto dos verbos e métodos HTTP (GET, POST, etc.) combinados com códigos de status apropriados.
Modelo de Maturidade de Richardson: Nível 3
Introdução de controles hipermídia como motor do estado da aplicação, conhecido como HATEOAS.
Git: Rebase vs Merge
Merge preserva o histórico exato criando um commit de junção; Rebase reaplica commits linearmente na branch base.
Git: Cherry-pick
Comando que aplica as alterações introduzidas por commits específicos de outra branch na branch atual.
Integração Contínua (CI)
Prática de integrar código frequentemente em um repositório compartilhado, validado por builds e testes automáticos.
Implantação Contínua (CD)
Processo automatizado onde qualquer alteração aprovada em pipeline é liberada diretamente em produção sem intervenção manual.
Estratégia Blue-Green Deployment
Técnica que mantém dois ambientes idênticos de produção para alternar o tráfego instantaneamente e reduzir downtime.
Estratégia Canary Deployment
Liberação gradual de uma nova versão para um pequeno subconjunto de usuários antes de disponibilizar para todos.
Clean Architecture: Regra de Dependência
As dependências do código-fonte devem apontar sempre para dentro, em direção às políticas de mais alto nível.
Scrum: Papel do Product Owner
Responsável por maximizar o valor do produto e gerenciar o Product Backlog de forma clara e priorizada.
Scrum: Time-box da Sprint
Período fixo de duração pré-determinada (geralmente de 1 a 4 semanas) no qual um incremento utilizável é criado.
Test-Driven Development (TDD)
Ciclo de desenvolvimento Red-Green-Refactor, no qual o teste unitário é escrito antes da implementação do código.
Injeção de Dependência
Técnica onde um objeto recebe suas dependências de uma fonte externa em vez de instanciá-las internamente.
OAuth 2.0
Framework de autorização que permite que aplicações terceiras acessem recursos protegidos via tokens de acesso.
JSON Web Token (JWT)
Padrão aberto compacto e autocontido (RFC 7519) para transmitir informações seguras entre partes como um objeto JSON.
SQL: Índice B-Tree
Estrutura de dados balanceada em árvore que otimiza operações de busca por igualdade e intervalo em bancos de dados.

Conjuntos relacionados

Mais em Programação →