SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Precisamos falar sobre
MERN Stack
Prof. Sidney Sousa
Sumário
 A vida “pós curso” de desenvolvimento de sistemas
 O macarrão de frameworks e afins
 Full Stack vs Cliente/Servidor
 Porquê MERN Stack? JavaScript!
 MongoDB
 Node.js e Express: o casal que você shipa!
 O React do tio Zuck!
 Exemplo prático
 MERN x MEAN x MEVN
Mas primeiro... quem sou eu!
 Dev há 15 anos
 Ex Pinuts, DigithoBrasil, CASSEMS, FCG
 Professor de Desenvolvimento Web (e
dev!) no IFMS campus Aquidauana
 Um dos professores responsáveis pelo
NUDES-AQ
A vida “pós curso” de
desenvolvimento de sistemas
Linguagens (Sopa de letrinhas!)
 HTML5
 CSS3
 JavaScript
 Pug
 EJS
 JSF
 Thymeleaf
 Sass
 Compass
 JSX
 etc...
 PHP
 Java
 C#
 JavaScript
 Python
 Ruby
 Rust
 Groovy
 Scala
 etc...
 SQL
 JavaScript/JSON
 XML
 CQL
 Cypher
 etc...
Front end Back end Banco de dados
Full Stack
vs
Cliente/Servidor
Linguagem de front end
Linguagem de back end
Linguagem de back end
+ banco de dados
Vantagens da arquitetura cliente/servidor
 Gerenciamento apropriado dos dados e lógica de negócios
 Melhor organização dos times de desenvolvimento
 Reutilização de serviços (endpoints)
 Maior flexibilidade
 Manutenção mais fácil
 Interoperabilidade
Porquê MERN Stack?
JavaScript!
Linguagens (Sopa de letrinhas!)
 HTML5
 CSS3
 JavaScript
 Pug
 EJS
 JSF
 Thymeleaf
 Sass
 Compass
 JSX
 etc...
 PHP
 Java
 C#
 JavaScript
 Python
 Ruby
 Rust
 Groovy
 Scala
 etc...
 SQL
 JavaScript/JSON
 XML
 CQL
 Cypher
 etc...
Front end Back end Banco de dados
MongoDB
MongoDB in a nutshell
 BD multiplataforma orientado a documentos
 Documento: bloco de dados JSON
 JavaScript como linguagem de consulta
 JSON como linguagem de modelagem de dados
> use loja
switched to db loja
> db.produtos.insert({"descricao": "Extrato de tomate", "categoria": "Alimento"})
WriteResult({ "nInserted" : 1 })
> db.produtos.find()
{ "_id" : ObjectId("5cc34103a336fd300973277d"), "descricao" : "Extrato de
tomate", "categoria" : "Alimento" }
Node.js e Express:
o casal que você shipa!
Node.js
 Permite JavaScript do lado servidor
 Multiplataforma
 Implementado sobre o V8, a engine
de JavaScript do browser Chrome
 Tem como principal proposta
permitir a implementação de apps
web escaláveis
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain’);
res.end('Fala, rapaziada!');
});
server.listen(port, hostname, () => {
console.log(`Servidor rodando em http://${hostname}:${port}/`);
});
Express
 Framework web para o Node.js
 Em poucas palavras, deixa o Node.js mais prático e robusto, mas
sem ofuscar tudo o que o Node.js tem de melhor
const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Fala, rapaziada!'));
const porta = 3000;
app.listen(porta, () => {
console.log('Servidor rodando na porta ${port}');
});
O React do tio Zuck!
React (ou ReactJS)
 Definido pelos criadores como uma biblioteca JavaScript para criar
interfaces com o usuário
 Criado pela Facebook Inc. e mantido pela mesma empresa e
algumas outras empresas e desenvolvedores
 Baseado em componentes
 Cada componente possui um estado e um conjunto de
comportamentos
 Permite o reuso de componentes (tags customizadas)
Exemplo prático
https://github.com/sidneyroberto/palestra-mern
MERN x MEAN x MEVN
That’s all, folks!
Links interessantes:
 https://www.w3schools.com/nodejs/default.asp
 https://www.w3schools.com/js/default.asp
 https://www.w3schools.com/nodejs/nodejs_mongodb.asp
 https://expressjs.com/en/starter/installing.html
 https://reactjs.org/tutorial/tutorial.html
