iMasters PHP Experience 2018 brings together about 1,200 developers in São Paulo, for national and international lectures, workshops, community areas and various networking activities.

Monday 5th March 2018

17:00
0
Abertura do Credenciamento in Auditório Unificado (30 minutes)

Abertura do Credenciamento

17:30
0
Abertura Oficial PHP Experience 2018
Talk by João Batista Neto in Auditório Unificado (10 minutes)

Abertura Oficial PHP Experience 2018

17:40
2
Building a dashboard with PHP and Websockets
Talk by Freek Van der Herten in Auditório Unificado (40 minutes)

On the wall mounted TV in our office a dashboard is displayed. At a glance we can see what the current tasks for each member of our team are, which important events are coming up, which music is playing, ... and much more. In this talk I'll explain how we leveraged both Laravel and Vue to build the dashboard. After demonstrating the dashboard itself we'll take a deep dive in the code. We'll take a look at the entire flow: the grid system, how events are broadcasted using Pusher, some cool Vue mixins and much more.

18:20
1
Blockchain e PHP - Criando uma criptomoeda
Talk by Gabriel Rodrigues Couto in Auditório Unificado (40 minutes)

2017 foi o ano de maior crescimento do mercado de criptomoedas, onde somente o Bitcoin valorizou mais de 500%. O que existe por trás de grande parte das criptomoedas é uma tecnologia chamada Blockchain, que organiza as transações para que sejam distribuídas de forma decentralizada e confiável. Como se implementa um blockchain e alguns dos seus possíveis usos serão mostrados nessa palestra, bem como a criação da primeira criptomoeda em PHP.

19:00
0
iMasters PUB – Coquetel & Networking in Auditório Unificado (1 hour)

iMasters PUB – Coquetel & Networking

20:00
1
Stand-Up - Integrando GO com PHP
Talk by Rodrigo "pokemaobr" Cardoso in Auditório Unificado (10 minutes)

Stand-Up - Integrando GO com PHP

20:10
1
PHP under the hood
Talk by Marcelo Camargo in Auditório Unificado (40 minutes)

Você sabe como funciona desde quando você manda uma requisição para o servidor até quando você tem a saída no seu navegador? Vamos inspecionar passo a passo o funcionamento do PHP, do servidor que processa as conexões ao interpretador que entende e executa PHP, com uma atençãozinha bem especial a cada fase do interpretador, mergulhando em suas entranhas e analisando como ele é capaz de entender e executar código PHP! Yeap, veremos como o PHP foi construído em seu core e que nada acontece por mágica.

20:50
1
Good Project From Scratch
Talk by Pawel Lewtak in Auditório Unificado (40 minutes)

Can you start a new project from scratch instead of maintaining legacy one? You're the lucky one! I want to talk how a good project should look like, from analysis phase till release and later maintenance. Talk will mostly about signaling important things to focus on like requirements analysis, code structure, code review, TDD, continuous integration, monitoring, performance tests etc. I don't want to go in-depth on every one of them but give you hints what is important and what to read more about and in which direction you should make research if you want to improve your skills, have a better project and be calm during next project release. During the talk I'll go through each phase of project lifetime and say what you as a developer should do on each of them to limit the possibility of ending up with legacy code.

Tuesday 6th March 2018

08:50
0
Abertura do Credenciamento in Auditório Unificado (30 minutes)

Abertura do Credenciamento

09:20
0
Abertura do palco Assembly
Talk by Diana Arnos in Assembly (10 minutes)

Abertura do palco Assembly

0
Abertura do palco Fortran
Talk by Hussani Oliveira in Fortran (10 minutes)

Abertura do palco Fortran

0
Abertura do palco Smalltalk
Talk by João Batista Neto in Smalltalk (10 minutes)

Abertura do palco Smalltalk

09:30
0
Programação Reativa Funcional e extensões para PHP
Talk by Juliana Chahoud in Assembly (40 minutes)

