da água pro vinho, o caminho do desenvolvimento web java

Download Da água pro vinho, o caminho do desenvolvimento web Java

If you can't read please download the document

Upload: bruno-luiz-pereira-da-silva

Post on 16-Apr-2017

2.208 views

Category:

Technology


0 download

TRANSCRIPT

Da gua ao vinho

o caminho do desenvolvimento web

Bruno Pereira

Palestrante

Desenvolvedor snior Concrete Solutions

7 anos de experincia com Java

8 anos de experincia com web

Um dos pioneiros em REST no Brasil

BP do Bem

- CGIs invocavam aplicaes dentro da mquina, passando valores atravs de variveis de ambiente

- Servlets inovaram ao passar a usar threads p/ request em vez de criar novos processos

DRY

CoC

Frameworks de persistncia integrados

REST

Linguagens de tipagem dinmica

Foco no cdigo

- Web server embutido - Scaffold - Gerador de CRUD c/ Ajax - CoC - a opo com mais sucesso comercial

- Forte comunidade no Brasil e no mundo

- Excelentes ferramentas para TDD/BDD

- Tem feito excelente uso da plataforma Java, reduzindo drasticamente as questes de escalabilidade

- Semelhante a RoR em muitos aspectos.

- Framework for perfectionists with deadlines

- Criado para atender com qualidade aos prazos curtos de um ambiente editorial muito dinmico

- Gerao de um Admin de contedo muito poderoso, que poupa muito tempo de desenvolvimento

- Framework Python

- Enorme comunidade, muito ativa

- Mto semelhante a RoR, mas ideal para devs que vieram de Java e querem aproveitar skills

- Feito em Groovy, sobre Spring, Hibernate e Sitemesh.

- Oferece os enormes benefcios de Spring/Hibernate de forma bem menos complexa, mas sem tirar o poder.

- a opo de mais fcil integrao com Java

- Gera WAR padro Java

- Comunidade bem menor do que Django e Rails

- Ser que tem futuro dentro da VMWare?

Escalabilidade

Threads em vez de processos

Enorme evoluo da JVM

NIO: IO no bloqueante

C10k

Comets

Clean Code

Attribute-oriented programming

Annotations + generics

CoC

IoC

POJOs x Herana + Interfaces

Cdigo Ferramentas

Testing

Testes fora do container

IoC

TDD, BDD

Containers cada vez mais leves

Testes de controllers do VRaptor

Action-based x Component-based

CB so adequados p/ aplicaes RIA, no sites

AB cada vez mais RESTFul

Stateless x Stateful

Nvel diferente de controle de JS

O futuro RESTFul!

Powered by Java 5

@Resourcepublic class ProcessoController {private ProcessoDAO dao;private Result result;

public ProcessoController(ProcessoDAO dao, Result result) {this.dao = dao;this.result = result;}@Get@Path("/processo/index")public List index() {return dao.buscarTodos();}}

@Post @Path("/processo")public void cadastro(Processo processo) {dao.salvar(processo);result.use(Results.json()).from(processo) .serialize();}

@Get @Path("/processo/{processo.id}")public void buscar(Processo processo) {processo = dao.buscar(processo.getId());if (processo != null) { result.use(Results.xml()).from(processo) .serialize();} else {result.use(Status.class).notFound();}}

MockResult result = new MockResult();ClienteController controller = new ClienteController(..., result);controller.list(); List clients = result.included("clients"); //cast automticoAssert.assertNotNull(clients);

/articles/archive?date=08/01/08&page=2public static void archive(Date date, Integer page){ List articles = Articles.fromArchive(date, page); render(articles);}public static void show(Long id) { Article article = Article.findById(id); render(article);} public static void edit(Long id, String title) { Article article = Article.findById(id); article.title = title; article.save(); show(id); // redirect to show}

//TemplatesArticle article = Article.findById(id);User user = User.getConnected();render(article, user);

//JPApublic void messages(int page) { User connectedUser = User.find("byEmail", connected()); List messages = Message.find( "user = ? and read = false order by date desc", connectedUser).from(page * 10).fetch(10); render(connectedUser, messages);}

Java EE 6

Separao em profiles

IoC + ampla

Criteria

JSR-311

Async Servlets

POJOs.

- Linguagem com caractersticas OO e funcionais

- Vista como sucessora natural de Java, embora provavelmente no vejamos uma opo com a adoo de Java

- Estaticamente tipada

- 2 a 3x menos cdigo comparando com Java

- Lift roda em qualquer servlet container 2.4+ Java. Podemos usar qualquer lib Java.

- Comets, XML, JSON, JPA

Selectors/Traversing

$('div#corpo div.destaque')$('/html/body//p')$('p:eq(0)')$('div:even')$('div:has(p)')$('span#description').prev()$('div#disclaimer').find('li')

Events/Manipulation

$('input:submit').click(function() { $(this).attr('disabled', 'disabled');});$('p').mouseover(function() { $(this).css('cursor', 'pointer');});

Page Speed

YSlow

Java in the Enterprise

Contato

twitter.com/blpsilvahttp://[email protected]