Contato: sidney.sousa@ifms.edu.br
sidneyroberto

Weitere ähnliche Inhalte

Was ist angesagt?

Gramática-Testão-ADJETIVOS-6º-Ano.pptx
Gramática-Testão-ADJETIVOS-6º-Ano.pptxGramática-Testão-ADJETIVOS-6º-Ano.pptx
Gramática-Testão-ADJETIVOS-6º-Ano.pptx
JuniorXavier22
 
Gráfico de Setores
Gráfico de SetoresGráfico de Setores
Gráfico de Setores
Isa124
 

Was ist angesagt? (20)

Preconceito racial
Preconceito racialPreconceito racial
Preconceito racial
 
Angulos
AngulosAngulos
Angulos
 
Dino preti
Dino pretiDino preti
Dino preti
 
Termos relacionado aos verbos
Termos relacionado aos verbosTermos relacionado aos verbos
Termos relacionado aos verbos
 
O surgimento do bairro asa branca na dcada de 1980 em boa vista-rr
O surgimento do bairro asa branca na dcada de 1980   em boa vista-rrO surgimento do bairro asa branca na dcada de 1980   em boa vista-rr
O surgimento do bairro asa branca na dcada de 1980 em boa vista-rr
 
Adjetivos
AdjetivosAdjetivos
Adjetivos
 
Variação linguística 1
Variação linguística 1Variação linguística 1
Variação linguística 1
 
Saepe 9º ano
Saepe 9º anoSaepe 9º ano
Saepe 9º ano
 
Funções do que, se e pronome relativo
Funções do que, se e pronome relativoFunções do que, se e pronome relativo
Funções do que, se e pronome relativo
 
Gramática-Testão-ADJETIVOS-6º-Ano.pptx
Gramática-Testão-ADJETIVOS-6º-Ano.pptxGramática-Testão-ADJETIVOS-6º-Ano.pptx
Gramática-Testão-ADJETIVOS-6º-Ano.pptx
 
Tráfego pago ou orgânico
Tráfego pago ou orgânicoTráfego pago ou orgânico
Tráfego pago ou orgânico
 
EXPRESSÕES NUMÉRICAS CONTENDO ADIÇÃO E SUBTRAÇÃO E AS DEMAIS OPERAÇÕES
EXPRESSÕES NUMÉRICAS CONTENDO ADIÇÃO E SUBTRAÇÃO E AS DEMAIS OPERAÇÕESEXPRESSÕES NUMÉRICAS CONTENDO ADIÇÃO E SUBTRAÇÃO E AS DEMAIS OPERAÇÕES
EXPRESSÕES NUMÉRICAS CONTENDO ADIÇÃO E SUBTRAÇÃO E AS DEMAIS OPERAÇÕES
 
Gráfico de Setores
Gráfico de SetoresGráfico de Setores
Gráfico de Setores
 
O preconceito
O preconceitoO preconceito
O preconceito
 
Artigo
ArtigoArtigo
Artigo
 
Gramática para concursos públicos
Gramática para concursos públicosGramática para concursos públicos
Gramática para concursos públicos
 
Racismo e Discriminação
Racismo e DiscriminaçãoRacismo e Discriminação
Racismo e Discriminação
 
Encontros vocálicos e consonantais
Encontros vocálicos e consonantaisEncontros vocálicos e consonantais
Encontros vocálicos e consonantais
 
Verbos
VerbosVerbos
Verbos
 
Preposição
PreposiçãoPreposição
Preposição
 

Ähnlich wie Precisamos falar sobre MERN stack

Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
Rodrigo Rodrigues
 
Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011
Henrique Gogó
 

Ähnlich wie Precisamos falar sobre MERN stack (20)

Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
Node.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizarNode.js: 5 razões para começar a utilizar
Node.js: 5 razões para começar a utilizar
 
Workshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + MongooseWorkshop Node.js + MongoDB + Mongoose
Workshop Node.js + MongoDB + Mongoose
 
Aplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.jsAplicações de tempo real com Meteor.js
Aplicações de tempo real com Meteor.js
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
Mini Curso Mashup Coreu
Mini Curso Mashup CoreuMini Curso Mashup Coreu
Mini Curso Mashup Coreu
 
PHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao FrameworkPHP e AJAX: do Request ao Framework
PHP e AJAX: do Request ao Framework
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Palestra Sobre REST
Palestra Sobre RESTPalestra Sobre REST
Palestra Sobre REST
 
Como trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cacheComo trabalhar com ajax, json e cache
Como trabalhar com ajax, json e cache
 
AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!AJAX?? Não!! Asynchronous Javascript and... JSON!!
AJAX?? Não!! Asynchronous Javascript and... JSON!!
 
JavaServer Faces
JavaServer FacesJavaServer Faces
JavaServer Faces
 
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRSAplicações Realtime em Android | Fisl 15 | GuMobileRS
Aplicações Realtime em Android | Fisl 15 | GuMobileRS
 
Navegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza BastosNavegadores por de baixo dos panos - Ana Luiza Bastos
Navegadores por de baixo dos panos - Ana Luiza Bastos
 
introdução a ajax
introdução a ajaxintrodução a ajax
introdução a ajax
 
Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011Conhecendo o CouchDB - TDC2011
Conhecendo o CouchDB - TDC2011
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Arquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/MackenzieArquitetura Web Desacoplada - FCI/Mackenzie
Arquitetura Web Desacoplada - FCI/Mackenzie
 
Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?Node.js - Devo adotar na minha empresa?
Node.js - Devo adotar na minha empresa?
 

Mehr von Sidney Roberto

Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
Sidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Sidney Roberto
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Sidney Roberto
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
Sidney Roberto
 

Mehr von Sidney Roberto (20)

Personagens negros na cultura nerd
Personagens negros na cultura nerdPersonagens negros na cultura nerd
Personagens negros na cultura nerd
 
Mantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDBMantendo os dados do seu app web offline com PouchDB
Mantendo os dados do seu app web offline com PouchDB
 
Regulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IVRegulamento da batalha campal do DCN IV
Regulamento da batalha campal do DCN IV
 
Regulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IVRegulamento dos concursos de cosplay e cospobre do DCN IV
Regulamento dos concursos de cosplay e cospobre do DCN IV
 
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQRegulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
Regulamento Cosplay e Cospobre - DCN 3 IFMS-AQ
 
Tecnologias e Mercado de Trabalho
Tecnologias e Mercado de TrabalhoTecnologias e Mercado de Trabalho
Tecnologias e Mercado de Trabalho
 
Introdução à Programação de Computadores com Python
Introdução à Programação de Computadores com PythonIntrodução à Programação de Computadores com Python
Introdução à Programação de Computadores com Python
 
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS AquidauanaPalestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
Palestra de boas vindas aos estudantes do curso TSI do IFMS Aquidauana
 
Web Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciênciaWeb Scraping: aplicações nos negócios e na ciência
Web Scraping: aplicações nos negócios e na ciência
 
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQRegulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
Regulamento do Concurso de Cosplay - Dia da Cultura Nerd IFMS-AQ
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Minha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiroMinha opinião sobre o sistema educacional de base brasileiro
Minha opinião sobre o sistema educacional de base brasileiro
 
Apostila - Linguagem de Programação I
Apostila - Linguagem de Programação IApostila - Linguagem de Programação I
Apostila - Linguagem de Programação I
 
Listas (parte 2 de 3)
Listas (parte 2 de 3)Listas (parte 2 de 3)
Listas (parte 2 de 3)
 
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
Vamos aprender algo diferente? Introdução à linguagem Python (parte 2)
 
Listas (parte 1)
Listas (parte 1)Listas (parte 1)
Listas (parte 1)
 
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
Vamos aprender algo diferente? Introdução à linguagem Python (aula 1)
 
Fatores Humanos
Fatores HumanosFatores Humanos
Fatores Humanos
 
Laços de Repetição
Laços de RepetiçãoLaços de Repetição
Laços de Repetição
 
Manipulação de Datas em Java
Manipulação de Datas em JavaManipulação de Datas em Java
Manipulação de Datas em Java
 

Kürzlich hochgeladen

Kürzlich hochgeladen (8)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

