Skip to content

Commit f0a9229

Browse files
committed
declarativo-imperativo
1 parent ede509d commit f0a9229

File tree

5 files changed

+2646
-1362
lines changed

5 files changed

+2646
-1362
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
slug: declarativo-imperativo
3+
title: Imperativo X Declarativo
4+
authors: rubensdemelo
5+
tags: [flutter, imperativo, declarativo]
6+
---
7+
8+
:::info Resumão:
9+
Imperativa: especificar como resolver um problema; controle detalhado.
10+
11+
Declarativa: concentra-se no que o código deve realizar; concentrar no resultado.
12+
13+
Essas duas abordagens são comumente usadas na programação e é importante entender suas diferenças para compreender melhor o uso [declarativo pelo Flutter](https://docs.flutter.dev/get-started/flutter-for/declarative).
14+
15+
Compreender a diferença, facilita o entendimento em como o Flutter constroi interfaces.
16+
:::
17+
18+
19+
20+
## Imperativa
21+
22+
É um processo passo a passo que diz ao computador o que fazer e como fazê-lo. Em outras palavras, é um conjunto de instruções que o computador segue para alcançar o resultado desejado.
23+
24+
A programação imperativa envolve escrever código que especifique exatamente como resolver um problema. Ela é baseada no controle do fluxo de execução usando declarações como loops, condicionais e variáveis. Lembre-se: **passo-a-passo**.
25+
26+
Adequada para situações em que você precisa ter mais controle sobre o fluxo do programa. Isso significa que se você precisa fazer algo muito específico e precisa ter certeza de que é feito de uma maneira determinada, então a abordagem imperativa pode ser a melhor.
27+
28+
## Declarativa
29+
30+
É baseada em descrever o resultado desejado sem especificar como alcançá-lo. Em vez de escrever código que especifica como resolver um problema, a programação declarativa se concentra no que o código deve realizar.
31+
32+
A programação declarativa envolve escrever código que descreve o problema e o resultado desejado, sem especificar como chegar lá. É baseado na definição de regras e relacionamentos entre elementos. Lembre-se: **resultado-desejado**.
33+
34+
Adequada para situações em que você deseja descrever o que deseja alcançar, sem se preocupar em como chegar lá. Isso significa que se você deseja se concentrar no resultado, e não no processo.
35+
36+
Ao trabalhar com interfaces de usuário, usar a abordagem declarativa para garantir que a interface pareça e se comporte exatamente como você deseja, sem se preocupar com a forma como é implementada.
37+
38+
## Na prática
39+
40+
SQL: Declarativo. Declaramos o resultado ao banco de dados: inserir, atualizar, excluir, consultar... mas nós não o instruimos em como ele deve executar tais operações.
41+
42+
Algorítimo: Imperativo. Imposto a cada linha de código como ele deve se comportar. Declarar variável, computar valores, avaliar expressões. Estamos instruindo exatamente o comportamento que queremos que o programa tenha.
43+
44+
## Flutter
45+
46+
Como mecionado anteriormente, o Flutter utiliza a abordagem declarativa: **resultado**.
47+
48+
Ao construi interfaces com ele, declaramos algo como: 1 imagem, 2 campos de texto e um botão.
49+
50+
E o framework se encarrega de todo o resto, sem se preocupar com a implementação de cada elemento.
51+
52+
Com isso, os desenvolvedores podem se concentrar no que desejam alcançar e deixar que o framework se encarregue de como implementá-lo.
53+
54+
#### Até breve

docs/fundamentos/declarativo.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,8 @@ Nossa interface, reflete o estado da nossa aplicação. Sempre que o estado da a
1515
<iframe width="560" height="315" src="https://www.youtube.com/embed/tpvCrr1HCxU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
1616
</div>
1717

18-
Jetpack Compose e Swift UI, os novos kits de desenvolvimento para Android e iOS, respectivamente, utilizam esta abordagem.
18+
:::tip Jetpack Compose e Swift UI
19+
20+
Os novos kits de desenvolvimento para Android e iOS, respectivamente, utilizam esta abordagem.
21+
22+
:::

0 commit comments

Comments
 (0)