Currying? Observables? Map, Reduce? Aprenda as ideias por trás da programação reativa funcional sem ficar perdido com tantos jargões! Além desses principais conceitos, serão demonstrados alguns exemplos de uso de RxPHP, um conjunto de bibliotecas com extensões reativas para PHP.

1
Dando nome aos códigos
Talk by Nelson Senna do Amaral in Fortran (40 minutes)

De acordo com várias pesquisas através dos anos foi constatado que a grande maioria dos programadores passa a maior parte do tempo lendo código. Apesar de não ajudar muito a criar bom design, os nomes ajudam e muito a evitar a criação de design ruim e um exemplo disso é o foco do DDD na linguagem ubíqua. O motivo nem sempre é claro mas, vive no subconsciente já que eles nos ajudam a entender problemas, relações entre conceitos e na comunicação com as diferentes partes da empresa/ambiente de trabalho. "There are only two hard things in Computer Science: cache invalidation and naming things. - Phil Karlton" O problema com os nomes é justamente achar um. E, como não existe uma fórmula mágica para acha-los vamos tentar achar alguns casos em que podemos melhorar um nome e destrinchar um processo, extremamente útil, para descoberta de nomes.

0
Profiling: uma técnica eficiente para encontrar gargalos e otimizar sua aplicação
Talk by Thiago Rodrigues in Smalltalk (40 minutes)

A velocidade de carregamento é um dos fatores primordiais na experiência dos usuários em aplicações Web. Sites e apps lentos frustram seus usuários, convertem menos e causam abandonos. Nessa mesma linha, algoritmos ineficientes geram custos maiores e podem até inviabilizar negócios. Muitos desenvolvedores não sabem identificar e como tratar quando tais sintomas se manifestam. Outros pecam pelo excesso, gastando recursos valiosos em otimizações precoces, pouco eficientes, que prejudicam a legibilidade do código e atrasam as entregas. Profiling é uma técnica usada para identificar gargalos e descobrir oportunidades de otimização. Essa palestra expõe uma abordagem eficiente para tratar problemas de otimização utilizando profiling, o momento e local ideal para aplicá-la e apresenta ferramentas que auxiliam neste processo.

10:20
1
Refactoring: Importância e Técnica em Sistemas Legados
Talk by Davi Marcondes Moreira in Assembly (40 minutes)

Refatoração de sistemas é parte de nossa rotina em desenvolvimento de software. Nesta talk, vou discutir a importância de melhorar nosso software e exibir 10 técnicas para que você possa ver opções de como fazer o seu código entregar mais valor por mais tempo.

0
Infraestrutura Imutável - A base para aplicações nativas na nuvem
Talk by Fernando Ike in Fortran (40 minutes)

A necessidade de ter ambientes mais resilientes, alto nível de SLA das aplicações faz com que muitas organizações adotem formas diferentes de operação da infraestrutura de organização comparado com alguns anos atrás. Ambientes de alta elasticidade ou melhor escalabilidade permitem a adoção de estratégias como Infraestrutura Imutável. Entenda os conceitos por trás de uma das estratégias mais adotadas para gestão de infratrutura e como isso impacta o lançamente de novas de versões das aplicações sem que hada dores de cabeças para todos (devs e ops).

0
Arquitetura de Aplicações Web utilizando Serverless
Talk by Carolina Pascale Campos in Smalltalk (40 minutes)

A proposta desta palestra é discutir as vantagens e desvantagens que os times se deparam ao adotar a arquitetura de Serverless para desenvolvimento da nossa API, usando um case real de utilização. Sobre o serverless, discutiremos o que é, onde é usado, restrições, performance, como arquiteturar e outros fatores que envolvem a adoção deste. O objetivo é demonstrar um panorama dos benefícios e obstáculos que encontramos ao escolher uma arquitetura em constante desenvolvimento.

11:00
0
Coffee & Networking in Auditório Unificado (30 minutes)

Coffee & Networking

11:30
0
Domain-Driven Design: uma visão geral para desenvolvedores, artistas, responsáveis ou degustadores de café com leite
Talk by Eriksen Costa in Assembly (1 hour)

