web open source
TRANSCRIPT
Web Open Source Sobre mim
● Desenvolvedor Django na Leme Consultoria● Vegano● Ciclista● Pythonista● Palhaço ● Professor de Informática
Web Open Source Juventude na Programação
● John Resig, tinha 22 anos na primeira versão.● Tornou atividades massantes em simples.● Write less, do more.
Escolha a tecnologia de acordo com o mercado que você pretende atuar.
Web Open Source Linguagens de programação
Lugares com clima informalRuby, Python e NodeJs
Web Open Source Linguagens de programação
Makers <3 NodeJs
Big Data e Aplicações em Tempo RealGo, Scala, NodeJs e Python
Web Open Source Linguagens de programação
Mas isso não é regra!Trabalho com Python e faço software para o
meio corporativo.
Web Open Source Linguagens de programação
Ruby on Rails
● Criado por David Heinemeier Hansson em 2005● DRY - Don't repeat yourself● Linha de comando
Web Open Source Linguagens de programação
● Controllers● Models● Views● Helpers● Database SQLite● Servidor de Desenvolvimento
Web Open Source Linguagens de programação / Rails
$ rails generate controller welcome index
create app/controllers/welcome_controller.rb route get 'welcome/index' create app/views/welcome create app/views/welcome/index.html.erb create test/controllers/welcome_controller_test.rb create app/helpers/welcome_helper.rb create app/assets/javascripts/welcome.coffee create app/assets/stylesheets/welcome.scss
Web Open Source Linguagens de programação / Rails
$ rails generate scaffold HighScore game:string score:integer
Web Open Source Linguagens de programação / Rails
API Rest
http://localhost:3000/high_scores/1.json
{"id":1,"game": "Arkanoid","score": 42,"created_at": "2016-01-24T23:13:50.207Z","updated_at": "2016-01-24T23:13:50.207Z"
}
Web Open Source Linguagens de programação / Rails
Python
● Sintaxe linda ● Pacotes para praticamente tudo● Comunidade <3
Web Open Source Linguagens de programação
Django
● Surgiu em 2005 como um CMS● MVC embora MTV● DRY
Web Open Source Linguagens de programação / Python
$ django-admin startproject mysite
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
Web Open Source Linguagens de programação / Python / Django
$ python manage.py startapp blog
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
Web Open Source Linguagens de programação / Python / Django
Diferente do Rails o Django não:
● Gera a arquitetura dos arquivos estáticos.● Gera código-fonte.● Não tem um comando scaffold.
Web Open Source Linguagens de programação / Python / Django
Models
from django.db import models
class Post(models.Model): title = models.CharField(max_length=128) body = models.TextField()
class Comment(models.Model): user = models.CharField(max_length=128) comment = models.TextField() post = models.ForeignKey(Post)
Web Open Source Linguagens de programação / Python / Django
Migrations
$ python manage.py makemigrations blog
Migrations for 'blog': 0001_initial.py: - Create model Comment - Create model Post - Add field post to comment
Web Open Source Linguagens de programação / Python / Django
MicroFrameworks
As vezes o pouco é muito
Flask, Bottle, CherryPy, entre outros.
Web Open Source Linguagens de programação / Python
from flask import Flaskapp = Flask(__name__)
@app.route("/")def hello(): return "Hello World!"
if __name__ == "__main__": app.run()
Web Open Source Linguagens de programação / Python / Microframeworks
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Arquiteturas baseadas em microserviços
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Arquiteturas baseadas em microserviços
Jornal Online
NotíciasUsuáriosComentários
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Arquiteturas baseadas em microserviços
Jornal Online
NotíciasUsuáriosComentários Jornal Online
Notícias Usuários
Comentários
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Arquiteturas baseadas em microserviços
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Aplicativos Mobile
Web Open Source Linguagens de programação /
NodeJS, GoLang e Banco de Dados não relacionais
Aplicativos Mobile
● Alta disponibilidade● Velocidade de resposta● API's REST
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Blocking
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Blocking
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Blocking
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Non-Blocking
I/O loop
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Non-Blocking
I/O loop
Web Open Source Linguagens de programação / Async
/get_messages
Usuário 1 Usuário NUsuário 2
/send_message
Chat Online
Non-Blocking
I/O loop
Web Open Source
$ git init$ git remote add origin url_do_repositorio$ git add arquivo_ou_regex$ git commit -m “O que foi atualizado?”$ git push origin nome_da_branch (ex: master)$ git pull origin nome_da_branch
Ferramentas Importantes / Git
Web Open Source
Hosting Online?
Ferramentas Importantes / Git
Free for Open Source Repositórios privados
Web Open Source
Quando você usa Git para Deploy você tem:
● A garantia que vai estar tudo atualizado após um git pull● Não vai ter que avisar ao time que você está mexendo em tal
arquivo● Voltar a versão de um arquivo● Ter histórico das modificações
Ferramentas Importantes / Git
Web Open Source
Excelente para:
● Cache● Servidor de mensagens● Bibliotecas para quase todas as linguagens e
frameworks
Ferramentas Importantes / Redis
Web Open Source
Exemplo de um servidor de mensagens
Ferramentas Importantes / Redis
Aplicação 2Aplicação 1
Web Open Source Responsabilidades por usar open source
Responsabilidades por usar open source
● Faça parte de uma comunidade● Reporte bugs● Crie artigos● Ajude os mais novos● Participe dos eventos da sua comunidade.● Desenvolva software livre● Engaje-se
Web Open Source Responsabilidades por usar open source
MeetUps
● www.meetup.com/Grupy-SP/● www.meetup.com/rubyon/● www.meetup.com/NodeBR-Sao-Paulo/● www.meetup.com/GDG-SP/
Web Open Source Responsabilidades por usar open source
A Web tornou possível usar Software Livre para fins comerciais.
Web Open Source Responsabilidades por usar open source
Você tem a responsabilidade de saber o que é a regra de negócio do seu cliente e o que é
tecnologia Open Source.
Web Open Source Responsabilidades por usar open source
PyGamii
● Engine de Games ASCII escrito em Python● PyGamii != PyGame
Web Open Source Responsabilidades por usar open source
Um cara fez um tweet
Postei no Facebook
@pythontrending
Stars no GitHub ▲
Empresa Irlandesa de Games
Web Open SourceContatos
E-mail: [email protected]
GitHub: http://github.com/carlosmaniero
Twitter: http://twitter.com/carlosmaniero