Profile

Filipe A Ximenes @xima


About Me

Desenvolvedor e sócio da http://www.vinta.com.br/

Proposals

APIs: o que são, onde vivem, do que se alimentam?

APIs vem se tornando um tema cada vez mais popular nos últimos anos. Isso de deu por diversos fatores como a popularização dos smartphones, dos frameworks de “Aplicação de página única” (SPA - Single page application) e a popularização do SaaS (Software as a service). Mas devido a quantidade de coisas que envolvem o desenvolvimento de aplicações web, esse costuma ser um tema um pouco obscuro para quem tem pouco tempo na área.


Nessa palestra, vamos tentar responder algumas perguntas como: O que são APIs? Como elas funcionam? Quais são as diferenças entra uma aplicação web convencional e uma feita com APIs? O que é esse tal REST?

APIs: o que são, onde vivem, do que se alimentam?

APIs vem se tornando um tema cada vez mais popular nos últimos anos. Isso de deu por diversos fatores como a popularização dos smartphones, dos frameworks de “Aplicação de página única” (SPA - Single page application) e a popularização do SaaS (Software as a service). Mas devido a quantidade de coisas que envolvem o desenvolvimento de aplicações web, esse costuma ser um tema um pouco obscuro para quem tem pouco tempo na área.


Nessa palestra, vamos tentar responder algumas perguntas como: O que são APIs? Como elas funcionam? Quais são as diferenças entra uma aplicação web convencional e uma feita com APIs? O que é esse tal REST?

Criação de wrappers utilizando Tapioca

