O documento apresenta um workshop sobre desenvolvimento orientado a objetos com Spring Framework. O objetivo é criar uma camada de negócios inteligente com objetos e introduzir o conceito de Inversion of Control (IoC) para integração entre camadas. A agenda inclui tópicos como modelagem de domínio, persistência de dados, introdução ao IoC e integração da primeira versão da aplicação.
Presentation given at #AgileBR 2012. Newcomers in your team? Scape from inertia!
This presentation promotes discussions on what to do to make sure the newcomers on your team truly understand agile -- and don't become agile zombies.
Muitos desenvolvedores se preocupam bastante com os aspectos estáticos dos sistemas que constroem, tais como se o código está bonito, se está idiomático, se está seguindo um determinado styleguide, entre outros bullet points do bom design de código; e isso é muito bom. Mas isso não é tudo. Há ainda o aspecto real da coisa, o Runtime. É no Runtime que ômis e mininus se sobressaem. E essa apresentação é sobre com o que os ômis mais se preocupam quanto estão escrevendo sistemas críticos – para o Mundo Real, é lógico.
Pequena apresentação sobre Coding Dojo, para o primeiro Coding Dojo Sankhya.
Essa apresentação é um resumo de muitas outras, dentre as quais:
http://pt.slideshare.net/serge_rehem/coding-dojo-em-5-minutos
http://pt.slideshare.net/alextercete/coding-dojo-e-tdd
http://pt.slideshare.net/marloncarvalho/coding-dojo-5328510
http://pt.slideshare.net/williansdepaula/coding-dojo-10208494
Ela foi usada para uma apresentação de 10 min.
Lean tem foco total na qualidade. Essa palestra explora os conceitos do Lean e fazer uma relação com testes de software, trazendo os conceitos fundamentais do Lean: Qualidade total, redução de desperdícios, melhoria contínua, produção puxada, variabilidade, autonomação, nivelamento de carga, just-in-time, fluxo de produção, kanban e gestão visual.
Nesta palestra, vemos como é a carreira de um desenvolvedor Java, falamos um pouco sobre o mercado, sobre o desenvolvimento de um profissional e damos algumas dicas de como se tornar um ninja.
Presentation given at #AgileBR 2012. Newcomers in your team? Scape from inertia!
This presentation promotes discussions on what to do to make sure the newcomers on your team truly understand agile -- and don't become agile zombies.
Muitos desenvolvedores se preocupam bastante com os aspectos estáticos dos sistemas que constroem, tais como se o código está bonito, se está idiomático, se está seguindo um determinado styleguide, entre outros bullet points do bom design de código; e isso é muito bom. Mas isso não é tudo. Há ainda o aspecto real da coisa, o Runtime. É no Runtime que ômis e mininus se sobressaem. E essa apresentação é sobre com o que os ômis mais se preocupam quanto estão escrevendo sistemas críticos – para o Mundo Real, é lógico.
Pequena apresentação sobre Coding Dojo, para o primeiro Coding Dojo Sankhya.
Essa apresentação é um resumo de muitas outras, dentre as quais:
http://pt.slideshare.net/serge_rehem/coding-dojo-em-5-minutos
http://pt.slideshare.net/alextercete/coding-dojo-e-tdd
http://pt.slideshare.net/marloncarvalho/coding-dojo-5328510
http://pt.slideshare.net/williansdepaula/coding-dojo-10208494
Ela foi usada para uma apresentação de 10 min.
Lean tem foco total na qualidade. Essa palestra explora os conceitos do Lean e fazer uma relação com testes de software, trazendo os conceitos fundamentais do Lean: Qualidade total, redução de desperdícios, melhoria contínua, produção puxada, variabilidade, autonomação, nivelamento de carga, just-in-time, fluxo de produção, kanban e gestão visual.
Nesta palestra, vemos como é a carreira de um desenvolvedor Java, falamos um pouco sobre o mercado, sobre o desenvolvimento de um profissional e damos algumas dicas de como se tornar um ninja.
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentDaniel Wildt
Palestra falando sobre alguns problemas vivenciados por Daniel Wildt no uso de Métodos Ágeis e algumas dicas sobre práticas e princípios de Métodos Ágeis.
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentDaniel Wildt
Palestra falando sobre alguns problemas vivenciados por Daniel Wildt no uso de Métodos Ágeis e algumas dicas sobre práticas e princípios de Métodos Ágeis.
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksPablo Dall'Oglio
Nesta apresentação é demonstrada a evolução na maneira de programar entre as linguagens Clipper (procedural, modo texto), Delphi (Orientada a Objetos, focada em componentes, Desktop), até as linguagens Ruby e PHP, com exemplos que demonstram o uso de frameworks MVC.
Nesse talk, vamos falar rapidinho sobre essa arte maravilhosa chamada Desenvolvimento de Software. Devo usar uma IDE? Devo seguir boas práticas? Zona de conforto é bom?
PS: O Slideshare por algum motivo detona a fonte da apresentação. Não repare a bagunça.
Design de Interação Criativo, Social, Emotivo e ComplicadoUTFPR
Design de Interação é, na minha visão, uma abordagem criativa para a Tecnologia da Informação, trazendo para o projeto a dimensão social, emotiva e contraditória das relações entre pessoas e objetos.
JS Experience 2017 - Utilizando a virtualização para simplificar o desenvolvi...iMasters
Charles Carrari, Analista de desenvolvimento Front- End da MundiPagg fala sobre Utilizando a virtualização para simplificar o desenvolvimento front-end no JS Experience'17
Saiba mais em https://eventos.imasters.com.br/jsexperience
Muitos desenvolvedores se preocupam bastante com os aspectos estáticos dos sistemas que constroem, tais como se o código está bonito, se está idiomático, se está seguindo um determinado styleguide, entre outros bullet points do bom design de código; e isso é muito bom. Mas isso não é tudo. Há ainda o aspecto real da coisa, o Runtime. É no Runtime que ômis e mininus se sobressaem. E essa apresentação é sobre com o que os ômis mais se preocupam quanto estão escrevendo sistemas críticos – para o Mundo Real, é lógico.
Palestra polêmica sobre o futuro da plataforma Java, com ênfase em novas linguagens para a JVM. Apresentada no Maratona4Java de Brasília.
http://blog.fragmental.com.br/wiki/index.php/Maratona4Java2005:_Alem_do_Java%E2%84%A2:_Novos_Horizontes_para_o_Desenvolvedor
Introdução a modularidade com RequireJS e BDD com Jasmine. Tais ferramentas permitem criar uma estrutura firme para desenvolver projetos JavaScript. Projetos estruturados dessa maneira podem rodar tanto no navegador quanto no NodeJS.
Demonstrações disponíveis em:
https://github.com/awvalenti/javascript-firme
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
1. Aumente o QI
dos Seus Objetos
Cam ada de Negócios
de Verdade com Spring
Phillip Calçado
www.fragmental.com.br
2. Objetivos
(Tentar dominar o mundo!)
• Workshop de Projet o de Software Orientado a Objetos
• Apresent ar e discut ir técnicas “alt ernat ivas” para
aplicações em POO
• Criar a cam ada de negócios baseada em objet os
int eligentes
• Int roduzir e utilizar o IoC (com o Spring Fram ework) para
int egração ent re cam adas
• Se divert ir Objetivos
Não São no processo
(Droga! Sabia que devia ter me inscrito no outro curso...)
• Ut ilizar m ais que o necessário do Spring (IoC básico)
• Fazer um a aplicação com plet a
• Mudar as suas convicções, sua cabeça, sua religião, seu
t im e de fut ebol...
www.fragmental.com.br Slide 2
3. Pré- Requisitos
(Pentium IV, 5 1 2 MB RAM DDR,...)
• Orient ação a Objetos, Java, JEE, Eclipse, Web... o de
sem pre!
• Bom senso
• Vontade de Debat er
www.fragmental.com.br Slide 3
4. Agenda
(A gente veio aqui pra beber ou conversar?)
• Quem é Você?
• Int rodução: Cam adas, Objetos e Tudo Mais
• A Cam ada de Negócios
• Quando Não Usar Um a
• Nosso Desafio de Hoje
• Est órias
• Modelando o Dom ínio
• Duas Alt ernat ivas Típicas de Persist ência
• Pequena Int rodução à IoC
• Int egrando Nossa Prim eira Versão (e rezando pra
funcionar)
• Conclusão
www.fragmental.com.br Slide 4
5. Quem é Você?
• Phillip Calçado, a.k.a. Shoes
• Program ador desde 1996
• Com Java desde 2003 (“¡ adios, C+ + !”)
• Colaborador do GUJ
• JUG Leader do RioJUG
• Consultor, inst rut or, coach
• Diversos projet os open- source (alguns chegaram até a t er
um a versão 1.0!)
• Atualm ente t rabalhando com aplicações em redes GSM
(NÃO É JME!!!)
www.fragmental.com.br Slide 5
6. Introdução: Camadas, Objetos e Tudo
Mais esse povo de Java fala tanto em camadas?)
(Por que
• Divisão Lógica de
com ponent es de
soft ware(layer) ou
hardware(tier)
• Separam com ponent es
por responsabilidade
com um
• Se com unicam de cim a
para baix o (quase sem pre)
• Cam adas Fam osas:
– TCP/ IP
– Sistem as Operacionais
– Java
– .Net
www.fragmental.com.br Slide 6
7. Introdução: Camadas, Objetos e Tudo
Maisfamosas tres camadas. Massa, recheio e cobertura. A culinaria francesa em geral
(“Ah, as
me decepciona, mas as sobremesas sao sempre otimas. “ – Carlos Villela - GUJ )
• 2, 3, 4 ou N Cam adas?
• Camada de
Apresentação é a
Interface
• Camada de Aplicação
coordena casos de uso
• Camada de Negócios é
onde fica a Lógica de
negócios
• Camada de Persistência
são os com ponent es que
salvam o estado do objeto
em algum lugar
www.fragmental.com.br Slide 7
9. A Camada de Negócios
(Como você acha que os dados vão parar nas tabelinhas?)
• Cham ada tam bém de Camada de Domínio
• Modela o dom ínio do problem a
• Sempre independent e da interface
• Preferencialmente Independente da Im plem entação de
Persist ência
• É o sistema!
www.fragmental.com.br Slide 9
10. Quando Não Usar Uma
(Canhões, moscas...)
• Não Compensa em:
• Aplicações sim ples que não fazem m ais que t irar e
colocar regist ros no banco
• Protótipos
• Relatórios Pesados
• Soluções Menos Problemáticas:
• Shell Script s
• Ruby on Rails/ PHP
• Ferram ent as do SGBD
• Ferram ent as RAD
www.fragmental.com.br Slide 10
11. Nosso Desafio de Hoje
(Caso queiram aceitá- lo...)
• Sist em a para Cadastro em Eventos
• Protótipo da int erface web
• Protótipo da Persistência (DAO genérico em m em ória)
www.fragmental.com.br Slide 11
12. Estórias:
Cadast rar Participant e
Cadast rar Palestra
Se inscrever em Palestra
Registrar Presença em Palest ra
www.fragmental.com.br Slide 12
13. Modelando o Domínio
(Onde foi parar meu DER?)
Um domain model não é um diagrama em
particular; é a idéia que o diagrama que passar.
Não é apenas o conhecimento na cabeça de um
especialista no domínio; é uma seletiva abstração
deste conhecimento rigorosamente organizada.
Um diagrama pode representar e comunicar
um modelo, assim como podem fazê-lo código
bem escrito ou uma frase em inglês.
Eric Evans, Domain-Driven Design
www.fragmental.com.br Slide 13
14. Modelando o Domínio
(Como assim não tem DER?)
• Mantenha sempre sua implementação ligada com seu
modelo
• O melhor meio de não deixar um modelo ficar
defasado
• Crie uma linguagem e API baseadas no seu Modelo
• Faça seus desenvolvedores falarem a mesma língua
dos usuários
www.fragmental.com.br Slide 14
15. Modelando o Domínio
(Nunca vi disso..coisa de Java, tinha que ser!)
• Se prepare para a evolução do Modelo
• Conceitos importantes entram, supérfluos saem
• Pratique Experimentação e Brainstorming
• Pense, discuta, crie, teste
• Busque feedback dos especialistas do domínio
• Ex plique seu flux o de atividades. Faz sentido para
eles?
www.fragmental.com.br Slide 15
16. Duas Alternativas Típicas de Persistência
(Você ainda sonha em não suar Banco de Dados?)
www.fragmental.com.br Slide 16
23. Pequena Introdução à IoC
(Ele falou que me ligava...)
Don’t call us, we’ll call you.
The Hollywood Principle
www.fragmental.com.br Slide 23
24. Pequena Introdução à IoC
(Ele falou que me ligava...)
www.fragmental.com.br Slide 24
25. Pequena Introdução à IoC
(Ele falou que me ligava...)
www.fragmental.com.br Slide 25
26. Integrando Nossa Primeira Versão
(e rezando pra funcionar)
(Este bean encontra- se fora de área ou desligado.)
www.fragmental.com.br Slide 26
27. Integrando Nossa Primeira Versão
(e rezando pra funcionar)
(Este bean encontra- se fora de área ou desligado.)
<beans>
<bean class=“GerenciadorCoisasquot; id=“gerenciadorquot;>
<property name=“repositorioDeCoisasquot;>
<ref bean=“repositorioquot;/>
</property>
</bean>
<bean class=“DaoCoisasquot; id=“repositorio“ />
</beans>
www.fragmental.com.br Slide 27
30. Autores Recomendados
• Craig Larman – Applying UML and Pat t erns
• Eric Evans – Dom ain- Driven Design
• Bertrand Meyer – Object - Orient ed Software Construct ion
• Martin Fowler – Refactoring, PEAI, Analisys Patt erns...
• Rod Johnson – J2EE Developm en Wit hout EJB
• Bruce Tate & Justin Gehtland – Bett er, Faster, Light er
Java
• Meilir Page- Jones – Fundam ent als of Object- Orient ed
Design Using UML
www.fragmental.com.br Slide 30