iMasters PHP Experience 2017 brings together about 1,200 PHP developers in São Paulo, for national and international lectures, workshops, community areas and various networking actions, divided into two days of great content.

Monday 27th March 2017

17:40 Leveraging a Distributed Architecture to your Advantage in Keynotes (40 minutes)

The time where we talked about the traditional LAMP stack is way behind us. In this day-and-age you build applications with a distributed architecture in mind: consuming externals services and setting up microservices yourself. In this talk I will show how to prepare your code for distributing responsibilities. Now you can build fast, resilient and scalable applications without spending too much money. Get ready for the future!

18:20
17
MongoDB Document Modeling
Keynote by Alex Ciunciusky in Keynotes (40 minutes)

Projetar um esquema que se adapte às suas aplicações funcionalidade, crescimento e desempenho é o maior catalizador para se ter maior valor do MongoDB. Embora a maioria dos engenheiros tenham sido ensinados a desenhar esquema para bancos de dados relacionais, as mesmas regras nem sempre se aplicam ao MongoDB. Nesta sessão, você aprenderá a traduzir relações um-para-um, um-para-muitos e muitos-para-muitos e aprenderá como as estruturas JSON, as atualizações atômicas e os índices do MongoDB podem influenciar seu projeto. Também exploraremos as implicações dos mecanismos de armazenamento, indexação e padrões de consulta.

19:00
7
iMasters PUB – Coquetel & Networking in Keynotes (1 hour)

Hora para relaxar, conhecer pessoas e rever velhos amigos.

19:55
8
Stand up - Por que eu programo PHP e Tópicos avançados do PHP de Rua
Event Related by Rodrigo Wanderley de Melo Cardoso in Keynotes (5 minutes)

Zoeiras do dia a dia de códigos de quem programa PHP.

20:00
9
Microservices without the Servers
Keynote by Esteban (Steve) García in Keynotes (40 minutes)

MicroServices is now a days the preferred architecture chosen by companies to develop their application. It consists of breaking down an application into independent pieces that communicate with each other. From an Infrastructure perspective it can be overwhelming for some companies to administer and deploying all the servers that host their microservices. In this workshop we'll show you how to host your microservices without worrying about infrastructure using AWS' Lambda, so you can focus on the what not the how when it comes to deploying your services.

21:40
7
Event Sourcing: the Good, the Bad and the Complicated
Keynote by Marco Pivetta in Keynotes (40 minutes)

The days of a "simple" LAMP stack are behind us. We now rely on different types of technologies, applications and services to run our web based applications. With "the cloud" we have learned how to distribute our operations, but are we resilient when these cloud services are not available? We have all heard about the major outages of Amazon and Azure in the past and many online services were impacted by those outages. So how can you protect yourself against being "offline" for hours or days and what are the tools you can use to protect yourself against it? Learn how we protect our customers with distributed systems (cloud and on-prem) to mitigate outages and stay online even when the lights go out.

Tuesday 28th March 2017

09:00
3
Abertura do Palco Arquitetura
Talk by PHPRS in Arquitetura (20 minutes)

Abertura do Palco Arquitetura

0
Abertura do Palco DevOps
Talk by PHPDF in DevOps (20 minutes)

Abertura do Palco DevOps

0
Abertura do Palco Hacking
Talk by PHPSP in Hacking (20 minutes)

Abertura do Palco Hacking

09:20 Explorando o Poder dos Middlewares
Talk by Daniel Gimenes in Arquitetura (40 minutes)

O conceito de middlewares HTTP vem se popularizando no ecossistema PHP desde a aprovação da PSR-7, sendo adotado pela maioria dos frameworks. Mas a comunidade ainda está em processo de adaptação. Boas práticas e padrões relacionados aos uso de middlewares são discutidos diariamente. O intuito dessa palestra é apresentar o conceito de uma forma mais profunda, abordando as principais decisões arquiteturais aplicadas nas especificações PSR-7 e PSR-15, mostrar algumas bibliotecas úteis e dicas práticas de como explorar ao máximo o potencial dos middlewares na construção de aplicações ágeis e flexíveis.

1
Como a Arquitetura Emergente da sua Aplicação Pode Jogar Contra a Entrega Contínua
Talk by Gleicon Moraes in DevOps (40 minutes)

Vamos conversar sobre como a arquitetura da sua aplicação evolui e fica complexa com o tempo e como isso pode jogar contra automações como a entrega contínua.

