I want to learn good programming practices, clean coding and SOLID Flashcards

(40 cards)

1
Q

O que significa a sigla SOLID na programação?

A

SOLID é um acrônimo que representa cinco princípios de design de software: 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
2
Q

Verdadeiro ou falso: O princípio da Responsabilidade Única afirma que uma classe deve ter apenas uma razão para mudar.

A

Verdadeiro.

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

Complete a frase: O princípio Open/Closed afirma que o software deve ser ________ para extensão, mas ________ para modificação.

A

aberto; fechado.

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

Qual é o foco do princípio de Substituição de Liskov?

A

As subclasses devem ser substituíveis por suas classes base sem alterar o comportamento correto do programa.

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

O que o princípio de Segregação de Interfaces sugere?

A

Sugere que as interfaces devem ser específicas e não forçar os clientes a depender de métodos que não utilizam.

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

Qual é o objetivo do princípio de Inversão de Dependência?

A

Reduzir o acoplamento entre módulos de alto nível e módulos de baixo nível, dependendendo de abstrações em vez de implementações concretas.

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

Verdadeiro ou falso: Código limpo é apenas sobre o estilo de codificação.

A

Falso.

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

Qual é uma prática recomendada para nomear variáveis?

A

Utilizar nomes descritivos que revelem a intenção do código.

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

O que significa o termo ‘refatoração’?

A

Refatoração é o processo de reestruturar o código existente sem alterar seu comportamento externo.

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

Complete a frase: O código deve ser ________ para facilitar a manutenção e a leitura.

A

legível.

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

Qual é a importância de escrever testes automatizados?

A

Testes automatizados ajudam a garantir que o código funcione como esperado e previnem regressões.

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

Verdadeiro ou falso: O uso excessivo de comentários é uma boa prática na programação.

A

Falso.

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

O que é um ‘design pattern’?

A

Um design pattern é uma solução reutilizável para um problema comum de design em programação.

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

Qual é a diferença entre acoplamento e coesão?

A

Acoplamento refere-se ao grau de dependência entre módulos, enquanto coesão refere-se ao grau em que os elementos de um módulo pertencem juntos.

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

O que significa ‘KISS’ na programação?

A

KISS significa ‘Keep It Simple, Stupid’ e se refere à prática de manter soluções simples.

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

Complete a frase: O princípio DRY significa ________.

A

Don’t Repeat Yourself.

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

Verdadeiro ou falso: A documentação deve ser mantida atualizada para refletir as mudanças no código.

18
Q

Qual é uma prática recomendada ao lidar com erros no código?

A

Implementar tratamento de erros adequado e fornecer mensagens de erro claras.

19
Q

O que é ‘code smell’?

A

Code smell é um termo que descreve possíveis problemas no código que podem indicar a necessidade de refatoração.

20
Q

Verdadeiro ou falso: A simplicidade é um dos princípios fundamentais do código limpo.

21
Q

Qual é o objetivo do uso de padrões de nomenclatura consistentes?

A

Facilitar a compreensão e a manutenção do código por outros desenvolvedores.

22
Q

Complete a frase: O princípio YAGNI significa ________.

A

You Aren’t Gonna Need It.

23
Q

O que é um ‘mock’ em testes de software?

A

Um mock é um objeto simulado que imita o comportamento de objetos reais em testes.

24
Q

Verdadeiro ou falso: As funções devem ser pequenas e fazer apenas uma coisa.

25
Qual é a vantagem de usar controle de versão?
Permite rastrear alterações no código e colaborar eficientemente com outros desenvolvedores.
26
O que o princípio de responsabilidade única implica para classes e funções?
Classes e funções devem ter uma única responsabilidade ou propósito.
27
Complete a frase: O princípio de Inversão de Dependência sugere que devemos depender de ________ em vez de ________.
abstrações; implementações.
28
Qual é a relação entre código limpo e produtividade?
Código limpo aumenta a produtividade, pois facilita a manutenção e a compreensão do código.
29
Verdadeiro ou falso: O código deve ser escrito apenas para o desenvolvedor original.
Falso.
30
Qual é a função de um repositório de código?
Armazenar e gerenciar o código-fonte de um projeto, permitindo controle de versão e colaboração.
31
O que é a técnica de 'pair programming'?
Pair programming é uma prática onde dois desenvolvedores trabalham juntos em uma única estação de trabalho.
32
Complete a frase: O princípio de Segregação de Interfaces promove a criação de ________ específicas.
interfaces.
33
Qual é uma prática recomendada para o uso de condicionais?
Minimizar o uso de condicionais aninhados e preferir o uso de polimorfismo.
34
Verdadeiro ou falso: A complexidade é uma característica desejável em código.
Falso.
35
Qual é a importância de seguir convenções de estilo de código?
Ajuda a manter a consistência e a legibilidade do código entre diferentes desenvolvedores.
36
Complete a frase: O princípio Open/Closed é fundamental para ________ o software.
extensibilidade.
37
O que é 'test-driven development' (TDD)?
TDD é uma abordagem de desenvolvimento onde os testes são escritos antes do código funcional.
38
Verdadeiro ou falso: O código deve ser otimizado antes de ser escrito.
Falso.
39
Qual é uma técnica para melhorar a legibilidade do código?
Dividir o código em funções e módulos menores.
40
O que é 'continuous integration' (CI)?
CI é uma prática de desenvolvimento onde o código é integrado e testado continuamente.