Arquitetura de Software: O conceito que parte do Bloco de notas!
@WellsSA
Wellington S. Almeida
- TS Software Developer at @Intelligence Bureau
- Designer?
-
Speaker? @icarcal - Melhor portfólio \o/ @https://wellsadev.com
@WellsSA
@WellsSA
Antes de tudo
Feedbacks! \o/
@WellsSA
Então por quê não aproveitar isso?
@WellsSA
Agora com exemplos!
Resumindo:
@WellsSA
-
Lidar com o desconhecido
- Nem sempre você vai saber de tudo
-
E eis o ponto!!
- Separar problemas grandes
- Facilita o foco
Como assim foco?
@WellsSA
- We are humans
Temos limites!
@WellsSA
- A parte biológica importa
Existem técnicas!
@WellsSA
- Já diziam os sábios do SCRUM
E eis que chega nossa área <3
@WellsSA
- E é nisso que se baseiam os Paradigmas de programação
Agora vem o segredo:
Código não importa!*
*No geral
@WellsSA
Mas calma lá!
Antes de vocês usarem o slide passado como desculpa pra fazer gambiarras...
Vamos às explicações!
@WellsSA
Vamos parar pra pensar
@WellsSA
Farmácia
Padaria
Oooou seja:
@WellsSA
No fundo o código é o mesmo
+
O que muda é o quê você faz com ele!
=
O que importa é a idéia!
E como ninguém pensou isso antes?
@WellsSA
E a resposta é: pensaram!
@WellsSA
Nos tempos em que o Chicão era Chiquinho...
@WellsSA
Declaração
Uso
Programação estruturada
Mas pera lá...
@WellsSA
- Se código não é tão importante...
- Precisamos dar um jeito de organizar a informação que é relevante
- nossa regra de negócio
Orientação a Objetos! \o/
@WellsSA
[
int,
String,
int
]
Array/Structure
{
nome,
preço,
estoque
}
new Produto();
Informação relevante juntinha
@WellsSA
Software
Software
Software
Software
Pacotinho
Pacotinho
Pacotinho
Maaaaais pra frente...
@WellsSA
"Ainda tem muito código aqui"
"Podiamos focar no que realmente importa "
"separar em funções e focar em o que ela faz, não em como ela faz"
Programação funcional
@WellsSA
....................................................................................................
----------------------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++
doThis();
doThat();
justDoIt();
Antes
Depois
doThis() {
return ................................ ...........................................;
}
História pra outro dia!
@WellsSA
...
...
Beleza! Convenci vocês que código não importa?
Então de volta ao mundo das idéias!
@WellsSA
O que um desenvolvedor faz?
Somos
entrada, processamento ou saída?
@WellsSA
Que tal uma outra perspectiva?
Um médico:
✓ Recebe os sintomas
✓ Analisa com base no que estudou
✓Dá um diagnóstico
@WellsSA
Que tal uma outra perspectiva?
Um artista gráfico:
✓ Recebe as especificações
✓ Pensa em algo com base no que estudou
✓Retorna uma série de sketches
@WellsSA
Que tal uma outra perspectiva?
Um arquiteto/engenheiro:
✓ Preciso mesmo dar esse exemplo?
✓ Acho que vocês já sacaram, né?
✓É exatamente isso!
@WellsSA
Notaram algum padrão?
As profissões que mais dão dinheiro
São as que fazem uso do que você tem de mais importante:
Seu cérebro!
Nós somos o processamento!
@WellsSA
Então adivinhem?
Programar é um processo criativo!
Você precisa pensar!
@WellsSA
Pensar é o principal!
Lembram que a parte biológica importa?
Poisé!
Pensar cansa!
@WellsSA
Você precisa poupar seu cérebro!
Quanto mais responsabilidade você tirar dele, melhor!
COMO!?!?
@WellsSA
Você precisa poupar seu cérebro!
Lembram do começo da talk?
FOCO!!!!
@WellsSA
Antes de tudo
Foque no que realmente importa
Código??
@WellsSA
Idéia!!
- Organize as idéias!!
- O quê você quer fazer?
- Como você quer fazer?
@WellsSA
Sem uma linha de código!
E mais importante:
- Querem um exemplo??
@WellsSA
Que tal um programa que calcula média?
Qual a minha idéia?? O que eu tenho que fazer???
+ Receber as notas dos alunos e mostrar a média
E o que eu preciso fazer, em etapas, pra isso acontecer??
# Receber os valores
e depois??
# Calcular a média
e depois??
# Mostrar isso pro usuário
- Então temos...
@WellsSA
Resumidamente
+ Receber as notas dos alunos e mostrar a média
# Receber os valores
# Calcular a média
# Mostrar isso pro usuário
- Agora temos uma visão geral
@WellsSA
E podemos elaborar um pouco mais
+ Receber as notas dos alunos e mostrar a média
# Receber os valores
# Calcular a média
- (soma das entradas) dividido por (quantidade de entradas)
- fórmula: (entrada + entrada) / quantidadeDeEntradas
- ex.: (10 + 5) / 2
# Mostrar isso pro usuário
Por exemplo:
- E agora podemos entender melhor o cenário
@WellsSA
+ Receber as notas dos alunos e mostrar a média
# Receber os valores
- 2 notas (de 0 a 10)
# Calcular a média
- (soma das entradas) dividido por (quantidade de entradas)
- fórmula: (entrada + entrada) / quantidadeDeEntradas
- ex.: (10 + 5) / 2
# Mostrar isso pro usuário
Quantos valores vamos receber?
1? 2? 3? vários?
- E agora pensar um pouco mais em como deve ser o resultado
@WellsSA
+ Receber as notas dos alunos e mostrar a média
# Receber os valores
- 2 notas (de 0 a 10)
# Calcular a média
- (soma das entradas) dividido por (quantidade de entradas)
- fórmula: (entrada + entrada) / quantidadeDeEntradas
- ex.: (10 + 5) / 2
# Mostrar isso pro usuário
- Mostrar no console
Como vamos mostrar isso pro usuário?
Console? Página web?
- Agora eu pergunto:
@WellsSA
Em qual linguagem fizemos isso?
Nenhuma!
Porque
O código
Não
Importa!
- Agora que já mapeamos o problema
@WellsSA
Podemos pensar em qual é o melhor jeito de fazer isso
Não estamos presos à tecnologia nenhuma!
E focar em cada uma dessas etapas
- Vocês concordam que...
@WellsSA
#Receber valores
Nós sabemos como procurar a informação em etapas!
Google:
- Como receber valores em Java?
- Como receber valores em Python?
- Como receber valores em NodeJS?
- Ou seja:
@WellsSA
Temos um guia de como fazer o projeto
Nós podemos aprender em etapas cada parte do projeto!
Isso nos possibilita descobrir o que precisamos para fazer o projeto em etapas
testar o que estamos fazendo em etapas para fazer o projeto
- Fez? Testou? Funcionou? Próximo!
@WellsSA
- Não sei receber entradas do usuário em python
- Procurei no google, testei, aprendi, tá e agora?
Você tem um guia preparado e já pensou na próxima etapa!
- Não importa o quanto seja difícil essa etapa, nem quanto tempo você passou focado nisso
- A próxima etapa!
@WellsSA
- Só checar o bloco de notas!
- #calcular a média
Seu cérebro agradece!
- Agora, senhoras e senhores
@WellsSA
Vocês aprenderam a aprender!
Mas não só isso!
- Lembram do nosso guia?
@WellsSA
+ Receber as notas dos alunos e mostrar a média
# Receber os valores
- 2 notas (de 0 a 10)
# Calcular a média
- (soma das entradas) dividido por (quantidade de entradas)
- fórmula: (entrada + entrada) / quantidadeDeEntradas
- ex.: (10 + 5) / 2
# Mostrar isso pro usuário
- Mostrar no console
Aquele que foi feito em nenhuma linguagem?
- Agora vocês estão livres pra pensar!!
@WellsSA
- Eu tenho que mostrar a média no console:
- qual a melhor linguagem/tecnologia pra mostrar algo no console?
-
Eu tenho que receber 2 valores:
- qual a melhor linguagem/tecnologia pra receber 2 valores? Ou, de repente, múltiplos valores?
- Vocês percebem o poder disso!?
@WellsSA
Isso é muito mais do que simplesmente código
Programação é pensar!
E tudo que vocês precisam é de um bloco de notas!
@WellsSA
Obrigado!
@WellsSA
Sejam bem-vindos à Matrix!
Wellington S. Almeida
-
Slides:
https://slides.com/WellsSA - Código: https://github.com/WellsSA
- Contatos:
https://wellsadev.com/
@WellsSA
Acharam que tinha acabado!?
Essa foi só a primeira parte!!
Vamos falar de pessoas!!!
@WellsSA
Sempre que falamos de pensar
Com certeza você pode sair por aí e conhecer pessoas que vão te falar de coisas e formas de pensar que você nunca nem tinha imaginado!
@WellsSA
Então participem de comunidades! Vão em eventos!
-
Google
Google Developers Group -
Facebook
Facebook Developer Circles -
Microsoft
Microsoft InsidersDevTour -
IBM
Bluetalks/Bluehack -
Oracle
Oracle Openworld
@WellsSA
-
Comunidades! <3
NodeBR
NerdZão
NerdGirlz
FlutterNation
-
Eventos! <3
The Developers Conference
ABCDev
E pra finalizar...
Uma história engraçada sobre tudo que acabei de contar
@WellsSA
Agooooora
sim!
@WellsSA
Obrigado!
@WellsSA
Aceito Feedbacks! \o/
@WellsSA
Wellington S. Almeida
-
Slides:
https://slides.com/WellsSA - Código: https://github.com/WellsSA
- Contatos:
https://wellsadev.com/
@WellsSA
Arquitetura de Software: O conceito que parte do bloco de notas
By Wellington Almeida
Arquitetura de Software: O conceito que parte do bloco de notas
- 85