barra-trilhas-saopaulo-colorful2Entre os dias 6 e 9 de Agosto de 2014, a equipe da Bluesoft participou do TDC 2014. Um evento bastante eclético, com trilhas para todos os gostos, desde workshops de negócios a assuntos bem técnicos. Veja um pouco do que aprendemos:

Trilha de Arquitetura

 
Cloud_Tier_468

Desenvolvimento de Cache+Proxy de alta performance

A primeira palestra, George Viera Junior mostrou um estudo de caso da plataforma de vídeos da UOL, também conhecida como UOLMais. Neste estudo, George mostrou como era a arquitetura antiga onde eles usavam Apache + Squid e tinham problemas  com variação do tamanho dos arquivos de vídeo e a maioria dos acessos são em conteúdos do próprio dia. Eles também enfrentavam um problema conhecido como Long Tail ou Calda Long, onde a maioria dos acessos são em poucos vídeos. Isto sem falar que são feitos através de vários tipos de receptores (celular, computador, tablet, etc.) e por vezes, de forma repentina. Eles avaliaram algumas ferramentas como:  Ngnix, Lighttpd e Varnish, mas no acabaram criando uma solução própria que chamaram de Croupier. Com esta solução eles conseguiram:

  • Administrar dos servidores em tempo real;
  • Controlar as rotas da request de acordo com o dispositivo;
  • Controlar a distribuição de carga usando busca de estatísticas dos servidores;
  • Controle de regras especificas para Longtail;
  • Aumentando Hit Rate de IO.

Servidores de aplicação: porque ainda precisamos deles?

Na palestra seguinte, Bruno Borges da Oracle fez uma avaliação da evolução das aplicações Java EE ao longo dos anos. Falou da arquitetura Java EE comum (monolitica), listou as prinicipais ferramentas escolhidas por Startups: (Jetty, TomCat, Vertx, Groovy, VRaptor, Spring, Cheg, Puppet, Vagrant, ect.), mostrou algumas características interessantes dos servidores atuais que são tão inteligentes que podem até controlar a memória, monitorar “N” aplicações simultâneas, Load Balance, Fail-over, entre outras.
Em resumo, Bruno defende que a afirmação de muitos desenvolvedores que não precisamos mais de servidores de aplicação porque agora temos o modelo de deployment “micro-services” não é verdadeira, posto que os servidores de aplicação ainda tem muito à agregar e não podem ser substituídos de um dia para o outro.

Suportando Aplicações Multi-Tenancy Java EE

Nesta palestra, Rodrigo Candido falou do conceito de multi-tenancy comparado com Multi-Instances e Cloud, dos modelos de serviços comuns (SaaS, PaaS e IaaS), como aplicar multi-tenancy em persistência de banco de dados com Hibernate 4, como utilizar os conceitos de multi-tenancy dentro dos EJBs e como tratar segurança dentro deste tipo de ambiente.
Segundo Rodrigo, alguns dos desafios que um multi-tenancy são: personalização, controle de acesso, separação de dados e aprovisionamento de recursos. Listou como vantagem a redução da manutenção o aumento da escalabilidade, em contra partida, quando uma aplicação cai, cai para todos.

Nova arquitetura CDI 2.0

Palestra muito produtiva, com o hilário Alexandre Gama da Elo7. Na verdade foi um hands-one, onde vimos na prática, com exemplos cotidianos, diversas funcionalidades do CDI, como: Events, Observers, Producers, Interceptores, Decorators e Stereotypes.
 

Trilha de Java

 
analista-fiscal

Java 8 – Novidades para criar o futuro

A trilha de Java resumindo foi a apresentação do Java 8 e das novidades que estão por vir na plataforma Java.
O evento teve início com a palestra do Edson Yanaga que fez um overview sobre as novidades do Java 8 apresentando as APIs de Lambda, Date and Time, Streams, Funcional Interfaces, Method References, Optional, entre outros.
Ressaltou também sobre a mudança na JVM que removeu o Perm e adicionou o MetaSpace para controle de memória, o que possibilita que a JVM faça alocação de memória dinâmica.
Além de todas essas melhorias, um dos grandes esforços da equipe da Oracle que estava desenvolvendo o Java 8, foi em corrigir uma grande quantidade de bugs e falhas de segurança existentes.
Então fica a ressalva, Java 8 é muito mais do que Lambda.

SE next: Fazendo o Futuro do Java

