• Optimizing Performance in Ruby on Rails Applications with GraphQL Layer

  • GraphQL

    GraphQL é uma linguagem de consulta criada pelo Facebook em 2012 e lançada publicamente em 2015. É considerada uma alternativa para arquiteturas REST, e uma tentativa de unificar um padrão de consulta e disponibilização de dados por APIs web, independentemente da linguagem de programação utilizada no frontend ou no backend. Neste workshop, será apresentado o conceito de GraphQL, sua comparação com APIs REST e implementações no frontend e no backend para diferentes linguagens.

  • +MVC

  • Docker em 10 minutos

    Lightning talk de Docker

  • GraphQL on Rails

    https://www.meetup.com/Mexico-on-Rails/events/261293133/

  • Arquitetura de microserviços com Ruby On Rails e multiclientes com React.js

    Durante muito tempo, as arquiteturas monolíticas dominaram as soluções de software, com grandes softwares responsáveis por muitas tarefas, por fluxos completos e por diversas camadas, de servidor a cliente. A tendência era que tais softwares possuíssem bases de código cada dia maiores, mais difíceis de manter, de testar e de escalar. A arquitetura de microserviços surgiu nos últimos anos favorecendo componentes de software mais enxutos, responsáveis por tarefas específicas no contexto de uma aplicação distribuída, em que a comunicação entre estes ocorre através de chamadas de API via HTTP. Do mesmo modo, separou-se a camada do cliente da camada do servidor, cuja comunicação também ocorre via chamadas de API. O objetivo desta palestra é apresentar uma arquitetura deste tipo que está em produção. O Check, software livre para verificação de fake news, desenvolvido desde 2011 pelo Meedan, empresa para a qual os autores trabalham, segue esta arquitetura desde 2016 compreendendo dois microserviços em Ruby On Rails (uma API REST e uma API com GraphQL) e múltiplos clientes de React.js (cliente web, extensão de navegador, aplicativo Android (em React Native) e um bot para a plataforma de comunicação Slack). Será apresentada a arquitetura do Check, explicando o papel de seus componentes e os detalhes das tecnologias envolvidas.

  • Using GraphQL and Relay for hybrid Ruby on Rails applications

    http://www.rubyfuza.org/

  • Aplicações client-side híbridas com React.js e React Native

    O objetivo desta palestra é mostrar como implementar aplicações JavaScript utilizando React.js e React Native que possam se apresentar como extensões de navegador, aplicações móveis ou aplicações web convencionais. Mais em http://rec.jsday.com.br/speakers/.

  • Using GraphQL and Relay for hybrid Ruby on Rails applications

    Today, users have many ways to access an application. It can be an Android app, an iOS app, a web app or even a browser extension. Writing different source codes for different platforms, and maintain and test them, is a challenge that becomes highly costly and unfeasible in many cases. For a long time, people dreamed about a technology that allowed a developer to write only one code that could be compiled into different platforms. Cordova / Ionic seemed to be a way to, at least, allow hybrid applications between web, iOS and Android; but, since it was not based on native code, the applications based on those technologies suffered with performance issues. Regarding performance, not only the frontend has issues with that, but also the backend. Using polling for auto-refresh and no data caching on the client side can lead to poor performance on the server side too. Recently, Facebook open sourced React.js and React Native, JavaScript-based technologies but that brought a new paradigm to hybrid applications by compiling to native code and by taking care of the application state, which led to better performance. Besides that, Facebook also open sourced GraphQL (a declarative language to request data and that returns only what the client asked for) and Relay (another JavaScript-based technology that makes GraphQL consuming easy and that automatically handles pagination, caching and subscriptions). In this talk, the author will show how to add a GraphQL layer to an existing Ruby On Rails application, that is able to expose part of the data model through this interface, and how to build a client side application based on React. React Native and Relay that consumes this information and that works in different platforms (iOS, Android, Google Chrome, web) but that shares the same source code among them. Regarding the examples, two frameworks will be used. Keefer (open source Node.js generator that makes it easy to create multi-platform applications based on those technologies) and Lapis (open source Rails template to create web APIs integrated with Swagger and GraphQL), both maintained by the author. Source: http://rubyconf.pt/schedule/

  • Utilizando GraphQL e React/React Native/Relay para aplicações Ruby On Rails multiplataforma

    Atualmente os usuários utilizam diversos dispositivos para acessar uma aplicação. Pode ser um aplicativo em um dispositivo Android, um aplicativo em um dispositivo iOS, uma aplicação web ou mesmo uma extensão para navegador web. Escrever diferentes códigos para diferentes plataformas, e além disso mantê-los e testá-los, é um desafio que se torna altamente custoso e em muitos casos inviável. Há muito tempo almejava-se uma tecnologia que permitisse escrever um mesmo código cliente e compilá-lo para diferentes plataformas. Cordova / Ionic parecia ser um caminho para permitir ao menos aplicações híbridas entre web, iOS e Android, mas por não utilizar código nativo, as aplicações móveis construídas com esta tecnologia sofriam com performance. Por falar em performance, não apenas o frontend sofre com isto, mas também o backend. Utilizar polling para atualização automática e não fazer cache dos dados no cliente podem comprometer a performance no lado do servidor também. Recentemente o Facebook abriu o código do React.js e React Native, tecnologias baseadas em JavaScript mas que trouxeram um novo paradigma para aplicações híbridas, com melhor performance em dispositivos móveis a partir da compilação para código nativo. Além disso, o Facebook abriu também o código do GraphQL, uma linguagem declarativa para requisição de dados que retorna apenas os dados requisitados pelo cliente, e Relay, uma tecnologia baseada em JavaScript para facilitar o consumo de dados a partir de um servidor GraphQL e que cuida automaticamente de funcionalidades como paginação, cache e subscriptions. Nesta palestra, o autor irá mostrar como adicionar uma camada GraphQL a uma aplicação Ruby On Rails existente, que é capaz de expor parte do modelo de dados via esta interface, e como construir uma aplicação JavaScript baseada em React, React Native e Relay que consome estes dados e funciona em diferentes plataformas (iOS, Android, Google Chrome, web), a partir do mesmo código-fonte. Para os exemplos, serão utilizados os frameworks Keefer (projeto de código aberto que é um gerador Node.js que permite criar facilmente uma aplicação cliente com estas características) e Lapis (outro projeto de código aberto que é um template Rails para criação de APIs web integradas com Swagger e GraphQL), ambos mantidos pelo autor. Fonte: http://www.rubyconf.com.br/pt-BR/schedule#b7093c183ff30ff68ac8ad5838fd8001

  • Aplicações client-side híbridas com React.js e React Native

    Minha palestra no FISL 17, dia 13 de julho de 2016, na PUC-RS, em Porto Alegre-RS. Vídeo: https://www.youtube.com/watch?v=YnnbMxXT4X0. Aplicações client-side híbridas e multiplataforma com React.js e React Native Atualmente os usuários utilizam diversos dispositivos para acessar uma aplicação. Pode ser um aplicativo em um dispositivo Android, um aplicativo em u m dispositivo iOS, uma aplicação web ou mesmo uma extensão para navegador web. Escrever diferentes códigos para diferentes plataformas, e além disso mantê-los e testá-los é um desafio que se torna altamente custoso e em muitos casos inviável. Há muito tempo almejava-se uma tecnologia que permitisse escrever um mesmo código e compilá-lo para diferentes plataformas. Cordova / Ionic parecia ser um caminho para permitir ao menos aplicações híbridas entre web, iOS e Android, mas por não ser uma aplicação nativa, as aplicações móveis construídas com esta tecnologia sofriam com performance. Recentemente o Facebook abriu o código do React.js e React Native, tecnologias baseadas em JavaScript mas que trouxeram um novo paradigma para aplicações híbridas, com melhor performance em dispositivos móveis a partir da compilação para código nativo. Nesta palestra, o autor irá apresentar como escrever uma aplicação em React em que um único código fonte será compilado como uma extensão para navegador, aplicação web e aplicativo móvel nativo. Para tal, será utilizado o framework Keefer, criado pelo autor. Trata-se de um projeto de código aberto que é um gerador Node.js que permite criar facilmente uma aplicação com estas características, incluindo um framework completo para testes automatizados.