Fundamentos Engenharia software Flashcards

(30 cards)

1
Q

Frente

A

Verso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

O que sao os Paradigmas de Programacao?

A

Sao estilos de programacao que definem a estrutura e a abordagem do codigo, como Procedural, Orientado a Objetos (OO) e Funcional.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais sao os principios SOLID?

A

Um conjunto de cinco principios para tornar o design de software mais compreensivel, flexivel e de facil manutencao: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation e Dependency Inversion.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

O que significam as boas praticas DRY, KISS e YAGNI?

A

DRY: Don’t Repeat Yourself; KISS: Keep It Simple, Stupid; YAGNI: You Aren’t Gonna Need It. Sao principios que promovem codigo limpo e eficiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

O que sao Design Patterns?

A

Solucoes reutilizaveis para problemas comuns no design de software, como Singleton, Factory, Observer, entre outros.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quais sao as arquiteturas Clean, Hexagonal e Onion?

A

Sao estilos arquiteturais que promovem a separacao de preocupacoes e facilitam a manutencao e escalabilidade do software.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual a diferenca entre Heranca e Composicao?

A

Heranca permite que uma classe herde comportamentos de outra, enquanto Composicao envolve construir classes usando instancias de outras classes para reutilizar funcionalidades.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que e Idempotencia em sistemas?

A

E a propriedade de certas operacoes que podem ser aplicadas multiplas vezes sem alterar o resultado alem da aplicacao inicial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que e o paradigma procedural?

A

Baseia-se na estruturacao do codigo como uma sequencia de instrucoes ou procedimentos, seguindo uma abordagem imperativa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quais sao as caracteristicas do paradigma procedural?

A

Organizacao do codigo em funcoes ou procedimentos; uso de variaveis globais e locais; fluxo de execucao sequencial; dependencia de estruturas de controle como loops e condicionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Quais sao as vantagens do paradigma procedural?

A

Simplicidade e facilidade de entendimento para programas pequenos; uso eficiente de memoria; adequado para problemas sequenciais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quais sao as desvantagens do paradigma procedural?

A

Dificuldade de manutencao e escalabilidade em projetos grandes; reutilizacao de codigo limitada; propensao a efeitos colaterais devido ao uso de variaveis globais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

O que e o paradigma orientado a objetos (OO)?

A

Organiza o codigo em objetos que representam entidades do mundo real, cada um com atributos e metodos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quais sao as caracteristicas do paradigma orientado a objetos?

A

Encapsulamento, abstracao, heranca e polimorfismo; organizacao do codigo em classes e objetos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quais sao as vantagens do paradigma orientado a objetos?

A

Facilita a reutilizacao de codigo; melhora a manutencao e escalabilidade; promove a modularidade.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quais sao as desvantagens do paradigma orientado a objetos?

A

Pode adicionar complexidade desnecessaria; curva de aprendizado mais ingreme; possivel overhead de desempenho.

17
Q

O que e o paradigma funcional?

A

Baseia-se na aplicacao de funcoes matematicas, evitando mudancas de estado e dados mutaveis.

18
Q

Quais sao as caracteristicas do paradigma funcional?

A

Uso de funcoes puras; ausencia de efeitos colaterais; enfase em recursao; tratamento de funcoes como cidadaos de primeira classe.

19
Q

Quais sao as vantagens do paradigma funcional?

A

Facilita a depuracao e testes; codigo mais previsivel; adequado para programacao concorrente.

20
Q

Quais sao as desvantagens do paradigma funcional?

A

Pode ser menos intuitivo para quem esta acostumado com paradigmas imperativos; desempenho pode ser afetado em algumas situacoes; curva de aprendizado.

21
Q

O que sao Padroes de Projeto?

A

Solucoes reutilizaveis para problemas comuns no design de software, categorizadas em Criacionais, Estruturais e Comportamentais.

22
Q

Quais sao os beneficios dos Padroes de Projeto?

A

Reutilizacao de solucoes testadas, codigo mais organizado e manutenivel, flexibilidade e escalabilidade, facilita a comunicacao na equipe, melhor separacao de responsabilidades.

23
Q

Quais sao as desvantagens dos Padroes de Projeto?

A

Complexidade desnecessaria, curva de aprendizado, sobrecarga de codigo, pode esconder a simplicidade, nao substituem o bom design.

24
Q

O que sao Padroes Criacionais?

A

Lidam com a criacao de objetos de maneira flexivel. Exemplos: Singleton, Factory Method.

25
O que sao Padroes Estruturais?
Definem como classes e objetos se relacionam. Exemplos: Adapter, Composite.
26
O que sao Padroes Comportamentais?
Focam na comunicacao entre objetos. Exemplos: Observer, Strategy.
27
O que e a Arquitetura Hexagonal?
Tambem conhecida como Ports and Adapters, visa separar a logica de negocio da infraestrutura usando 'portas' e 'adaptadores', promovendo independencia de frameworks, bancos de dados e interfaces externas.
28
O que e a Arquitetura Onion?
Organiza o codigo em camadas concentricas com o dominio no centro, enfatizando a dependencia de abstracoes e reforcando a separacao de camadas para evitar acoplamento indesejado.
29
O que e a Clean Architecture?
Organiza a aplicacao em circulos concentricos com o dominio no centro e camadas externas ao redor, incorporando ideias das arquiteturas Hexagonal e Onion, com foco nos principios SOLID e na testabilidade do sistema.
30
Como as arquiteturas Hexagonal, Onion e Clean se relacionam?
A Arquitetura Hexagonal introduziu a independencia da infraestrutura; a Onion refinou esse conceito estruturando as camadas em torno do dominio; a Clean consolidou esses principios com um modelo mais generico e aplicavel a diferentes contextos.