Vamos aprender como se usa um wrapper feito com o Tapioca (http://tapioca-wrapper.readthedocs.io/en/stable/index.html), e depois podemos procurar APIs de serviços que ainda não tenham clientes Tapioca para desenvolver durante a sprint. Desenvolver um wrapper usando Tapioca não costuma levar mais do que 2 horas, assim temos tempo suficiente para inciar e concluir o desenvolvimento!

Escrevendo código flexivel com Design Patterns

Design Patterns (padrões de design) são arquiteturas genéricas de código que podem ser aplicadas na solução de diversos problemas. Eles foram inicialmente introduzidos pelo livro "Design Patterns: Elements of Reusable Object-Oriented Software" mas continuamos descobrindo novos até hoje. Esses padrões são formas tão boas de se estruturar código que alguns deles já vêm embutidos no Python, como o por exemplo o iterator.


Alguns dos melhores exemplos de aplicação de Design Patterns estão em bibliotecas open source. Estas bibliotecas se utilizam destes padrões para dar flexibilidade e facilidade de integração para os programadores. A biblioteca Python-Social-Auth (PSA) é um ótimo exemplo disso, ela permite integração com um grande número de provedores de autenticação ao mesmo tempo que funciona com os frameworks Django, Flask, Tornado e Pyramid e sabe lidar com os protocolos OAuth1, OAuth2, OpenID e SAML. Isto só é possível por que a PSA foi totalmente construida com base em Design Patterns.


Nesta talk vamos introduzir o que são Design Patterns e destrinchar mais sobre 3 dos mais populares: Adapter, Strategy e Collection Pipeline. Iremos dar exemplos de como aplicar esses padrões em situações reais, mostrar como eles podem melhorar a qualidade do seu código e mostrar como a PSA e outras bibliotecas se utilizam deles.

Escrevendo código flexivel com Design Patterns

Design Patterns (padrões de design) são arquiteturas genéricas de código que podem ser aplicadas na solução de diversos problemas. Eles foram inicialmente introduzidos pelo livro "Design Patterns: Elements of Reusable Object-Oriented Software" mas continuamos descobrindo novos até hoje. Esses padrões são formas tão boas de se estruturar código que alguns deles já vêm embutidos no Python, como o por exemplo o iterator.


Alguns dos melhores exemplos de aplicação de Design Patterns estão em bibliotecas open source. Estas bibliotecas se utilizam destes padrões para dar flexibilidade e facilidade de integração para os programadores. A biblioteca Python-Social-Auth (PSA) é um ótimo exemplo disso, ela permite integração com um grande número de provedores de autenticação ao mesmo tempo que funciona com os frameworks Django, Flask, Tornado e Pyramid e sabe lidar com os protocolos OAuth1, OAuth2, OpenID e SAML. Isto só é possível por que a PSA foi totalmente construida com base em Design Patterns.


Nesta talk vamos introduzir o que são Design Patterns e destrinchar mais sobre 3 dos mais populares: Adapter, Strategy e Collection Pipeline. Iremos dar exemplos de como aplicar esses padrões em situações reais, mostrar como eles podem melhorar a qualidade do seu código e mostrar como a PSA e outras bibliotecas se utilizam deles.

Isolando os dados dos seus clientes com Django

Multitenancy é um modelo de arquitetura de sistemas onde uma única instancia de software serve múltiplos clientes (tenants) cada um em seu próprio contexto disjunto de dados. Isolar dados não só nos permite evitar falhas de segurança em nosso sistema como também simplifica o desenvolvimento da aplicação e sua manutenção.


Nesta palestra vamos falar sobre as formas de se desenvolver um sistema multitenant, monstrando vantagens e desvantagens e também explorar as ferramentas disponíveis para o Django que podem facilitar bastante o nosso trabalho. 

Isolando os dados dos seus clientes com Django

Multitenancy é um modelo de arquitetura de sistemas onde uma única instancia de software serve múltiplos clientes (tenants) cada um em seu próprio contexto disjunto de dados. Isolar dados não só nos permite evitar falhas de segurança em nosso sistema como também simplifica o desenvolvimento da aplicação e sua manutenção.


 


Nesta palestra vamos falar sobre as formas de se desenvolver um sistema multitenant, monstrando vantagens e desvantagens e também explorar as ferramentas disponíveis para o Django que podem facilitar bastante o nosso trabalho. 

O que é esse tal de REST?

REST é a bola vez quando falamos sobre API. As maioria dos serviços que encontramos na web fornece interfaces deste tipo para que possamos desenvolver integrações. Será mesmo que estas APIs podem ser consideradas RESTful? O que é preciso para que uma API seja considerada RESTful? Você sabia que este padrão já existe a mais de 15 anos? Nesta palestra vamos nos aprofundar no tema e entender os conceitos e constraints de um sistema RESTful para que possamos explorar suas vantagens na hora de arquitetar nossa próxima API web.

Testando sua API web

Todo desenvolvedor com um pouco de experiência já está cansado de saber (ou deveria estar) que tests são essenciais para se desenvolver uma aplicação de maneira saudável e sustentável. Nessa palestra vamos conversar sobre APIs web explorando que partes e como devemos testa-las. Vamos usar a ferramenta para desenvolvimento de APIs mais popular do Python, o Django REST framework para os exemplos, porém os conceitos devem valer para testar aplicações feitas com qualquer outra ferramenta.

Testando sua API web

Todo desenvolvedor com um pouco de experiência já está cansado de saber (ou deveria estar) que tests são essenciais para se desenvolver uma aplicação de maneira saudável e sustentável. Nessa palestra vamos conversar sobre APIs web explorando que partes e como devemos testa-las. Vamos usar a ferramenta para desenvolvimento de APIs mais popular do Python, o Django REST framework para os exemplos, porém os conceitos devem valer para testar aplicações feitas com qualquer outra ferramenta.

Testando sua API web

Todo desenvolvedor com um pouco de experiência já está cansado de saber (ou deveria estar) que tests são essenciais para se desenvolver uma aplicação de maneira saudável e sustentável. Nessa palestra vamos conversar sobre APIs web explorando que partes e como devemos testa-las. Vamos usar a ferramenta para desenvolvimento de APIs mais popular do Python, o Django REST framework para os exemplos, porém os conceitos devem valer para testar aplicações feitas com qualquer outra ferramenta.

Usando Tapioca para acessar APIs web

Bibliotecas como facepy e python-twitter são muito populares e nos ajudam a interagir com as APIs do Facebook e do Twitter. Nesta palestra, vamos conversar sobre como estas bibliotecas funcionam, explicitar alguns de seus problemas e mostrar como Tapioca pode facilitar nosso trabalho. https://github.com/vintasoftware/tapioca-wrapper