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

Por que criar um front-end modular e escalável

Por que criar um front-end modular e escalável

Refletir a importância de perceber o quanto pode crescer sua aplicação e com isso você cria uma arquitetura modular e escalável para que outras equipes, ou até você mesmo, possam trabalhar de maneira organizada e sustentável.

Avatar for Candido Sales Gomes

Candido Sales Gomes

February 09, 2014
Tweet

More Decks by Candido Sales Gomes

Other Decks in Technology

Transcript

  1. ... Pois não se trata de um site simples, mas

    de uma aplicação complexa.
  2. Ao elaborar a arquitetura para a sua aplicação geral, é

    importante pensar no futuro O que pode mudar?
  3. • A aplicação possui partes reutilizáveis como blocos ou módulos?

    • Será possível retirar partes das funcionalidades da aplicação sem alterar significativamente o código? • Se eu trabalho com módulos, eles possuem baixo acoplamento? • Se partes específicas do aplicativo falharem, ele ainda pode funcionar?
  4. "O segredo para construir grandes aplicativos nunca é construir grandes

    aplicativos. Quebre suas aplicações em pequenos pedaços e então, montar essas peças testáveis ​​em sua grande aplicação“ Justin Meyer, autor JavaScriptMVC
  5. "A chave é reconhecer desde o início que você não

    tem ideia de como isso vai crescer. Quando você aceitar que você não sabe tudo, você começa a projetar o sistema defensivo. Você identifica as principais áreas que podem mudar, que muitas vezes é muito fácil quando você coloca um pouco de tempo para ele, por exemplo, você deve esperar que qualquer parte do aplicativo que se comunica com outro sistema provavelmente vai mudar, então você precisa abstrair. “ Nicholas Zakas, autor do livro JavaScript de alto desempenho
  6. Queremos uma arquitetura de baixo acoplamento com a funcionalidade dividido

    em módulos independentes, com idealmente sem dependências inter-módulos. Addy Osmani, Chrome Developer
  7. Aplicações com front-end de larga escala são aplicações não-triviais que

    requerem um esforço significante de manutenção por parte do desenvolvedor, onde organização, modularização, otimização e reutilização de código são cruciais. Eduardo Shiota, Front-end Engineer Booking.com
  8. Os módulos são uma parte integrante da arquitetura de qualquer

    aplicação robusta e são tipicamente peças de propósito único de um sistema maior, que são intercambiáveis.
  9. Só a modularidade permitirá separar as responsabilidades do seu código.

    Só a modularidade tornará possível expandir seu código com facilidade. Só a modularidade tornará possível a manutenção do seu codebase. Nando Vieira, HowToCode
  10. CSS Sass é o mais maduro, estável e poderoso linguagem

    de extensão de CSS profissional do mundo. Uma biblioteca de mixins simples e leve para Sass O mais avançado framework front-end responsivo do mundo.
  11. Framework de mixins para SASS... Não precisamos criar, já tem

    tudo que precisamos =) http://bourbon.io/
  12. Framework CSS e JS para criação de front-end responsivo, semântico

    e customizável. http://foundation.zurb.com/
  13. Settings: Variáveis globais; Base: tags html; Typography: @font-face; Layout: layout

    da interface ou layout comum das páginas (margin, padding, sizing); Helpers: Extends, funções, mixins, keyframe animations; Modules: Componentes de layout ou pedaços reutilizáveis; Vendor: Tudo que for de terceiros; Style.scss: Importar todos os arquivos SASS em um único;
  14. Executa tarefas para automatizar processos repetitivos, agilizando seu workflow As

    tarefas como validar, concatenar, minificar, testar já são encontrados em vários plugins que automatizam pra você http://gruntjs.com/plugins
  15. JS Isso torna as coisas como travessia documento HTML e

    manipulação, manipulação de eventos, animação e Ajax muito mais simples com uma API fácil de usar, que funciona através de uma infinidade de navegadores O mais avançado framework front-end responsivo do mundo
  16. Pense no seu código como uma série de blocos que

    precisam encaixar uns nos outros. Nando Vieira, HowToCode
  17. Performance jQuery jQuery Proven Performance Tips And Tricks (Slides) by

    Addy Osmani Your jQuery: Now With 67% Less Suck by Scott Kosman 10 Ways to Instantly Increase Your jQuery Performance
  18. Dicas 1. JavaScript baixo acoplamento > Portável 2. Responsabilidade única

    3. Aberto para extensão, mas fechado para modificação
  19. Quando você deixa de perguntar apenas “como vou fazer isso”

    e passa a perguntar “como vou fazer isso da melhor maneira”...
  20. Referências Arquitetura de Front-end em Aplicações de Larga Escala by

    Eduardo Shiota Yasuda Desafios do Desenvolvimento de Front-end em um e-commerce by Eduardo Shiota Yasuda MVCSS is a Sass-based CSS architecture for creating predictable and maintainable application style Nicholas Zakas: Scalable JavaScript Application Architecture Organizando o JavaScript - Nando Vieira - Webday 2013 Patterns For Large-Scale JavaScript Application Architecture by Addy Osmani Princípios para escrever CSS de forma consistente e idiomática Princípios para escrever JavaScript de forma Consistente e Idiomática Shubhie Panicker: CSS module system in Google+ -- JSConf EU 2013 The jQuery Essentials by Addy Osmani