PHP distribuído, fault-tolerant e assíncrono; "Microserviços vs Monolito" o melhor dos 2 mundos
Talk by Luiz Fernando Alves da Silva in Hacking (40 minutes)

A arquitetura de microserviços é vista como a solução para diversos problemas que aplicações monolíticas sofrem, no entanto isso sempre vem acompanhado de trade-offs pesados: desenvolvimento trabalhoso, complexidade operacional, deploy complicado, chamadas remotas lentas, risco de falha, service discovery, etc. Existe uma forma de ter o melhor dos dois mundos (monolíto e micro-serviços)? Não, mas quase. Erlang e Elixir, são exemplos de linguagens que exploram esse limiar entre essas duas abordagens. Nessa palestra vamos explorar como construir uma aplicação multi-processada, com non-blocking IO, fault-tolerant e orientada a serviços sem a maioria das penalidades típicas de uma arquitetura de micro-serviços. Vamos fazer como no "Elixir", porém com a produtividade do ecossistema do PHP. :)

10:00 Domain-Driven Design
Talk by Jefersson Nathan in Arquitetura (40 minutes)

Foco no domínio e clareza de comunicação. Esse é um dos principais pontos em que o DDD vem ao longo dos anos, alertando e trabalhando dentro dos ambientes de desenvolvimento e corporações. Mas como podemos tomar vantagens dessas técnicas? Como reconhecer o core domain? Como disseminar conhecimento de domínio entre a equipe? Como expressar esse conhecimento adquirido em código? Nessa palestra, iremos dar uma boa olhada nesse pontos e estratégias simples que trarão mais significado e contexto ao código.

3
Desenvolvimento de uma Infraestrutura Ágil com Práticas DevOps
Talk by Gabriela Dias in DevOps (40 minutes)

Quantas vezes você precisou realizar as configurações manuais para criar ou configurar uma infraestrutura. Já imaginou sua infraestrutura sendo versionada e automatizada da mesma forma que acontece com o desenvolvimento de softwares? Com o surgimento de ferramentas de Virtualização como Docker, OpenStack, Gerência de Configuração como Puppet e Ansible, Versionamento como o Git e Integração Contínua como o Jenkins já é possível tornar sua Infraestrutura Ágil. Impossível ser DevOps sem InfraÁgil! Essa palestra tem como objetivo mostrar como construir uma infraestrutura Ágil e Automatizada usando ferramentas Open Source, permitindo o provisionamento de servidores para homologar, testar e colocar em produção fazendo a infra integrar-se com a área de desenvolvimento e tendo como resultado um Delivey Contínuo.

2
PHP e Reflexões Sobre Linguagens Auto-Extensíveis
Talk by Márcio Almada in Hacking (40 minutes)

Já imaginou estender o PHP com plugins escritos em PHP? Short closures, enumerated types, escopo léxico e DSLs estão a apenas alguns commits de distância. É uma grande provocação, mas com insights sobre programação orientada a autômatos, parser combinators, linguagens auto-extensíveis e limitações/peculiaridades internas do PHP. A décima lei da programação é real.

10:40 Compartilhando Qualidade e Conhecimento com Code Review
Talk by Antonio Spinelli in Arquitetura (40 minutes)

Code review é uma técnica muito utilizada no mundo open-source e busca garantir a qualidade do código através da revisão de um par dentro do seu projeto. A palestra mostrará o que é, quais as vantagens de utilizá-la, dicas, o que fazer/não fazer, onde ter atenção e ferramentas que auxiliam neste processo. Venha tirar suas dúvidas e discutir sobre esta excelente técnica.

1
Indo Além do Given, When e Then - Testes Comportamentais Como Você Nunca Viu
Talk by Julio de Lima in DevOps (40 minutes)

Testes comportamentais é uma espécie de sonho para empresas que praticam metodologias ágeis, ou mesmo para aquelas que possuem documentação escassa. Em tese, basta escrever uma estória, obter os snippets de código e adicionar comandos de automação. O problema surge quando tentamos implementar isso em casa, com softwares e interações complexas: telas com muitos campos, código muito extenso, o valor das estórias, a organização do ambiente de testes, os bad smells, etc. Nesta palesta, iremos um pouco além nos testes comportamentais, identificando as dificuldades, boas práticas e melhorias nos scripts de teste.

