Design patterns Flashcards

1
Q

Como você explicaria os delegates para um novo desenvolvedor Swift?

A

Abordagem sugerida: o delegate permite que um objeto atue no lugar de outro, por exemplo, seu controlador de visualização pode atuar como fonte de dados para uma tabela. O padrão delegado é enorme no iOS, então tente escolher um exemplo pequeno e específico, como UITableViewDelegate do UIKit – algo que você pode dissecar da memória.

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

Você pode explicar o MVC e como ele é usado nas plataformas da Apple?

A

Abordagem sugerida: MVC é uma abordagem que defende a separação dos dados (modelo) da apresentação (visão), com as duas partes sendo gerenciadas por uma lógica separada (um controlador). Em teoria, essa separação deveria ser a mais clara possível, mas para ganhar pontos extras, você deve falar sobre como os controladores de visualização às vezes ficam inchados à medida que o código é mesclado em um grande blob.

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

Você pode explicar o MVVM e como ele pode ser usado nas plataformas da Apple?

A

Abordagem sugerida: comece com a definição simples de Modelo (seus dados), Visualização (seu layout) e Modelo de Visualização (uma maneira de armazenar o estado do seu aplicativo independentemente da UI), mas certifique-se de dedicar algum tempo ao partes um pouco mais nebulosas – para onde vai o código de rede, por exemplo? Este também é um bom lugar para abordar a importância das ligações para evitar muitos clichês, e isso provavelmente leva ao SwiftUI.

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

Como você explicaria a injeção de dependência para um desenvolvedor júnior?

A

Abordagem sugerida: A injeção de dependência é a prática de criar um objeto e informar com quais dados ele deve trabalhar, em vez de permitir que esse objeto consulte seu ambiente para encontrar esses dados por si mesmo. Embora isso vá contra o princípio de encapsulamento OOP, vale a pena falar sobre as vantagens – permite simular dados durante testes, por exemplo.

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

Como você explicaria a programação orientada a protocolo para um novo desenvolvedor Swift?

A

Abordagem sugerida: POP é uma palavra da moda em Swift, mas não se deixe levar pelo hype aqui: concentre-se em por que ele é diferente de OOP e quais benefícios você acha que ele traz. Você pode querer falar sobre arquiteturas horizontais versus verticais aqui – bases de código maiores provavelmente terão hierarquias de classes consideráveis – mas você também pode falar sobre como o POP é capaz de trabalhar com estruturas e enums, bem como com classes.

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

Que experiência você tem em programação funcional?

A

Abordagem sugerida: A melhor resposta, claro, é fornecer explicações detalhadas sobre o que você usou e onde, mas à medida que avança, certifique-se e fale sobre o que significa programação funcional - as funções devem ser tipos de primeira classe, você coloca ênfase em programação pura funções, e assim por diante.
Se você não sabe por onde começar, a resposta mais fácil é listar alguns pequenos detalhes: se você usou map(), compactMap(), flatMap(), reduzir(), filter() e assim por diante, isso é um bom lugar para começar.

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

Você pode explicar o KVO e como ele é usado nas plataformas da Apple?

A

Abordagem sugerida: KVO costumava ser útil no UIKit para observar alterações em valores que não possuem delegados úteis - você pode literalmente dizer “diga-me quando esse valor mudar”. Tente dar pelo menos um exemplo específico, como observar o progresso do carregamento da página em um WKWebView. Se você estiver usando exclusivamente o SwiftUI, é provável que tenha dificuldades aqui.

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

Você pode dar alguns exemplos de onde singletons podem ser uma boa ideia?

A

Abordagem sugerida: é muito improvável que você ingresse em uma empresa onde singletons são amplamente usados, então sinta-se à vontade para dizer que, de modo geral, singletons não são bons. Depois de desistir dessa condição, talvez mencione que a Apple os usa extensivamente – pensa como UIApplication, por exemplo, são projetados para existir apenas uma vez. Por fim, tente dar um exemplo novo, como a criação de um registrador para todo o aplicativo.
Para ganhar pontos extras, talvez compare e contraste o ambiente do SwiftUI.

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