Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP

Post on 12-Jan-2015

1.290 views 1 download

description

Apresentação para o TDC 2014 sobre como melhorar seu código JavaFX quando criando aplicações sérias ("enterprise") com JavaFX

Transcript of Boas práticas na criação de aplicações sérias com JavaFX - TDC 2014 SP

Boas práticas na criação de aplicações SÉRIAS com JavaFX

== AVISO ==

“Este é uma apresentação pessoal. As opiniões aqui expressadas são de única responsabilidade minha, e nada referem-se as da empresa para qual trabalho.”

Sobre● Formado na FATEC SJC● Trabalha no suporte da Red Hat● Na área há mais de 6 anos● Entusiasta Open Source● Um dos líderes do JUG Vale● Comunidade JavaFX● Palestras no TDC, J1, FISL, etc...● aprendendo-javafx.blogspot.com

Objetivo dessa apresentação

Nessa apresentação iremos mostrar as melhores práticas que podem auxiliar na

criação de aplicações "sérias" com JavaFX. Com os recursos da nova biblioteca gráfica da

plataforma Java, iremos mostrar como é possível criar uma aplicação "enterprise"

organizada em camadas bem definidas e de fácil manutenção.

JavaFX

É uma moderna biblioteca Java que dispõe de vários recursos para

criação de aplicações ricas. Sua forma de programar facilita muito a vida do desenvolvedor.

É o novo Swing

JavaFX

http://aprendendo-javafx.blogspot.com.br/

Aplicações Sérias?

● Escaláveis● Fácil manutenção● Fácil entendimento● Organização (time)● Performance● Usabilidade● Resolvem problemas “enterprise"

0) Bons e velhos Padrões de projeto

Boas práticas Java: http://docs.oracle.com/cd/A97688_16/generic.903/bp/java.htm

1) Camadas

http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/

Explicação MVP X MVC

Mais: http://joel.inpointform.net/software-development/mvvm-vs-mvp-vs-mvc-the-differences-explained/

Camadas no mundo JavaFXFXML representam as views que têm um controller;Controllers acessam o modelo(classes que representam a regra de negócio) e alteram a view. O acesso dos controlers ao modelo, no entanto, é feito indiretamente através de classes de acesso(DAO, Service).

Camadas no mundo JavaFX

2) Utilize “Binding”

JavaFX contém objetos de “wrapping” para propriedades comum do Java.Esses wrappers permitem observar os valores das propriedades(listener) ou fazer com que propriedades se comportem em função de outras (bind)Fonte: http://www.oracle.com/technetwork/articles/java/fxbest-1583679.htmlhttp://docs.oracle.com/javafx/2/binding/jfxpub-binding.htm

Usando BindingCom essas técnicas diminuimos bastante código na aplicação e facilitamos a manutenção e a legibilidade. Bindings funcionam para diversos tipos primitivos e com diversas expressões de binding, fazendo com que o código fique praticamente em inglês puro!

Usando listeners

3) Navegação FXMLInterfaces podem ser criadas usando XML com o FXML. FXMLs devem ser carregados como componentes JavaFX para serem usados…

Criar uma classe de navegação com metódos utilitários de navegação e acesso centralizado é recomendável!Mais:https://blogs.oracle.com/acaicedo/entry/managing_multiple_screens_in_javafx1

4) Não trave a thread do javafxJavaFX tem uma thread específica. Tentativas de mudar a view do JavaFX fora dessa thread resultam em erro. Platform.runLater deve ser usado para fazermos as coisas dentro da thread do JavaFX.Para tarefas pesadas que devem ser feitas em paralelo, use as classes do pacote de concorrência do JavaFX.

Mais: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm

http://docs.oracle.com/javafx/2/threads/jfxpub-threads.htm

Exemplo com o leitor de RFID

5) Aprenda a usar CSS● Conheça o Guia do CSS;● Similar a páginas WEB, use classes ● Eviter fazer no código o que você pode fazer no CSS● Busque estudar a aplicação e entender o estilo antes

de começar a sair espalhando CSS

Mais: http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html

6) Organize bem o projeto

● Nomes convenientes a componentes da view(lbl, txt, tbl, etc) controllers({NomeView}Controller),FXML e css;

● Padronize a localização de conteúdos da aplicação

Mais: http://docs.oracle.com/javafx/2/best_practices/jfxpub-best_practices.htm

Exemplo de estrutura de projeto

7) Programe com amor

Fonte: a vida

Obrigado

@william_antoniogithub.com/jesuinoaprendendo-javafx.blogspot.com