Memórias das trincheiras (parte 2)
Talk by Elton Luis Minetto in Hacking (40 minutes)

Decisões de arquitetura, escolhas de frameworks e linguagens, ferramentas, metodologias. Essas e outras dicas, truques, experiências, acertos e erros de uma equipe desenvolvendo códigos nos últimos 7 anos.

11:20 Existe Vida Além do REST?
Talk by Ravan Scafi in Arquitetura (40 minutes)

Construir uma API pode parecer simples. Transformar models em JSON, uma forma de autenticação e pronto, temos uma "API". O padrão REST é adotado como solução na maioria das vezes, mas, sem o conhecimento adequado, o design de uma API pode ficar confuso e despadronizado, dificultando a utilização dos usuários. Além disso, outras tecnologias fornecem soluções diferentes para problemas encontrados durante a concepção e/ou consumo de uma API. Nessa talk, iremos analisar o REST e outras tecnologias com exemplos para que você entenda seus usuários e tome a decisão certa para sua API.

1
Serverless: Um Novo Paradigma de Arquitetura de Aplicações: Conceitos Explicados através da Nuvem do Google
Talk by José Papo in DevOps (40 minutes)

Serverless: Um Novo Paradigma de Arquitetura de Aplicações: Conceitos Explicados através da Nuvem do Google

0
Painel: Trabalho Remoto
Talk by Fellipe Azambuja (Montanha), Ramon Sanches in Hacking (40 minutes)

O painel contará com dois convidados de peso, Fellipe Azambuja (Montanha) e Ramon Sanches apresentadores do podcast DevNaEstrada. Eles compartilharão suas experiências, falarão das vantagens e desvantagens e darão dicas sobre trabalho remoto. Participe desses painel, faça sua pergunta e compartilhe sua experiência também!

14:00
7
Programação Orientada a Aspectos em PHP
Talk by Ricardo Túlio in Arquitetura (40 minutes)

Ao modelar um sistema OO, temos como objetivo isolar responsabilidades em classes, mas é muito comum nos deparamos com trechos de código que são difíceis de isolar. Quando precisamos gravar log de exceções, por exemplo, podemos colocar esse comportamento em uma classe que seja responsável por isso, mas ainda assim não conseguimos fugir de try/catch's com chamadas aos métodos dessa classe. Nesta talk eu irei apresentar o uso da POA e como aplicá-los em PHP sem o uso de extensões PECL.

5
DevOps no Mundo Real
Talk by Jeferson Fernando in DevOps (40 minutes)

Vamos levar de forma descontraída os problemas e desafios para que tenhamos um ambiente com a cultura DevOps, vamos falar desde ferramentas utilizadas à cultura da empresa, e o mais importante, a mudança do mindset do profissional de tecnologia durante a revolução que nossa indústria está passando.

3
A história do htop - um "making of"
Talk by Hisham H. Muhammad in Hacking (40 minutes)

Essa palestra conta o "making of" do gerenciador de processos htop um projeto de software livre que começou de forma despretensiosa e se tornou uma ferramenta bastante popular. Vamos ver o que é o htop, desmistificar o seu funcionamento, conversar sobre as decisões de design que possivelmente influenciaram na sua popularidade e contar alguns causos do seu desenvolvimento.

14:40 Aspectos do Design Orientado a Objetos
Talk by João Batista Neto in Arquitetura (40 minutes)

Uma abordagem sobre design aplicado ao software orientado a objetos segundo a percepção de quem desenvolve, mantém e consome o software como produto.

3
PHP Distribuído e Paralelo: Multithread + Stream Sockets
Talk by Diana Ungaro Arnos in DevOps (40 minutes)

Todo mundo sabe que hoje em dia a distribuição de um sistema pode ser um fator chave de sucesso e escalabilidade. Nós falamos de microsserviços, load balancers, assincronismo e por aí vai. Apesar de serem conceitos extremamente importantes, a ideia aqui é tentar algo diferente: vamos usar o PHP como uma linguagem multithread para paralelizar a execução e stream sockets para distribuir esse processamento. Por quê? Porque podemos, porque é divertido e porque é sempre bom saber maneiras diferentes de executar tarefas complexas.

IOT powered by PHP and Streams
Talk by Matheus Marabesi in Hacking (40 minutes)