Precisamos falar sobre MERN stack

  • 1. Precisamos falar sobre MERN Stack Prof. Sidney Sousa
  • 2. Sumário  A vida “pós curso” de desenvolvimento de sistemas  O macarrão de frameworks e afins  Full Stack vs Cliente/Servidor  Porquê MERN Stack? JavaScript!  MongoDB  Node.js e Express: o casal que você shipa!  O React do tio Zuck!  Exemplo prático  MERN x MEAN x MEVN
  • 3. Mas primeiro... quem sou eu!  Dev há 15 anos  Ex Pinuts, DigithoBrasil, CASSEMS, FCG  Professor de Desenvolvimento Web (e dev!) no IFMS campus Aquidauana  Um dos professores responsáveis pelo NUDES-AQ
  • 4. A vida “pós curso” de desenvolvimento de sistemas
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Linguagens (Sopa de letrinhas!)  HTML5  CSS3  JavaScript  Pug  EJS  JSF  Thymeleaf  Sass  Compass  JSX  etc...  PHP  Java  C#  JavaScript  Python  Ruby  Rust  Groovy  Scala  etc...  SQL  JavaScript/JSON  XML  CQL  Cypher  etc... Front end Back end Banco de dados
  • 10.
  • 12.
  • 13. Linguagem de front end Linguagem de back end Linguagem de back end + banco de dados
  • 14.
  • 15. Vantagens da arquitetura cliente/servidor  Gerenciamento apropriado dos dados e lógica de negócios  Melhor organização dos times de desenvolvimento  Reutilização de serviços (endpoints)  Maior flexibilidade  Manutenção mais fácil  Interoperabilidade
  • 17. Linguagens (Sopa de letrinhas!)  HTML5  CSS3  JavaScript  Pug  EJS  JSF  Thymeleaf  Sass  Compass  JSX  etc...  PHP  Java  C#  JavaScript  Python  Ruby  Rust  Groovy  Scala  etc...  SQL  JavaScript/JSON  XML  CQL  Cypher  etc... Front end Back end Banco de dados
  • 19. MongoDB in a nutshell  BD multiplataforma orientado a documentos  Documento: bloco de dados JSON  JavaScript como linguagem de consulta  JSON como linguagem de modelagem de dados
  • 20. > use loja switched to db loja > db.produtos.insert({"descricao": "Extrato de tomate", "categoria": "Alimento"}) WriteResult({ "nInserted" : 1 }) > db.produtos.find() { "_id" : ObjectId("5cc34103a336fd300973277d"), "descricao" : "Extrato de tomate", "categoria" : "Alimento" }
  • 21. Node.js e Express: o casal que você shipa!
  • 22. Node.js  Permite JavaScript do lado servidor  Multiplataforma  Implementado sobre o V8, a engine de JavaScript do browser Chrome  Tem como principal proposta permitir a implementação de apps web escaláveis
  • 23. const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain’); res.end('Fala, rapaziada!'); }); server.listen(port, hostname, () => { console.log(`Servidor rodando em http://${hostname}:${port}/`); });
  • 24. Express  Framework web para o Node.js  Em poucas palavras, deixa o Node.js mais prático e robusto, mas sem ofuscar tudo o que o Node.js tem de melhor
  • 25. const express = require('express'); const app = express(); app.get('/', (req, res) => res.send('Fala, rapaziada!')); const porta = 3000; app.listen(porta, () => { console.log('Servidor rodando na porta ${port}'); });
  • 26. O React do tio Zuck!
  • 27. React (ou ReactJS)  Definido pelos criadores como uma biblioteca JavaScript para criar interfaces com o usuário  Criado pela Facebook Inc. e mantido pela mesma empresa e algumas outras empresas e desenvolvedores  Baseado em componentes  Cada componente possui um estado e um conjunto de comportamentos  Permite o reuso de componentes (tags customizadas)
  • 28.
  • 30. MERN x MEAN x MEVN
  • 31. That’s all, folks! Links interessantes:  https://www.w3schools.com/nodejs/default.asp  https://www.w3schools.com/js/default.asp  https://www.w3schools.com/nodejs/nodejs_mongodb.asp  https://expressjs.com/en/starter/installing.html  https://reactjs.org/tutorial/tutorial.html Contato: sidney.sousa@ifms.edu.br sidneyroberto