Em seguida, foi a Palestra do Otavio Santana, que é um dos commiters na OpenJDK e mostrou novidades bem interessantes que estão por vir no Java 9. As que mais chamaram a atenção foi a API de Money, isso mesmo, enfim teremos uma API nativa para lidar com Dinheiro. O legal é que ela utiliza os serviços do IMF (International Monetary Found) e permite ter cotações das moedas em tempo real. Também terá uma API para unidades de medida, que é muito útil para programadores de embarcados, que precisam lidar o tempo todo com sensores de temperatura, de movimento e outros mais.
Na JVM as grandes mudanças estão nas otimizações de performance. Uma delas é fazer com que o GC identifique e remova as Strings duplicadas.
A outra é fazer a JVM carregar somente os módulos da API que ela vai usar em execução, ou seja, se meu programa não utiliza Swing, ela não vai carregar a API de Swing. Isso significa a união das plataformas de JSE e JME.

Escrevendo testes unitários para código legado

Outra palestra que chamou a atenção foi a do André Ricardo Barreto de Oliveira, da Liferay que mostrou, de maneira divertida e descontraída,
como é possível ter 100% de cobertura de testes em sistemas legados utilizando Mockito e para casos mais críticos o Power Mockito, que são frameworks de mock poderosos que nos ajudam a isolar as dependências do método na hora de criar nossos Testes Unitários.
O livro que ele se baseou para a apresentação e que é indispensável para qualquer pessoa que queira se aprofundar em refatoração é o Working Effectively with Legacy Code do Michael Feathers.

Tunning JVM em Java 8: Guia do Mochileiro que não pode faltar

O Luan Cestari falou um pouco sobre tunning JVM em Java, dando um overview sobre algumas das mudanças na versão 8, e algumas ferramentas de análise que podemos usar como jdeps para análise de dependências, jvisualvm e jconsole para profilling.
 

Trilha de Java Script

 
developer

Java de qualidade

A trilha de Java Script começou com a apresentação do Guilherme Carreiro Gomes e do Thiago de Oliveira Pires falando sobre Java de qualidade.
Foi bem bacana porque eles foram passando como as coisas são feitas hoje comparando com a forma que poderemos fazer usando Ecma6. Uma parte bem legal foi a de code smells em java e mostraram alguns design patterns também.

Criando seu Front End com EmberJs

A seguir o Keuller Magalhães fez uma apresentação sobre o Ember, falando sobre quais são os objetivos, filosofia e explicando o padrão que ele segue: MVC-R ( Model-View-Controller-Route).
Como sempre surge o embate Angular x Ember. Ele comentou sobre a experiência dele nos dois mundos e puxou a sardinha para o Ember (óbvio pelo tema da apresentação).
Foi uma apresentação bem dinâmica, pois após essa breve introdução, foi direto para o hands-one e listar alguns dados. Keuller Mostrou que com pouquíssimas linhas de código foi possível criar uma aplicação simples.
No final mostrou algumas empresas que usam com sucesso o Ember, dente elas Twitch e Grupon.

ReactJS

A próxima palestra foi com o Danillo Corvalan de Barros falando sobre React, framework que “foi junto” com o Instagram para o Facebook. Mostrou o conceito e a motivação (performance e reutilização basicamente) e foi mostrando exemplos de como criar e compor componentes.

Visão geral sobre Ecma6

A próxima foi uma apresentação conjunta do Giovanni Bassi e do Victor Cavalcante falando sobre as novidades do Ecma6: let, const, class, extends, export, import, rest parameters, arrow functions, etc., tudo o que você vai poder utilizar quando tivermos suporte.

JS Modular: passado, presente e futuro

Depois do coffe break da tarde o Luiz Corte Real fez uma apresentação bem interessante comparando o passado, presente e futuro de JS modular.
Explicou os motivos por que devemos modularizar nosso código e foi mostrando a evolução desse padrão.

Criando jogos multi-plataforma com CreateJS

Felipe Pedroso fez uma breve introdução sobre games. Falou sobre os conceitos que envolvem a criação e falou também sobre algumas plataformas (Unity e Game Maker) e como a trilha era de JS, mostrou a biblioteca CreateJS, que facilita a criação de elementos de imagem usando Canvas.

Functional Programming 101

Breno Ferreira fez a última apresentação desmistificando o paradigma funcional, explicando o conceito de transparência referencial, recursão, tails calls e higher order functions.
O TDC 2014, foi um evento excelente!
E que venha a edição 2015!

Autor

Ismael Soares é Gerente de Engenharia de Software na Bluesoft em São Paulo. É formado em banco de dados pela Faculdade Impacta de Tecnologia e possui mais de 14 anos com experiências em análise e desenvolvimento de sistemas. Já trabalhou com diversas tecnologias, entre elas: VB6, ASP, PHP, C#.NET, VB.NET, ASP.NET, PL/SQL, T-SQL, Groovy, Ruby e Java. Já participou de diversos projetos com banco de dados entre eles: Oracle, MSSQL Server, MySQL e Postgree.

Deixe aqui o seu comentário