O documento introduz o framework Grails, começando por explicar os princípios ágeis e o que é ser ágil. Em seguida, apresenta a linguagem Groovy e como o Grails utiliza Groovy e padrões como convention over configuration para ser leve e produtivo. Por fim, explica os principais recursos do Grails como domain classes, controllers, validações e o ORM.
O documento discute boas práticas e refatoração de código, incluindo o uso de interfaces, herança, strings, nomes significativos, métodos pequenos e comentários.
Este documento apresenta um treinamento sobre Grails, incluindo: (1) introdução ao Groovy e suas funcionalidades, (2) modelagem de domínio com classes e relacionamentos, e (3) geração automática de telas e controle de acesso com plugins.
O documento descreve as principais características do framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza convenções ao invés de configurações;
2) Grails permite aumentar a produtividade dos desenvolvedores ao reduzir a complexidade de projetos Java/JEE através do uso do Spring Framework e Hibernate;
3) Grails possui características como GORM, scaffolding, internacionalização e testes que facilitam o desenvolvimento rápido de aplicações web.
Produtividade na web_com_groovy_e_grails_pt2Lucas Aquiles
O documento descreve as principais características do framework Grails para desenvolvimento web com Groovy. O Grails permite alta produtividade através de convenções, reduzindo a complexidade em relação a outras tecnologias como Spring. O documento explica como instalar e configurar um projeto Grails, sua estrutura MVC e ferramentas como GORM, testes e internacionalização.
This document discusses how to quickly build web applications using the Django framework. It covers installing Django, creating models and templates, and building a basic job listing application. The goal is to demonstrate how Django allows for rapid development through features like automatic administration interfaces, URL routing, and object relational mapping.
Este documento discute como comunidades abertas podem ser criadas em subsites usando DotLRN e acs-subsites. Isso permite que sites governamentais tenham gerenciamento de conteúdo aberto e simples, com flexibilidade para layouts personalizados ou padrão para cada comunidade. Integração entre o new-portal e acs-subsites é necessária para essa implementação.
Design de código: princípios e práticas para ter um código sustentávelAndrews Medina
Escrever código é algo fácil o difícil é manter seu código limpo, legível por muito tempo sem transformá-lo em um código legado. Irei abordar várias práticas, princípios e padrões que nos ajudam a escrever e manter o código limpo.
O documento apresenta o framework Grails para desenvolvimento web. Grails é construído em cima do Spring e foca em produtividade através de convenções, ferramentas de código e linguagem dinâmica Groovy. O documento descreve os principais componentes de Grails como modelagem de domínio, mapeamento objeto-relacional, serviços, scripts de criação e plugins.
O documento discute boas práticas e refatoração de código, incluindo o uso de interfaces, herança, strings, nomes significativos, métodos pequenos e comentários.
Este documento apresenta um treinamento sobre Grails, incluindo: (1) introdução ao Groovy e suas funcionalidades, (2) modelagem de domínio com classes e relacionamentos, e (3) geração automática de telas e controle de acesso com plugins.
O documento descreve as principais características do framework Grails:
1) Grails é um framework para desenvolvimento web baseado em Java que utiliza convenções ao invés de configurações;
2) Grails permite aumentar a produtividade dos desenvolvedores ao reduzir a complexidade de projetos Java/JEE através do uso do Spring Framework e Hibernate;
3) Grails possui características como GORM, scaffolding, internacionalização e testes que facilitam o desenvolvimento rápido de aplicações web.
Produtividade na web_com_groovy_e_grails_pt2Lucas Aquiles
O documento descreve as principais características do framework Grails para desenvolvimento web com Groovy. O Grails permite alta produtividade através de convenções, reduzindo a complexidade em relação a outras tecnologias como Spring. O documento explica como instalar e configurar um projeto Grails, sua estrutura MVC e ferramentas como GORM, testes e internacionalização.
This document discusses how to quickly build web applications using the Django framework. It covers installing Django, creating models and templates, and building a basic job listing application. The goal is to demonstrate how Django allows for rapid development through features like automatic administration interfaces, URL routing, and object relational mapping.
Este documento discute como comunidades abertas podem ser criadas em subsites usando DotLRN e acs-subsites. Isso permite que sites governamentais tenham gerenciamento de conteúdo aberto e simples, com flexibilidade para layouts personalizados ou padrão para cada comunidade. Integração entre o new-portal e acs-subsites é necessária para essa implementação.
Design de código: princípios e práticas para ter um código sustentávelAndrews Medina
Escrever código é algo fácil o difícil é manter seu código limpo, legível por muito tempo sem transformá-lo em um código legado. Irei abordar várias práticas, princípios e padrões que nos ajudam a escrever e manter o código limpo.
O documento apresenta o framework Grails para desenvolvimento web. Grails é construído em cima do Spring e foca em produtividade através de convenções, ferramentas de código e linguagem dinâmica Groovy. O documento descreve os principais componentes de Grails como modelagem de domínio, mapeamento objeto-relacional, serviços, scripts de criação e plugins.
Rafael Garcia - Yii Framework, principais características e em açãoRafael Garcia
O documento apresenta Rafael Alves Nogueira Garcia, desenvolvedor PHP há 9 anos que desenvolve com o framework Yii há 2 anos. Ele já desenvolveu algumas extensões para o Yii, como wrappers para extensões Jquery e integração com PHP IDS.
Este trabalho apresenta o desenvolvimento de um sistema para a empresa "Aluga Buggy" utilizando técnicas de engenharia de software. Inclui um diagrama de classe, modelo conceitual e lógico de banco de dados, implementação de classes em C# e proposta de rede distribuída para interligar filiais e matriz.
Levando Serverless para o Edge - ARC301 - Sao Paulo SummitAmazon Web Services
O documento discute o uso de serverless na borda (edge computing) com o Lambda@Edge da AWS. Em três pontos:
1) O Lambda@Edge permite executar funções Lambda em locações globais e próximas aos usuários finais.
2) Isso melhora a experiência do usuário ao trazer código para a borda da rede de distribuição de conteúdo CloudFront.
3) Funções podem ser usadas para gerar respostas, rotear solicitações e modificar cabeçalhos de resposta na borda global.
O Amazon CloudSearch é um serviço gerenciado de buscas em larga escala. É a mesma funcionalidade disponível no site da amazon.com, disponível tambem para a sua empresa. Nesta apresentação avançada, exploramos o CloudSearch e a sua integração com diversas ferramentas, e arquiteturas de uso.
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
O documento apresenta conceitos sobre desenvolvimento para iOS. Ele discute sobre a plataforma iOS, pré-requisitos, ferramentas e recursos para desenvolvedores como Xcode, Interface Builder, UIKit e Objective-C. Imagens, elementos de controle como botões, sliders e segmentos são apresentados com ênfase na interface gráfica.
O documento fornece instruções para construir uma ontologia sobre Fórmula 1 usando conceitos da Web Semântica. Ele explica como modelar classes como Campeonato, Piloto e Equipe e propriedades como nome, equipe de um piloto e fabricante de pneus de uma equipe. Também mostra como consultar e inserir dados na ontologia usando SPARQL.
Aplicações rápidas para a Web com DjangoFreedom DayMS
1) The document discusses how to build quick web applications using the Django framework.
2) It covers topics like presenting Django, the importance of documentation, the job market, installing Django on Linux, and creating a simple application.
3) The presentation includes creating models, views, templates, and administering the application using Django's automatic admin interface.
Eduardo Bregaida apresenta seu perfil profissional como desenvolvedor Java e Scrum Master e seu objetivo de se tornar um piloto comercial de avião. Ele oferece ajuda a James para desenvolver um sistema para a loja de aeronaves herdada por James. Eles discutem os requisitos do domínio, incluindo diferentes tipos de aeronaves e suas características, e como modelar e implementar o sistema usando Domain-Driven Design (DDD), Behavior-Driven Development (BDD) e Test-Driven Development (TDD).
O documento resume as principais características da linguagem de programação Groovy e do framework Grails. Em 3 frases ou menos:
Groovy é uma linguagem dinâmica que roda na máquina virtual Java e tem sintaxe semelhante a Java, permitindo integrar código Java e Groovy. Grails é um framework web baseado em Groovy que facilita o desenvolvimento rápido de aplicações web seguindo convenções como gerenciamento de dependências, mapeamento objeto-relacional e testes. Juntos, Groovy e Grails permitem desenvolver aplicações web ricas de
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...tdc-globalcode
Este documento discute duas opções para armazenamento de dados em aplicativos móveis: Realm e Firebase. Realm é um banco de dados orientado a objetos que promete ser mais rápido que o SQLite ou qualquer outro ORM. Firebase fornece uma variedade de ferramentas para desenvolvimento de aplicativos móveis, incluindo um banco de dados NoSQL hospedado na nuvem. O documento explica como configurar e usar ambas as opções para armazenar e recuperar dados em aplicativos Android.
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
O documento discute a evolução de um framework PHP chamado Adianti Framework ao longo dos anos. Ele aborda desafios como aderir a padrões da comunidade, acrescentar novos componentes, melhorar a estrutura de diretórios e substituir tecnologias incorporadas.
GraphQL na Era das APIs é uma apresentação sobre GraphQL. A apresentação introduz APIs, RESTful e GraphQL, fornecendo exemplos de cada um. Ela também discute dicas e boas práticas de GraphQL, o ecossistema ao redor de GraphQL e pontos de atenção ao usar GraphQL. A apresentação termina definindo GraphQL em poucas palavras, destacando seus principais benefícios.
Exercicios professor marcos monteiro (1)jose-junior89
1) A diferença entre classe e objeto é que classe é uma abstração que define um tipo de objeto enquanto objeto é uma instância concreta da classe.
2) O método construtor é responsável pela instanciação de um objeto ao ser invocado pelo operador new.
3) Na instrução Computador computador = new Computador(); a classe é Computador, o objeto é computador, o construtor é Computador() e a operação de instanciação é new Computador().
Este documento discute conceitos de programação orientada a objetos em Javascript para desenvolvedores acostumados com C#. Ele explica como Javascript lida com objetos dinâmicos, "classes", herança e outros conceitos usando o objeto prototype. O documento também mostra como simular classes abstratas e métodos de extensão usando prototype.
Grails - Destaques (para quem já sabe Java)Douglas Mendes
O documento apresenta os principais recursos da linguagem Groovy e do framework Grails, destacando como o código fica mais conciso graças ao uso do dialeto Groovy e da convenção sobre configuração. Também descreve recursos como closures, operadores como ?. e ?:, e como a reflexão torna o acesso a propriedades e métodos mais simples.
O documento discute métodos getters e setters em Java para encapsulamento. Ele fornece exemplos de como criar métodos get e set para recuperar e definir valores de atributos de uma classe Carro e mostrar seu uso para definir a marca do carro. O documento também explica como gerar automaticamente esses métodos no Eclipse e NetBeans.
O documento apresenta o ORM Doctrine para PHP, descrevendo suas principais características como mapeamento objeto-relacional, tarefas via linha de comando, caching, linguagem de consulta DQL e relacionamentos entre objetos.
O documento discute princípios de robustez e qualidade de software, incluindo a Lei de Murphy, degradação graciosa, Lei de Postel, baixo acoplamento, Lei de Demeter, e legado de código. O objetivo é ensinar como desenvolvedores podem escrever software que seja resistente a falhas e problemas imprevistos.
O documento discute os principais frameworks PHP, comparando suas características e funcionalidades. Apresenta detalhes sobre arquitetura, acesso a dados, formulários, validações, cache, segurança, internacionalização e documentação de frameworks como CakePHP, CodeIgniter, Symfony e Zend Framework.
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...UFPA
This document describes an approach to generate evidence briefings to transfer knowledge from systematic reviews to software engineering practitioners. It involves selecting relevant systematic reviews, extracting data from them, generating one-page briefings summarizing the reviews' goals and key findings, and evaluating the briefings with practitioners and researchers. Surveys found that practitioners rarely use research papers but positively evaluated the briefings, finding them clear and reliable. Researchers also felt the briefings well covered the main findings of the original reviews. The approach aims to help bridge the gap between software engineering research and practice.
More Common Than You Think: An In-Depth Study of Casual ContributorsUFPA
1) Casual contributions to open source software projects are very common, with over 80% of developers making 5 or fewer contributions.
2) Common casual contributions include fixing bugs (30%), improving documentation (29%), and adding new features (19%).
3) Both casual contributors and project maintainers report that casual contributors are motivated by "scratching their own itch" and an easy contribution process. Lack of time is a major barrier reported by both groups. Maintainers see benefits like new perspectives and small issues being quickly solved.
Rafael Garcia - Yii Framework, principais características e em açãoRafael Garcia
O documento apresenta Rafael Alves Nogueira Garcia, desenvolvedor PHP há 9 anos que desenvolve com o framework Yii há 2 anos. Ele já desenvolveu algumas extensões para o Yii, como wrappers para extensões Jquery e integração com PHP IDS.
Este trabalho apresenta o desenvolvimento de um sistema para a empresa "Aluga Buggy" utilizando técnicas de engenharia de software. Inclui um diagrama de classe, modelo conceitual e lógico de banco de dados, implementação de classes em C# e proposta de rede distribuída para interligar filiais e matriz.
Levando Serverless para o Edge - ARC301 - Sao Paulo SummitAmazon Web Services
O documento discute o uso de serverless na borda (edge computing) com o Lambda@Edge da AWS. Em três pontos:
1) O Lambda@Edge permite executar funções Lambda em locações globais e próximas aos usuários finais.
2) Isso melhora a experiência do usuário ao trazer código para a borda da rede de distribuição de conteúdo CloudFront.
3) Funções podem ser usadas para gerar respostas, rotear solicitações e modificar cabeçalhos de resposta na borda global.
O Amazon CloudSearch é um serviço gerenciado de buscas em larga escala. É a mesma funcionalidade disponível no site da amazon.com, disponível tambem para a sua empresa. Nesta apresentação avançada, exploramos o CloudSearch e a sua integração com diversas ferramentas, e arquiteturas de uso.
TDC2016 Boas Práticas SQL em Banco Relacional para DesenvolvedoresFernando Franquini
Este documento fornece um resumo de uma palestra sobre boas práticas de SQL em bancos de dados relacionais para desenvolvedores. A palestra inclui tópicos como projeção, chaves, junções, views, triggers, bind variables, padrões ANSI e um exemplo real utilizando JPA. O palestrante tem mais de 18 anos de experiência em TIC e atua como DBA há 10 anos principalmente em projetos Java.
O documento apresenta conceitos sobre desenvolvimento para iOS. Ele discute sobre a plataforma iOS, pré-requisitos, ferramentas e recursos para desenvolvedores como Xcode, Interface Builder, UIKit e Objective-C. Imagens, elementos de controle como botões, sliders e segmentos são apresentados com ênfase na interface gráfica.
O documento fornece instruções para construir uma ontologia sobre Fórmula 1 usando conceitos da Web Semântica. Ele explica como modelar classes como Campeonato, Piloto e Equipe e propriedades como nome, equipe de um piloto e fabricante de pneus de uma equipe. Também mostra como consultar e inserir dados na ontologia usando SPARQL.
Aplicações rápidas para a Web com DjangoFreedom DayMS
1) The document discusses how to build quick web applications using the Django framework.
2) It covers topics like presenting Django, the importance of documentation, the job market, installing Django on Linux, and creating a simple application.
3) The presentation includes creating models, views, templates, and administering the application using Django's automatic admin interface.
Eduardo Bregaida apresenta seu perfil profissional como desenvolvedor Java e Scrum Master e seu objetivo de se tornar um piloto comercial de avião. Ele oferece ajuda a James para desenvolver um sistema para a loja de aeronaves herdada por James. Eles discutem os requisitos do domínio, incluindo diferentes tipos de aeronaves e suas características, e como modelar e implementar o sistema usando Domain-Driven Design (DDD), Behavior-Driven Development (BDD) e Test-Driven Development (TDD).
O documento resume as principais características da linguagem de programação Groovy e do framework Grails. Em 3 frases ou menos:
Groovy é uma linguagem dinâmica que roda na máquina virtual Java e tem sintaxe semelhante a Java, permitindo integrar código Java e Groovy. Grails é um framework web baseado em Groovy que facilita o desenvolvimento rápido de aplicações web seguindo convenções como gerenciamento de dependências, mapeamento objeto-relacional e testes. Juntos, Groovy e Grails permitem desenvolver aplicações web ricas de
TDC2016POA | Trilha Banco de Dados - Firebase e Realm, o NoSQL ganha força no...tdc-globalcode
Este documento discute duas opções para armazenamento de dados em aplicativos móveis: Realm e Firebase. Realm é um banco de dados orientado a objetos que promete ser mais rápido que o SQLite ou qualquer outro ORM. Firebase fornece uma variedade de ferramentas para desenvolvimento de aplicativos móveis, incluindo um banco de dados NoSQL hospedado na nuvem. O documento explica como configurar e usar ambas as opções para armazenar e recuperar dados em aplicativos Android.
Programando para programadores: Desafios na evolução de um FrameworkPablo Dall'Oglio
O documento discute a evolução de um framework PHP chamado Adianti Framework ao longo dos anos. Ele aborda desafios como aderir a padrões da comunidade, acrescentar novos componentes, melhorar a estrutura de diretórios e substituir tecnologias incorporadas.
GraphQL na Era das APIs é uma apresentação sobre GraphQL. A apresentação introduz APIs, RESTful e GraphQL, fornecendo exemplos de cada um. Ela também discute dicas e boas práticas de GraphQL, o ecossistema ao redor de GraphQL e pontos de atenção ao usar GraphQL. A apresentação termina definindo GraphQL em poucas palavras, destacando seus principais benefícios.
Exercicios professor marcos monteiro (1)jose-junior89
1) A diferença entre classe e objeto é que classe é uma abstração que define um tipo de objeto enquanto objeto é uma instância concreta da classe.
2) O método construtor é responsável pela instanciação de um objeto ao ser invocado pelo operador new.
3) Na instrução Computador computador = new Computador(); a classe é Computador, o objeto é computador, o construtor é Computador() e a operação de instanciação é new Computador().
Este documento discute conceitos de programação orientada a objetos em Javascript para desenvolvedores acostumados com C#. Ele explica como Javascript lida com objetos dinâmicos, "classes", herança e outros conceitos usando o objeto prototype. O documento também mostra como simular classes abstratas e métodos de extensão usando prototype.
Grails - Destaques (para quem já sabe Java)Douglas Mendes
O documento apresenta os principais recursos da linguagem Groovy e do framework Grails, destacando como o código fica mais conciso graças ao uso do dialeto Groovy e da convenção sobre configuração. Também descreve recursos como closures, operadores como ?. e ?:, e como a reflexão torna o acesso a propriedades e métodos mais simples.
O documento discute métodos getters e setters em Java para encapsulamento. Ele fornece exemplos de como criar métodos get e set para recuperar e definir valores de atributos de uma classe Carro e mostrar seu uso para definir a marca do carro. O documento também explica como gerar automaticamente esses métodos no Eclipse e NetBeans.
O documento apresenta o ORM Doctrine para PHP, descrevendo suas principais características como mapeamento objeto-relacional, tarefas via linha de comando, caching, linguagem de consulta DQL e relacionamentos entre objetos.
O documento discute princípios de robustez e qualidade de software, incluindo a Lei de Murphy, degradação graciosa, Lei de Postel, baixo acoplamento, Lei de Demeter, e legado de código. O objetivo é ensinar como desenvolvedores podem escrever software que seja resistente a falhas e problemas imprevistos.
O documento discute os principais frameworks PHP, comparando suas características e funcionalidades. Apresenta detalhes sobre arquitetura, acesso a dados, formulários, validações, cache, segurança, internacionalização e documentação de frameworks como CakePHP, CodeIgniter, Symfony e Zend Framework.
Evidence Briefings: Towards a Medium to Transfer Knowledge from Systematic Re...UFPA
This document describes an approach to generate evidence briefings to transfer knowledge from systematic reviews to software engineering practitioners. It involves selecting relevant systematic reviews, extracting data from them, generating one-page briefings summarizing the reviews' goals and key findings, and evaluating the briefings with practitioners and researchers. Surveys found that practitioners rarely use research papers but positively evaluated the briefings, finding them clear and reliable. Researchers also felt the briefings well covered the main findings of the original reviews. The approach aims to help bridge the gap between software engineering research and practice.
More Common Than You Think: An In-Depth Study of Casual ContributorsUFPA
1) Casual contributions to open source software projects are very common, with over 80% of developers making 5 or fewer contributions.
2) Common casual contributions include fixing bugs (30%), improving documentation (29%), and adding new features (19%).
3) Both casual contributors and project maintainers report that casual contributors are motivated by "scratching their own itch" and an easy contribution process. Lack of time is a major barrier reported by both groups. Maintainers see benefits like new perspectives and small issues being quickly solved.
What Programmers Say About Refactoring Tools? An Empirical Investigation of ...UFPA
The document analyzes questions and answers from StackOverflow related to refactoring tools to understand programmers' perspectives. It finds that the most desired features are refactoring support for dynamic languages and refactoring recommendations. Common barriers to adoption are usability problems and lack of trust in tools. Interest in refactoring tools comes from both novice and senior programmers, and increased only slightly over time. The study provides insights for tool developers on features to prioritize and adoption challenges to address.
O documento discute possibilidades com Python para integração de serviços web, escalabilidade e NoSQL. Ele aborda REST, APIs do Twitter e Facebook, caching, paralelismo, frameworks e o modelo de dados de Cassandra.
This document provides an introduction to computer vision. It discusses how computer vision works by acquiring images, processing them, and analyzing them. It covers various computer vision techniques like template matching to find instances in images, keypoint matching to find features, and using Haar-like features to classify generic objects like faces. It also provides examples of code snippets using the SimpleCV library to implement these techniques. The document is meant to demonstrate how to get started with computer vision using Python.
Porque aprender haskell me fez um programador python melhor?UFPA
The document discusses how learning Haskell made the author a better Python programmer. It argues that by learning Haskell, the author was able to better understand Python code, code written by others, the Python language itself, and frameworks built for Python. Learning Haskell provided a deeper understanding of programming languages in general and allowed the author to critically evaluate their own language choices.
Are Java Programmers Transitioning to Multicore? UFPA
The document describes a large-scale study of Java open-source projects to analyze how programmers are using concurrency constructs in light of the transition to multicore processors. The study analyzed over 2,300 projects to determine the frequency of concurrency mechanisms used and how their usage has evolved over time. Key findings include that larger projects were more likely to use Java's concurrency utilities, while smaller projects relied more on synchronized blocks, and that usage of synchronized blocks and concurrent collections generally increased as projects grew in size.
O documento discute os caminhos da vida acadêmica e profissional na área da computação. Ele descreve as etapas da vida acadêmica como graduação, mestrado, doutorado, entre outras, e destaca que isso requer de 12 anos de dedicação. Também aborda como se manter financeiramente nesse período e as opções de carreira após a conclusão como professor ou pesquisador.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
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).
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.
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
3. Introdução
Modelos ágeis
Processos, técnicas, ferramentas, whatever
O que é ser ágil?
Porque precisamos ser ágeis?
Duas coisas que influenciam na agilidade
A atitude dos membros da equipe
As ferramentas
8. Groovy
Linguagem OO baseada no Java
Mas com boas idéias de outras linguagens
Ruby, Python
Roda na JVM
Tipagem dinâmica
Onde tudo é objeto
Pode ser usada como script
Sem algumas burocracias do Java
Sintax Familiar
12. Groovy + Rails = Grails
Instalação
Primeiros comandos
Padrão de projetos
Domain Classes
Controllers e Views
Validações
Relacionamentos
Grails ORM (GORM)
13. Grails
Instalação
Download do arquivo grails.a.b.c.zip
Descopactar e declarar a variável GRAILS_HOME
Digilte: grails
14. Grails
Instalação
Download do arquivo grails.a.b.c.zip
Descopactar e declarar a variável GRAILS_HOME
Digilte: grails
gustavo@zeus:~$ grails
Welcome to Grails 1.3.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /opt/grails-1.3.2
No script name specified. Use 'grails help' for more
info or 'grails interactive' to enter interactive mode
16. Grails
Primeiros comandos
$ grails create-app racetrack
Welcome to Grails 1.2 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /opt/grails
...
Created Grails Application at /web/racetrack
17. Grails
Primeiros comandos
$ grails [–Dserver.port=9090] run-app
...
Base Directory: /Users/sdavis/web/racetrack
Running script /opt/grails/scripts/RunApp.groovy
Environment set to development
[mkdir] Created dir:
/Users/sdavis/.grails/1.2/projects/racetrack/classes
[groovyc] Compiling 6 source files to
/Users/sdavis/.grails/1.2/projects/racetrack/classes
...
Running Grails application..
Server running. Browse to http://localhost:8080/racetrack
19. C
M
Grails
V
Padrão de projetos
Lembre-se:
Convention over Configuration
20. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
21. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
$ grails create-domain-class Inscricao
22. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
$ grails create-domain-class Inscricao
23. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
$ grails create-domain-class Inscricao
class Inscricao {
String nome
Date dataAniversario
String email
Boolean pago
....
}
24. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
$ grails create-domain-class Inscricao
class Inscricao {
....
dateCreated
lastUpdated
....
}
25. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
$ grails create-domain-class Inscricao
class Inscricao {
....
dateCreated variáveis especiais
lastUpdated
....
}
26. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
class Inscricao {
$ grails create-domain-class Inscricao .....
def beforeInsert = {
class Inscricao { // codigo
.... }
def beforeUpdate = {
dateCreated }
lastUpdated def beforeDelete = {
.... }
} def onLoad = {
}
}
27. Grails
Domain Classes
Definem os elementos da aplicação
Inscrição para a corrida
nome, email, pago?
class Inscricao {
.....
def beforeInsert = {
// codigo
Para saber mais: }
http://grails.org/GORM+-+Mapping+DSL. def beforeUpdate = {
}
def beforeDelete = {
}
def onLoad = {
}
}
28. Grails
Domain Classes
$ grails create-domain-class Corrida
class Corrida {
String nome
Date dataIncio
String cidade
String estado
BigDecimal distancia
BigDecimal custo
....
}
29. Grails
Domain Classes
$ grails create-domain-class Corrida
class Corrida {
String nome
Date dataIncio
String cidade
String estado
BigDecimal distancia
BigDecimal custo
....
}
31. Grails
Controllers e Views
class CorridaController {
$ grails create-controller Corrida
def scaffold = Corrida
$ grails generate-views
}
32. Grails
Controllers e Views
scaffold: gera uma aplicação inteira para uma
determinada classe de domínio, incluindo:
As views necessárias
Controle de ações de um CRUD
33. Grails
Controllers e Views
scaffold: gera uma aplicação inteira para uma
determinada classe de domínio, incluindo:
As views necessárias
Controle de ações de um CRUD
scaffold: não é o fim, é apenas o começo
35. Grails
Validações
1. Apenas inscrições de estados próximos
2. O custo não pode ser maior que 100
3. Toda corrida precisa de um nome
4. Não existe distância negativa
36. Grails
Validações
1. Apenas inscrições de estados próximos
2. O custo não pode ser maior que 100
3. Toda corrida precisa de um nome
4. Não existe distância negativa
static constraints = {
nome(blank:false, maxSize:50)
estado(inList:["PA", "AM", "MA", "AC"])
cidade()
distancia(min:0.0)
custo(min:0.0, max:100.0)
}
37. Grails
Validações
email crediCard password
inList matches min, max
range minSize, notEqual
maxSize, size
unique url validator
38. Grails
Validações
Personalizando Mensagens
no arquivo: i18n/messages.properties
39. Grails
Validações
Personalizando Mensagens
no arquivo: i18n/messages.properties
corrida.nome.blank=Por favor, forneça um nome para corrida
corrida.nome.maxSize.exceeded=O nome da corrida não pode ser maior
que {3} letras
40. Grails
Validações
Personalizando Mensagens
no arquivo: i18n/messages.properties
corrida.nome.blank=Por favor, forneça um nome para corrida
corrida.nome.maxSize.exceeded=O nome da corrida não pode ser maior
que {3} letras
classe . objeto . propriedade . [propriedade] = Mensagem
41. Grails
Relacionamentos
Uma corrida tem muitas inscrições
1 x N
class Corrida {
.....
static hasMany = [inscricao:Inscricao, ....]
}
42. Grails
Relacionamentos
Uma corrida tem muitas inscrições
1 x N
class Corrida {
.....
static hasMany = [inscricao:Inscricao, ....]
}
class Inscricao {
....
static belongsTo = [corrida:Corrida]
}
43. Grails
Relacionamentos
Uma corrida tem muitas inscrições
1 x N
class Corrida {
.....
static hasMany = [inscricao:Inscricao, ....] Força update
} e delete em
cascata
class Inscricao {
....
static belongsTo = [corrida:Corrida]
}