Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Desenvolvendo uma aplicação Full Javascript

Desenvolvendo uma aplicação Full Javascript

Palestra ministrada na Semana de Formação Geral em Informática do curso de Sistemas de Informação do IFAL (Instituto Federal de Alagoas) abordando o famoso MEAN - MongoDB, Express, AngularJs, Node.js e outras tecnologias úteis que estão nos proporcionando desenvolver sistemas inteiros usando apenas JavaScript. Aprenda o que cada tecnologia faz e como integrá-las a um ambiente automatizado de desenvolvimento .

Palestra feita por mim (Denis Vieira) , Djanilson Alves e João Victor Berta, relatando uma experiência de desenvolvimento que tivemos e passando um pouco do conhecimento de algumas tecnologias que utilizamos .

Denis Vieira

August 12, 2015
Tweet

More Decks by Denis Vieira

Other Decks in Programming

Transcript

  1. NoSQL ( Non Relational DB) • Bancos de dados que

    não utilizam o mesmo esquema de tabelas que os SGBDs comuns; • Altamente escaláveis; • Tipos: Documentos(MongoDb), Chave- Valor(Redis), Grafos(Neoj4).
  2. COMPARAÇÃO SQL • Armazena os dados no formato de tabelas,

    em colunas e linhas; • Realiza Joins entre as Diferentes tabelas; • Utiliza os princípios ACID; • Possui o controle de transações. NOSQL • Armazena os dados em diversos formatos a depender do objetivo; • Não possui estrutura pré-definida; • Escalabilidade horizontal(Sharding).
  3. • Desenvolvido em C++ • Interface em JS • Orientado

    a documentos JSON • Genérico • Schemaless • Replica • Sharding
  4. Node.js is a platform built on Google’s V8 JavaScript engine

    for easily building fast scalable network applicatioons. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, data- intensive real-time applications that run across distributed devices
  5. Asynchronous I/O • I/O era o gargalo das aplicações •

    Não espera as operações de I/O acabarem para continuar executando.
  6. • Utilizado para aplicação que necessitam de comunicação em tempo

    real; • Abstrai a complexidade dos WebSockets; • Fornece uma API simples para a aplicação cliente se comunicar.
  7. PROS/CONTRAS PROS • Aplicação em tempo real; • Chat; •

    Aplicação Web; • Banco de dados não relacionais; • Data streaming; CONTRAS • Cpu intensive; • Necessidade de utilizar bancos relacionais.
  8. Por que usar GULP ? • Eficiente • Gulp usa

    o poder de streams do NodeJs, o que permite builds muitos mais rápidos. • Fácil de usar • Código para definir as configuração, o Gulp mantém as coisas simples e faz tarefas complexas gerenciável. • Fácil de aprender • Com uma API mínima, aprende-se a trabalhar com o Gulp quase que na hora!
  9. Executando o gulpfile.js • Default, engloba todas as outras tarefas.

    Será executada ao entrar Gulp na linha de comando sem parâmetros adicionais.
  10. Pré-Processadores CSS • Um pré-processador é um programa que recebe

    texto e efetua conversões léxicas nele. • • As conversões podem incluir substituição de macros, inclusão condicional e inclusão de outros ficheiros.
  11. Premissas • Syntactically Awesome Style Sheets • (Folhas de estilo

    sintaticamente incríveis) • Don’t Repeat Yourself (DRY CSS) • CSS 'componentizado' Features • Variáveis • Mixins • Operacionais • Condicionais • loops
  12. Don’t Repeat Yourself (DRY CSS) • Mude a cor de

    uma variável e o compilador faz o resto.
  13. Estrutura de arquivos Componetizando: Pra cada projeto uma public_html diferente

    mas a mesma SCSS. No geral o que mais muda é o diretório pages
  14. Por que usar ? • Data Binding de 2 vias

    • Separação Lógica e Visão • Testabilidade • Componentização • Filtros, ordenação, etc. • Extensa documentação e components de terceiros • SPA, Single Page Application • Comunidade Ativa • Mantenedor: Google!
  15. • A Complete Guide to MEAN Stack : • https://github.com/ericdouglas/MEAN-

    Learning • • Get Started : https://hackhands.com/how- to-get-started-on-the-mean-stack/ • • Mastering MEAN : • https://masteringmean.com/ • • Palestra Be Mean( Jean Carlo “Suissa” ): http://www.infoq.com/br/presentations/be- mean#downloadPdf
  16. Guia MongoDB • Mongo Db - https://www.mongodb.com/ • NoSql /

    Non Relational DB : https://www.mongodb.com/nosql-explained • Curso Gratuito : https://university.mongodb.com/ • NPM e Modulos - https://www.npmjs.com/ • Express - http://expressjs.com/ •
  17. Guia SASS • Repositorio do Gulp no github • https://github.com/gulpjs

    • Travismaynard - Get started with Gulp • https://travismaynard.com/writing/getting- started-with-gulp • Repositório do Sass no github • https://github.com/sass/sass • Sass guide • http://sass-lang.com/guide
  18. Guia AngularJS • Aprenda AngularJS com estes 5 Exemplos Práticos:

    - http://javascriptbrasil.com/2013/10/23/aprenda-angularjs-com-estes-5-exemplos- praticos/ • Guia Definitivo para se aprender AngularJS em um dia: - http://javascriptbrasil.com/2013/10/18/guia-definitivo-para-aprender-angularjs-em- um-dia/ • Tutorial de um CRUD Básico: http://www.youtube.com/watch?v=iCQ3qic_nGg • Lista de muitos e muitos recursos, vídeos e tutoriais: https://github.com/jmcunningham/AngularJS-Learning • Tutorial Oficial do AngularJS: http://docs.angularjs.org/tutorial • AngularJS Guide: http://docs.angularjs.org/guide/overview • Diversos tutoriais de varias features do AngularJS: https://egghead.io/technologies/angularjs • Design Patterns and Best Practices : http://trochette.github.io/Angular-Design- Patterns-Best-Practices/#/intro