Software está comendo o mundo e as empresas precisam se tornar em empresas de software. A revolução Ágil que aconteceu nos últimos 16 anos reduziu o ciclo de entrega de software mas deixou uma lacuna de design. Muitos projetos Ágeis estão produzindo código ruim. A única forma de resolver esse problema é voltar a fazer design. Domain-Driven Design (DDD) é uma forma de desenvolver software que foca em implementar o melhor design de software baseado em modelos que refletem explicitamente as competências da organização. Essa palestra introduz o assunto com uma linguagem simples, com foco no design estratégico do DDD e dicas de técnicas para facilitar a modelagem de um domínio.

1
Construindo aplicações PHP com Twelve-Factor App
Talk by Marcela Godoy in Fortran (1 hour)

O Twelve-Factor App é uma metodologia para a construção de modernas aplicações SaaS (Software as Service). Mas como aplicar seus conceitos em uma aplicação PHP? Vamos descobrir como é possível fatorizar sem grandes esforços, utilizando um design inteligente e bem apresentável para a sua aplicação.

0
O Fim dos Arrays: Explorando Collections e Estruturas de Dados em PHP
Talk by Marcos Felipe Nalin Furtado in Smalltalk (1 hour)

O array é uma estrutura de dados flexível porém insuficiente (e às vezes ineficiente) para a representação do domínio de uma aplicação. Essa palestra explorará o poder das collections e estruturas de dados em PHP apresentando a SPL e a biblioteca DS. Serão abordadas Interfaces, Iterators, Lists, Double Linked Lists, Stacks, Queues, Maps, Sets e Heaps com exemplos de aplicações reais e mostrando seus prós e contras. Compreender o funcionamento das Collections e estruturas de dados melhorará o seu mindset e te ajudará a tomar uma melhor decisão durante o processo de modelagem de sua aplicação.

12:30
0
Intervalo para o almoço in Auditório Unificado (1 hour, 30 minutes)

Intervalo para o almoço

14:00
0
Persistência Poliglota, usando os bancos de dados certos de acordo com a sua necessidade
Talk by Danielle Monteiro in Assembly (40 minutes)

Você sabe que sua aplicação precisa de um banco de dados... Mas qual é o banco de dados adequado para o seu sistema? PHP com MongoDB? PHP com Cassandra? Ou PHP com Redis? Neo4J? SQL Server?

1
Filas e Mensageria com RabbitMQ
Talk by Daniel Archer in Fortran (40 minutes)

Aprenda mais sobre o conceito e a utilização de filas e mensagens para a comunicação entre sistemas. Utilizando ferramentas de mensageria, como o RabbitMQ, podemos reduzir complexidade e não se preocupar com o gerenciamento de mensagens e roteamento de informações. Apresentarei, também, alguns exemplos de implementação utilizando PHP para produzir e consumir mensagens de diversas filas.

0
Construindo estruturas complexas com serialização de objetos
Talk by Alef Araujo Castelo in Smalltalk (40 minutes)

Durante o processo de desenvolvimento, novos requisitos vão surgindo e você precisa ir mudando seu código, até chegar ao ponto em que você precisa construir saídas complexas para atender os determinados contextos em que seus objetos são serializados. Para esta talk, a ideia é mostrar desde a forma simples de serialização e a evolução até a construção dessas complexas estruturas.

14:50
0
A importância de uma boa performance na sua WebApp!
Talk by William Grasel in Assembly (40 minutes)

Se bem otimizadas, nossas Web Apps podem carregar em poucos segundos mesmo nas piores conexões, algo que mesmo uma "Instant App" nativa jamais vai conseguir alcançar. Porém para que isso aconteça temos que entender de verdade o funcionamento da Web como plataforma, quais são as ferramentas e melhores práticas que estão disponíveis para garantir a performance de sua aplicação.

15:30
0
Coffee & Networking in Auditório Unificado (1 hour)

Coffee & Networking