Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Desenvolvendo uma aplicacao Full Javascript

336 views

Published on

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 .

Published in: Software
  • Be the first to comment

Desenvolvendo uma aplicacao Full Javascript

  1. 1. Desenvolvendo uma aplicação Full Javascript
  2. 2. DENIS VIEIRA DJANILSON ALVES JOÃO VICTOR BERTA
  3. 3. •SINGLE-PAGE APPLICATION •BANCO DE DADOS NOSQL •ARQUITETURA MVC •API RESTFUL •WEBSOCKET
  4. 4. 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).
  5. 5. 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).
  6. 6. Memcached/ Key Value-Store MongoDb Join Transações Relational SGBD
  7. 7. • Desenvolvido em C++ • Interface em JS • Orientado a documentos JSON • Genérico • Schemaless • Replica • Sharding
  8. 8. 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
  9. 9. •Event Driven; •Single-Threaded; •Event-loop; •Asynchronous I/O.
  10. 10. EVENT DRIVEN
  11. 11. Single-Threaded / Event-loop
  12. 12. Asynchronous I/O • I/O era o gargalo das aplicações • Não espera as operações de I/O acabarem para continuar executando.
  13. 13. Asynchronous I/O Callback Listeners
  14. 14. • Gerenciador de Pacotes • Repositório
  15. 15. WEB SERVER
  16. 16. • 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.
  17. 17. 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.
  18. 18. Automatize seu Workflow
  19. 19. 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!
  20. 20. Instalação
  21. 21. Gulpfile.js • Importe o gulp e os plugins associados às tarefas que deseja automatizar
  22. 22. 5 fatos importantes para criar e executar suas tarefas do gulpfile.js
  23. 23. gulp.task(glob, [deps], fn) • Define uma tarefa com dependências opcionais
  24. 24. Executando o gulpfile.js • Default, engloba todas as outras tarefas. Será executada ao entrar Gulp na linha de comando sem parâmetros adicionais.
  25. 25. Gulpfile watch • Watch, mantem o gulp rodando e esperando por eventos para tratá-los
  26. 26. Pré-Processadores CSS
  27. 27. 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.
  28. 28. 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
  29. 29. Don’t Repeat Yourself (DRY CSS) • Mude a cor de uma variável e o compilador faz o resto.
  30. 30. CSS Aninhado
  31. 31. MIXINS
  32. 32. Funções
  33. 33. @Import “fileName”;
  34. 34. SASS + GULP
  35. 35. 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
  36. 36. 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!
  37. 37. Utilização
  38. 38. POWERS http://curran.github.io/screencasts/introToAngular/exampleViewer
  39. 39. DEMONSTRAÇÃO MVP https://gitlab.com/fromdenisvieira/projetointegrador
  40. 40. Gerenciamento do Projeto Controle de Versão Hospedagem da API
  41. 41. O CHECKIN
  42. 42. HORÁRIO
  43. 43. O CHAT
  44. 44. • 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
  45. 45. 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/ •
  46. 46. 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
  47. 47. 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
  48. 48. OBRIGADO !

×