O PHP é uma linguagem bastante versátil e tem sido bastante utilizada em outras áreas como no mundo da internet das coisas. O forte crescimento do IoT ajudará a transformar o mundo e a revolucionar nossas aplicações web. Essa palestra apresentará o que IoT, qual é a sua importância, quais são as tendências futuras e como um device IoT pode ser controlado através de PHP utilizando streams.

15:20
3
The Gates to the Data
Talk by Paulo Eduardo Rezende in Arquitetura (40 minutes)

Quase a totalidade das aplicações PHP utilizam-se de banco de dados, o PHP possui sua própria camada de abstração de banco de dados - a PDO, frameworks geralmente possuem outras camadas de abstração de banco de dados, muitas vezes trabalhando em cima da PDO. Algumas delas implementando o padrão Active Record, outras o padrão Data Mapper, mas qual a diferença entre elas? Qual bibliotecas estão disponíveis? Essa palestra tenta responder essas perguntas e no final explicar como funciona o Doctrine e como passar a utilizá-lo no seu projeto, seja juntamente com o uso de frameworks ou utilizando PHP puro.

1
PHP & Segurança: Blindando Aplicações Web
Talk by Rafael Jaques in DevOps (40 minutes)

O objetivo dessa palestra é apresentar algumas vulnerabilidades que são bastante comuns em aplicações PHP e qual a maneira de contorná-las. Serão mostradas técnicas de programação defensiva, resposta a incidentes, prevenção de perdas e outros tópicos relevantes à segurança da informação. Princípios de segurança, técnicas de invasão e defesa, identificação e prevenção de ataques, boas práticas e proteção do usuário fazem parte dos assuntos abordados nessa palestra.

7
Bot Landscape - Entrando no Mundo dos Bots com PHP
Talk by Adriano Almeida in Hacking (40 minutes)

Bots estão em alta e vão mudar a maneira que interagimos com as empresas. Nesta palestra será apresentado uma visão geral do que são bots, como eles funcionam e como o programador pode criar de maneira rápida o seu próprio bot usando o PHP e as principais APIs do mercado.

17:00
6
Construindo e Mantendo Aplicações Multi-Tenant
Talk by Aryel Tupinambá in Arquitetura (40 minutes)

O multi-tenancy é uma evolução natural para boa parte das aplicações. Startups e seus produtos precisam dele para seu modelo SaaS, empresas e seus sistemas o querem para o reuso de código. Essa palestra irá mostrar técnicas e modelos para a aplicação de multi-tenancy, e erros comuns no processo.

0
Logging – ELK e Beats
Talk by Thiago Souza in DevOps (40 minutes)

Logs possuem informações de grande valor. Nos dizem o "quem", o "quando", o "o quê", o "como" e o "quanto" sobre nossas infraestruturas e aplicações web. Podemos utilizar estas informações de diversas formas, como por exemplo para otimizar um esquema de content delivery ou então identificar possíveis ataques. Nesta apresentação pretendo mostrar como utilizar o Elastic Stack para coletar e analizar logs provenientes de diversas fontes e dispositivos.

7
Big Data para Desenvolvedores
Talk by Fabiane Nardon in Hacking (40 minutes)

Esta palestra irá discutir o que realmente é Big Data e tudo o que um desenvolvedor precisa saber sobre essa tecnologia, além das principais técnicas e ferramentas utilizadas no mercado para processá-lo.

17:40
0
Unit Tests
Talk by Paulo Victor G Sales in Arquitetura (40 minutes)

Unit Tests

0
DevOps - Da Terapia de Grupo à Vida Real com Kubernetes, Openshift e Jenkins
Talk by João Brito in DevOps (40 minutes)

Uma abordagem incomum da cultura DevOps aplicada à entrega de software: Como Kubernetes e Openshift podem tornar suas entregas mais rápidas e confiáveis e como o Jenkins pode conectar todas estas peças em um pipeline de entrega e lhe dar liberdade e eficiência necessária para chegar mais longe.

9
Inteligência Artificial e Redes Neurais em PHP
Talk by Gabriel Rodrigues Couto in Hacking (40 minutes)

A palestra abordará a solução de um problema do mundo real usando inteligência artificial, mostrando na prática o uso de alguns algoritmos implementados totalmente em PHP. O que são redes neurais? Quais seus usos? Será que a IA vai acabar com a humanidade? Descubra nessa viajante palestra pelo mundo das máquinas.