Programação Funcional

Tamanho: px
Começar a partir da página:

Download "Programação Funcional"

Transcrição

1 Programação Funcional para Desenvolvedores Java Dean Wampler Novatec

2 Authorized Portuguese translation of the English edition of titled Functional Programming for Java Developers, First Edition ISBN Dean Wampler. This translation is published and sold by permission of O'Reilly Media, Inc., the owner of all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Functional Programming for Java Developers, First Edition ISBN Dean Wampler. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. Novatec Editora Ltda Todos os direitos reservados e protegidos pela Lei de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Acauan Pereira Fernandes Revisão gramatical: Giacomo Leone Neto Editoração eletrônica: Carolina Kuwabata ISBN: Histórico de impressões: Setembro/2012 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos São Paulo, SP Brasil Tel.: Fax: novatec@novatec.com.br Site: Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Wampler, Dean Programação funcional para desenvolvedores Java / Dean Wampler ; [tradução Acauan Pereira Fernandes]. -- São Paulo : Novatec Editora, Título original: Functional programming for Java developers Bibliografia ISBN Java (Linguagem de programação para computador) I. Título CDD Índices para catálogo sistemático: 1. Java : Linguagem de programação : Computadores : Processamento de dados MP

3 capítulo 1 Por que programação funcional? Há alguns anos, quando muitos desenvolvedores começavam a falar sobre programação funcional (FP Functional Programming) como a melhor forma de lidar com o tópico de concorrência, decidi que estava na hora de aprender mais e a julgar por mim mesmo. Esperava aprender algumas ideias novas, mas supus que ainda usaria a programação orientada a objetos (OOP) como abordagem principal ao desenvolvimento de software. Estava errado. À medida que aprendia sobre programação funcional, encontrava boas ideias para implementar concorrência, conforme havia imaginado, mas também descobri que ela clareava meu pensamento sobre o projeto de tipos 1 e funções. Ela também me permitia escrever código mais conciso. A programação funcional me fez repensar onde os limites dos módulos deveriam ficar e como torná-los melhor para a reutilização. Descobri que a comunidade de programação funcional estava criando sistemas de tipos mais poderosos e inovadores que ajudam a garantir a correção. Também concluí que a programação funcional é mais apropriada para muitos dos desafios únicos da nossa época, como trabalhar com conjuntos massivos de dados e mesmo assim não perder a agilidade já que os requisitos mudam cada vez mais rapidamente e os cronogramas ficam cada vez mais curtos. Em vez de continuar sendo um desenvolvedor OOP que atira um pouco de FP para temperar, atualmente escrevo programas que usam objetos criteriosamente. Você poderia dizer que comecei na FP por causa do tópico da concorrência, mas permaneci pela mudança de paradigma. 1 Ocasionalmente usarei tipo e classe de modo intercambiável, mas não são sinônimos. Veja as definições no Glossário. 13

4 14 Programação Funcional para Desenvolvedores Java O engraçado é que já passei por isso antes. Um fenômeno muito semelhante ocorreu na década de 1980 quando a OOP começou a ser amplamente usada. Os objetos são uma forma ideal de representação gráfica dos widgets, de modo que a OOP era uma escolha natural para desenvolver interfaces gráficas de usuário (GUIs Graphical User Interfaces). Todavia, assim que as pessoas começavam a usar objetos, achavam que eles eram uma forma intuitiva de representar muitos domínios. Você poderia modelar o problema em objetos e então colocar o mesmo modelo de objetos no código! Até mesmo detalhes de implementação, como diversas formas de entrada e saída, pareciam ideias para a modelagem em objetos. Mas sejamos claros: tanto a FP quanto a OOP são ferramentas, não panaceias. Cada uma tem vantagens e desvantagens. É fácil ficar com a testada e provada, mesmo quando pode haver uma forma melhor disponível. Mesmo assim, é difícil acreditar que objetos, que trabalharam tão bem no passado, pudessem ser menos valiosos atualmente, não é? Para mim, meu crescente interesse na programação funcional não é um repúdio aos objetos, que se provaram benéficos. Em vez disso, é um reconhecimento de que as desvantagens dos objetos são mais difíceis de ignorar quando deparadas com os desafios de programação atuais. Os tempos são diferentes da época em que os objetos estavam em ascensão há diversas décadas. Aqui, resumidamente, está o motivo pelo qual me tornei um programador funcional e por que acredito que você deveria aprendê-la também. Para mim, a programação funcional oferece a melhor abordagem para satisfazer aos requisitos a seguir, com os quais me deparo diariamente. Tenho que ser bom na escrita de programas concorrentes Antigamente alguns dos caras inteligentes da equipe escreviam a maior parte do código concorrente, usando concorrência multithread, que requer acesso cuidadosamente sincronizado a estado compartilhado mutável. Ocasionalmente, todos recebiam uma ligação à meia-noite para depurar algum problema sério de concorrência que aparecia após

5 Capítulo 1 Por que programação funcional? 15 o programa já estar sendo usado em produção. Mas, na maior parte do tempo, a maioria dos desenvolvedores poderia ignorar a questão de concorrência. Atualmente, até mesmo o seu telefone tem diversos núcleos de CPU (ou o seu próximo terá). Aprender a escrever software com concorrência robusta não é mais algo opcional. Felizmente, a programação funcional lhe apresenta os princípios corretos para pensar em concorrência e difundiu diversas abstrações de concorrência de nível mais alto que tornam a tarefa muito mais fácil. A programação multithreads, que necessita de acesso sincronizado a estados compartilhados que podem ser alterados, é a linguagem assembly da concorrência. A maioria dos programas são apenas problemas de gerência de dados Atualmente trabalho muito com grandes volumes de dados, na sua maior parte usando o ecossistema de ferramentas Apache Hadoop, construído em torno do MapReduce [Hadoop]. Quando está recebendo terabytes de novos dados por dia, precisa limpar e armazenar esses dados e depois executar uma análise nos petabytes de dados acumulados, você simplesmente não pode se permitir o overhead de objetos. Você quer estruturas de dados e operações muito eficientes sobre esses dados, com um overhead mínimo. A antiga frase da metodologia ágil que diz Qual a coisa mais simples que pode funcionar? ganha um novo significado. Comecei pensando em como gerenciamos conjuntos de dados menores, digamos uma aplicação típica de TI com um banco de dados. Se os objetos adicionam overhead em problemas com grandes volumes de dados, também o fazem para problemas com pequenos volumes de dados? É menos provável que o desempenho e o tamanho do armazenamento sejam um problema nesse caso, mas a agilidade da equipe é uma questão universal. Como uma equipe pequena permanece ágil ao melhorar uma aplicação de TI, ano após ano? Como a equipe mantém o código base tão conciso quanto possível?

6 16 Programação Funcional para Desenvolvedores Java Fui levado à conclusão de que representar fielmente o modelo de objetos do domínio no código pode ser questionável. O mapeamento objeto- -relacional (ORM Object-Relational Mapping) e formas semelhantes middleware para objetos adicionam overhead para transformar dados relacionais em objetos, mover esses objetos pela aplicação e depois transformá-los de volta em dados relacionais para atualizações. É claro que todo esse código extra tem de ser testado e mantido. Sei que esta prática surgiu em parte porque adoramos objetos e muitas vezes odiamos dados relacionais, ou talvez apenas odiemos trabalhar com bancos de dados relacionais. (Falo da minha experiência pessoal.) Todavia, dados relacionais, como os conjuntos de resultados de consultas, são realmente apenas coleções que podem ser manipuladas de uma forma funcional. Seria melhor trabalhar diretamente com esses dados? Mostrarei a você como trabalhar diretamente com coleções mais fundamentais de dados minimiza o overhead de trabalhar com modelos de objetos, ao mesmo tempo em que evita a duplicação e promove o reuso. A programação funcional é mais modular Anos atrás, eu tinha um cliente grande que lutava para realizar seu trabalho com seu código base inchado. Seus competidores estavam obtendo enormes vantagens comparados com ela. Um dia eu vi algo que resumia seu problema. Uma parede com um diagrama UML de mais de um metro e sessenta. Lembro-me de uma classe em especial, a classe Customer (Cliente). Ela se estendia por todo o metro e sessenta. Isso era uma falha na modularidade, especificamente em encontrar os níveis corretos de abstração e decomposição. A classe Customer havia se tornado um saco de tudo que alguém pudesse associar a um de seus clientes. No fim da década de 1980, quando a programação orientada a objetos estava no seu auge, muitas pessoas esperavam que os objetos finalmente resolveriam o problema de criar componentes reusáveis que você conectasse para criar aplicativos, reduzindo grandemente o custo e o tempo de desenvolvimento. Essa visão parece tão razoável que é fácil não perceber o fato de que não acabou tão bem quanto o esperado.

7 Capítulo 1 Por que programação funcional? 17 A maioria dos exemplos bem sucedidos de bibliotecas reusáveis são plataformas que definiram seus próprios padrões que todos tiveram que seguir. Exemplos incluem o JDK, o Spring Framework e a API de plugin Eclipse. Até mesmo a maioria das bibliotecas de componentes de terceiros que poderíamos usar (por exemplo a Apache Commons) têm suas próprias APIs personalizadas com as quais devemos ficar em conformidade. Quanto ao resto do código que precisamos, ainda reescrevemos muito dele projeto após projeto. Assim, o desenvolvimento de software orientado a objetos não é o assembly dos componentes que esperávamos que surgisse. A flexibilidade quase sem limite dos objetos na verdade mina o potencial de reuso, porque há poucos padrões sobre como os objetos devem se interconectar e não conseguimos chegar a um acordo nem sobre nomes básicos para as coisas! Sistemas com restrições maiores são na verdade mais modulares, o que é um paradoxo. O livro Design Rules: The Power of Modularity [Baldwin2000] demonstra que o crescimento explosivo da indústria de PCs foi possibilitado quando a IBM criou o padrão de fato para a arquitetura de hardware de computador pessoal. Por causa dos barramentos padronizados para periféricos e conectores, permitiu aos inovadores criar drives, mouses, monitores, placas-mãe etc., novos, melhores e mais rápidos. A eletrônica digital é por si mesma um ótimo exemplo de um sistema modular. Cada fio carrega apenas um sinal 0 ou 1; mesmo quando você os junta em grupo de 8 16, 32 e 62, pode criar camadas de protocolos que possibilitam todas as coisas maravilhosas que conseguimos fazer com os computadores. Não há padrões semelhantes para componentes baseados em objetos. Diversas tentativas como CORBA e COM tiveram sucesso modesto, mas acabaram falhando pelos mesmos motivos fundamentais, o de que os objetos estão no nível errado de abstração. Conceitos como cliente raramente são novos, mas mesmo assim não conseguimos parar de inventar uma nova representação para eles a cada novo projeto, porque cada projeto novo traz o seu próprio contexto e requisitos. Entretanto, se percebermos que um objeto é fundamentalmente apenas um agregado de dados, então podemos ver uma forma de definir abstrações melhor padronizadas em níveis mais baixos do que objetos, análogas

8 18 Programação Funcional para Desenvolvedores Java a circuitos digitais. Esses padrões são coleções básicas como lista, mapa e conjunto, junto com tipos primitivos como números e poucos conceitos de domínios bem definidos (e.g., Money em um aplicativo financeiro). Uma ajuda maior à modularidade é a natureza das funções na programação funcional, a qual evita efeitos colaterais, tornando-as livres de dependências de outros objetos e portanto mais fáceis de reusar em muitos contextos. O resultado é que um programa funcional define abstrações onde elas são mais úteis e mais fáceis de reusar, integrar e também de testar. Qualquer objeto arbitrariamente complexo pode ser decomposto em valores atômicos (como primitivas) e coleções contendo esses valores e outras coleções. Tenho que trabalhar cada vez mais rapidamente Os ciclos de desenvolvimento estão indo assintoticamente para duração zero. Isso parece loucura, especialmente se você iniciou a programação profissional na mesma época que eu, quando os projetos geralmente duravam meses, até mesmo, anos. Entretanto, atualmente, há muitos sites na internet que instalam código novo diversas vezes por dia e todos nós estamos sentindo a pressão de executar o trabalho mais rapidamente, mas sem sacrificar a qualidade, é claro. Quando os cronogramas eram mais longos, fazia mais sentido modelar seu domínio cuidadosamente e implementá-lo em código. Se você cometesse um erro, levaria meses para corrigi-lo com uma nova versão. Atualmente, na maioria dos projetos, entender o domínio com precisão é menos importante do que entregar alguma coisa valiosa rapidamente. Nossa compreensão do domínio mudará rapidamente, de qualquer forma, à medida que nós e nossos clientes descobrimos mais coisas a cada instalação. Se entendermos mal algum aspecto do domínio, podemos consertar esses erros rapidamente quando fazemos instalações frequentes.

9 Capítulo 1 Por que programação funcional? 19 Se a modelagem cuidados parece menos importante, a implementação conscienciosa do modelo de objetos é ainda mais suspeita atualmente do que no passado. Embora o Agile Software Development (Desenvolvimento Ágil de Software) tenha melhorado bastante nossa qualidade e capacidade de responder a mudanças, precisamos repensar formas de manter nosso código minimamente suficiente para os requisitos atuais, mas ainda assim flexível a mudanças. A programação funcional nos ajuda a fazer isso. A programação funcional é um retorno à simplicidade Finalmente, construindo sobre os pontos anteriores, vejo a programação funcional como uma reação à complexidade acidental, o tipo que nós mesmos adicionamos pelas nossas escolhas de implementação, ao contrário da complexidade inerente ao domínio do problema 2. Assim, por exemplo, muito do middleware orientado a objetos nos nossos aplicativos atualmente é desnecessário e desperdiçador, na minha opinião. Sei que algumas dessas alegações são provocativas. Não estou tentando convencer você a abandonar totalmente os objetos ou se tornar um fanático da FP. Estou tentando lhe apresentar uma caixa de ferramentas maior e uma perspectiva mais ampla, de modo que possa tomar decisões de projeto mais bem informado e talvez refrescar seu entusiasmo pela arte e ciência do desenvolvimento de software. Espero que esta breve introdução lhe mostre o motivo pelo qual meu pensamento mudou. Talvez o seu mude também. Vamos começar! 2 Não quero dizer que a programação funcional seja simples. Tornar-se um especialista em programação funcional requer o domínio de muitos conceitos avançados e poderosos.

Jonathan Stark Brian Jepson

Jonathan Stark Brian Jepson Construindo Aplicativos Android com HTML, CSS e JavaScript Jonathan Stark Brian Jepson Novatec Authorized Portuguese translation of the English edition of titled Building Android Apps with HTML, CSS, and

Leia mais

Pete Goodliffe. Novatec

Pete Goodliffe. Novatec Pete Goodliffe Novatec Authorized Portuguese translation of the English edition of Becoming a Better Programmer, ISBN 9781491905531 2014 Pete Goodliffe. This translation is published and sold by permission

Leia mais

As Leis Fundamentais do Projeto de Software

As Leis Fundamentais do Projeto de Software As Leis Fundamentais do Projeto de Software Max Kanat-Alexander Novatec Authorized Portuguese translation of the English edition of titled Code Simplicity, First Edition ISBN 9781449313890 2011 Max Kanat-Alexander.

Leia mais

Desenvolvimento de Grandes Aplicações Web

Desenvolvimento de Grandes Aplicações Web Desenvolvimento de Grandes Aplicações Web Kyle Loudon Introdução de Nate Koechley Novatec Authorized Portuguese translation of the English edition of titled Developing Large Web Applications, First Edition,

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Novatec Editora Ltda. [2014].

Novatec Editora Ltda. [2014]. Novatec Authorized Portuguese translation of the English edition of Just Hibernate, ISBN 9781449334376 2014 Madhusudhan Konda. This translation is published and sold by permission of O'Reilly Media, Inc.,

Leia mais

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec

marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec marketing ágil Utilização de Metodologias Ágeis em Projetos de Marketing Michelle Accardi-Petersen Novatec Original English language edition published by CA Technologies, Copyright 2011 by CA Technologies.

Leia mais

PDF Explicado John Whitington

PDF Explicado John Whitington PDF Explicado John Whitington Novatec Authorized Portuguese translation of the English edition of titled PDF Explained, First Edition ISBN 9781449310028 2012 John Whitington. This translation is published

Leia mais

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec

Criando Aplicações PHP com. Zend e Dojo. Flávio Gomes da Silva Lisboa. Novatec Criando Aplicações PHP com Zend e Dojo Flávio Gomes da Silva Lisboa Novatec Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a

Leia mais

Google Analytics Justin Cutroni

Google Analytics Justin Cutroni Google Analytics Justin Cutroni Novatec Authorized translation of the English edition of Google Analytics ISBN 978-0-596-15800-2 2010, Justin Cutroni. This translation is published and sold by permission

Leia mais

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec

Scrum em Ação. Gerenciamento e Desenvolvimento Ágil de Projetos de Software. Andrew Pham Phuong-Van Pham. Novatec Scrum em Ação Gerenciamento e Desenvolvimento Ágil de Projetos de Software Andrew Pham Phuong-Van Pham Novatec Original English language edition Copyright 2012 Course Technology, a part of Cengage Learning.

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

Design Centrado no Usuário

Design Centrado no Usuário Um guia para o desenvolvimento de aplicativos amigáveis Design Centrado no Usuário Travis Lowdermilk Novatec Authorized Portuguese translation of the English edition of titled User Centered Design, ISBN

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman

Equipes de Software. Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas. Brian W. Fitzpatrick Ben Collins-Sussman Equipes de Software Um guia para o desenvolvedor de software se relacionar melhor com outras pessoas Brian W. Fitzpatrick Ben Collins-Sussman Novatec Authorized Portuguese translation of the English edition

Leia mais

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec

A Arte de SEO. Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle. Novatec A Arte de SEO Eric Enge, Stephan Spencer, Jessie Stricchiola e Rand Fishkin Introdução de John Battelle Novatec Authorized Portuguese translation of the English edition of titled The Art of SEO, Second

Leia mais

Padrões de Projeto em PHP

Padrões de Projeto em PHP Aprendendo Padrões de Projeto em PHP William Sanders Novatec Authorized Portuguese translation of the English edition of titled Learning PHP Design Patterns ISBN 9781449344917 2013 William B. Sanders.

Leia mais

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec

Aprendendo. Unix no OS X. Mountain Lion. Mergulhando no Terminal e no Shell. Dave Taylor. Novatec Aprendendo Unix no OS X Mountain Lion Mergulhando no Terminal e no Shell Dave Taylor Novatec Authorized Portuguese translation of the English edition of titled Learning Unix for OS X Mountain Lion, ISBN

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP 2ª Edição Juliano Niederauer Novatec Copyright 2009, 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução

Leia mais

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto

Gerenciamento. de projetos. Bart Gerardi. Novatec. Como evitar problemas previsíveis para o sucesso do projeto Gerenciamento de projetos Sem Crise Como evitar problemas previsíveis para o sucesso do projeto Bart Gerardi Novatec Original English language edition published by Apress Inc., Copyright 2011 by Apress

Leia mais

Empresa. Dave Gray. Novatec. com Thomas Vander Wal

Empresa. Dave Gray. Novatec. com Thomas Vander Wal A Empresa Conectada Dave Gray com Thomas Vander Wal Novatec Authorized Portuguese translation of the English edition of titled The Connected Company ISBN 978-1-449-31905-2 2012 Dachis Group. This translation

Leia mais

Luiz Carlos Querino Filho

Luiz Carlos Querino Filho criando aplicativos para iphone e Uma Abordagem Prática Do nível Básico ao Avançado ipad Luiz Carlos Querino Filho Novatec Copyright 2013 da Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

David Hows Peter Membrey Eelco Plugge

David Hows Peter Membrey Eelco Plugge David Hows Peter Membrey Eelco Plugge Novatec Original English language edition published by Apress, Copyright 2014 by Apress, Inc.. Portugueselanguage edition for Brazil copyright 2015 by Novatec Editora.

Leia mais

como acabar com sua em apenas 140 caracteres Carolina Lima Novatec

como acabar com sua em apenas 140 caracteres Carolina Lima Novatec como acabar com sua em apenas 140 caracteres Carolina Lima Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução

Leia mais

Editor: Rubens Prates Revisão gramatical: Patrizia Zagni Capa: Victor Bittow Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata

Editor: Rubens Prates Revisão gramatical: Patrizia Zagni Capa: Victor Bittow Editoração eletrônica: Camila Kuwabata e Carolina Kuwabata Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia

Leia mais

Ricardo Lino Olonca. Novatec

Ricardo Lino Olonca. Novatec Ricardo Lino Olonca Novatec Copyright 2015 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer

Leia mais

COMO INVESTIR PARA GANHAR DINHEIRO

COMO INVESTIR PARA GANHAR DINHEIRO COMO INVESTIR PARA GANHAR DINHEIRO Por que ler este livro? Você já escutou histórias de pessoas que ganharam muito dinheiro investindo, seja em imóveis ou na Bolsa de Valores? Após ter escutado todas essas

Leia mais

Ademir C. Gabardo. Novatec

Ademir C. Gabardo. Novatec Ademir C. Gabardo Novatec Novatec Editora Ltda. 2015. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem

Leia mais

Primeiros Passos com o Raspberry Pi

Primeiros Passos com o Raspberry Pi Primeiros Passos com o Raspberry Pi Matt Richardson Shawn Wallace Novatec Authorized Portuguese translation of the English edition of titled Getting Started with Raspberry Pi, ISBN 9781449344214 2013 Matt

Leia mais

Pramod J. Sadalage Martin Fowler

Pramod J. Sadalage Martin Fowler Pramod J. Sadalage Martin Fowler Novatec Authorized translation from the English language edition, entitled NOSQL DISTILLED: A BRIEF GUIDE TO THE EMERGING WORLD OF POLYGLOT PERSISTENCE, 1st Edition, 0321826620

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

Desenvolvimento de Grandes Aplicações Web

Desenvolvimento de Grandes Aplicações Web Desenvolvimento de Grandes Aplicações Web Kyle Loudon Introdução de Nate Koechley Novatec Authorized Portuguese translation of the English edition of titled Developing Large Web Applications, First Edition,

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

e-commerce: 13 maneiras de aumentar a conversão

e-commerce: 13 maneiras de aumentar a conversão e-commerce: 13 maneiras de aumentar a conversão Diego Biscaia prefácio: Aumentar a taxa de conversão é crucial para um e-commerce. Uma boa conversão é um bom volume de vendas. Você sabe exatamente o que

Leia mais

Julia Elman e Mark Lavin. Novatec

Julia Elman e Mark Lavin. Novatec Julia Elman e Mark Lavin Novatec [2015] Novatec Editora Ltda Authorized Portuguese translation of the English edition of Lightweight Django, ISBN 9781491945940 2015 Julia Elman and Mark Lavin. This translation

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

Aprendendo Programação. ios. Alasdair Allan. Novatec

Aprendendo Programação. ios. Alasdair Allan. Novatec Aprendendo Programação ios Alasdair Allan Novatec Authorized Portuguese translation of the English edition of titled Learning ios Programming, 3rd edition, ISBN 9781449359348 2013 Alasdair Allan. This

Leia mais

Estudo de Caso. Cliente: Rafael Marques. Coach: Rodrigo Santiago. Duração do processo: 12 meses

Estudo de Caso. Cliente: Rafael Marques. Coach: Rodrigo Santiago. Duração do processo: 12 meses Estudo de Caso Cliente: Rafael Marques Duração do processo: 12 meses Coach: Rodrigo Santiago Minha idéia inicial de coaching era a de uma pessoa que me ajudaria a me organizar e me trazer idéias novas,

Leia mais

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec

Lojas Virtuais com. Magento. André Nobrega Gugliotti. Novatec Lojas Virtuais com Magento André Nobrega Gugliotti Novatec Novatec Editora Ltda. 2013. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo

Leia mais

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson

Construindo Aplicações Node com MongoDB e Backbone Mike Wilson Construindo Aplicações Node com MongoDB e Backbone Mike Wilson Novatec Authorized Portuguese translation of the English edition of titled Building Node Applications with MongoDB and Backbone ISBN 9781449337391

Leia mais

Os desafios do Bradesco nas redes sociais

Os desafios do Bradesco nas redes sociais Os desafios do Bradesco nas redes sociais Atual gerente de redes sociais do Bradesco, Marcelo Salgado, de 31 anos, começou sua carreira no banco como operador de telemarketing em 2000. Ele foi um dos responsáveis

Leia mais

edirectory ios / Android Plataforma

edirectory ios / Android Plataforma edirectory ios / Android Plataforma Criando lindos aplicativos com edirectory Uma revolução no espaço de diretórios mobile, bem vindo ao novo aplicativo do edirectory. Mobile Completamente reestruturado

Leia mais

agility made possible

agility made possible RESUMO DA SOLUÇÃO Utilitário ConfigXpress no CA IdentityMinder a minha solução de gerenciamento de identidades pode se adaptar rapidamente aos requisitos e processos de negócio em constante mudança? agility

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

www.startercomunicacao.com startercomunic@gmail.com

www.startercomunicacao.com startercomunic@gmail.com 7 DICAS IMPERDÍVEIS QUE TODO COACH DEVE SABER PARA CONQUISTAR MAIS CLIENTES www.startercomunicacao.com startercomunic@gmail.com As 7 dicas imperdíveis 1 2 3 Identificando seu público Abordagem adequada

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

edirectory Plataforma ios / Android

edirectory Plataforma ios / Android edirectory Plataforma ios / Android Levando seu site ao próximo nível Conheça o novo aplicativo do edirectory. E seja bem vindo a revolução em aplicativos para Diretórios Online. Mobile Completamente reestruturado

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Autor: Marcelo Maia http://infoempreendedorismo.com

Autor: Marcelo Maia http://infoempreendedorismo.com Nesse ebook você irá aprender como gerar uma renda mesmo que do zero rapidamente na internet, se você já tem um produto irá aprender como aumentar suas vendas agora mesmo de forma garantida. Crie um sistema

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

Leia mais

www.segredodosblogueiros.com.br Como Escrever Artigos Que Convertem?

www.segredodosblogueiros.com.br Como Escrever Artigos Que Convertem? Como Escrever Artigos Que Convertem? Sumário www.segredodosblogueiros.com.br Introdução... 03 Como Criar Conteúdo de Qualidade?... 05 Menos é Mais... 09 Gatilhos Mentais... 11 SEO Morreu?... 14 Técnicas

Leia mais

Crie Seu Próprio Site

Crie Seu Próprio Site Crie Seu Próprio Site Um guia em quadrinhos para HTML, CSS e WordPress Nate Cooper com ilustrações de Kim Gee Copyright 2014 by Nate Cooper. Title of English-language original: Build Your Own Website,

Leia mais

NOKIA. Em destaque LEE FEINBERG

NOKIA. Em destaque LEE FEINBERG Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões

Leia mais

Defenda sua base com circuitos simples, Arduino e Raspberry Pi

Defenda sua base com circuitos simples, Arduino e Raspberry Pi Guia do maker para o Apocalipse Zumbi Defenda sua base com circuitos simples, Arduino e Raspberry Pi Simon Monk Novatec Copyright 2015 by Simon Monk. Title of English-language original: The Maker s Guide

Leia mais

Como escrever melhor em 5 passos simples

Como escrever melhor em 5 passos simples Como escrever melhor em 5 passos simples Escrever um artigo para seu blog pode ser um processo estressante e tomar bastante tempo, especialmente se você não é um escritor. Mas quando você está determinado

Leia mais

Service Desk Corporativo

Service Desk Corporativo Service Desk Corporativo Solução com base na ITIL V3 Rubem Melendez Filho Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Conrado Adolpho. Novatec

Conrado Adolpho. Novatec Conrado Adolpho Novatec Copyright 2008, 2009, 2010, 2011 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial,

Leia mais

Paulo Strelczuk. Novatec

Paulo Strelczuk. Novatec Paulo Strelczuk Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br

Processo de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)

Leia mais

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis

3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis 3 Dicas MATADORAS Para Escrever Emails Que VENDEM Imóveis O que é um e- mail bem sucedido? É aquele e- mail que você recebe o contato, envia o e- mail para o cliente e ele te responde. Nós não estamos

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

AULA 06 CRIAÇÃO DE USUÁRIOS

AULA 06 CRIAÇÃO DE USUÁRIOS AULA 06 CRIAÇÃO DE USUÁRIOS O Windows XP fornece contas de usuários de grupos (das quais os usuários podem ser membros). As contas de usuários são projetadas para indivíduos. As contas de grupos são projetadas

Leia mais

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit Vitor Paulo Silva Se você é um projetista e sua principal ferramenta de trabalho é o AutoCAD ou o Revit, certamente você já se deparou com

Leia mais

Artigo Os 6 Mitos Do Seis Sigma

Artigo Os 6 Mitos Do Seis Sigma Artigo Os 6 Mitos Do Seis Sigma Celerant Consulting A metodologia do Seis Sigma a abordagem Definir, Medir, Analisar, Melhorar e Controlar (DMAIC) para resolução de problemas e as ferramentas a serem usadas

Leia mais

UWBP BLUEPRINT. Exclusivo Para Novos Membros Reynaldo Bosquet. Sugestões de Ações. Qual a sua meta mensal de Opt Ins?

UWBP BLUEPRINT. Exclusivo Para Novos Membros Reynaldo Bosquet. Sugestões de Ações. Qual a sua meta mensal de Opt Ins? UWBP BLUEPRINT Exclusivo Para Novos Membros Reynaldo Bosquet Sugestões de Ações Qual a sua meta mensal de Opt Ins? O que você pode fazer hoje para aumentar seus opt ins? Não amanhã ou na semana que vem...hoje,

Leia mais

Camila Porto. Novatec

Camila Porto. Novatec Camila Porto Novatec Copyright 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

Leia mais

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

COMO FAZER A TRANSIÇÃO

COMO FAZER A TRANSIÇÃO ISO 9001:2015 COMO FAZER A TRANSIÇÃO Um guia para empresas certificadas Antes de começar A ISO 9001 mudou! A versão brasileira da norma foi publicada no dia 30/09/2015 e a partir desse dia, as empresas

Leia mais

Google Android para Tablets

Google Android para Tablets Google Android para Tablets Aprenda a desenvolver aplicações para o Android De smartphones a tablets Ricardo R. Lecheta Novatec Copyright 2012 Novatec Editora Ltda. Todos os direitos reservados e protegidos

Leia mais

Rio de Janeiro, 5 de junho de 2008

Rio de Janeiro, 5 de junho de 2008 Rio de Janeiro, 5 de junho de 2008 IDENTIFICAÇÃO Meu nome é Alexandre da Silva França. Eu nasci em 17 do sete de 1958, no Rio de Janeiro. FORMAÇÃO Eu sou tecnólogo em processamento de dados. PRIMEIRO DIA

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS O termo metodologia não possui uma definição amplamente aceita, sendo entendido na maioria das vezes como um conjunto de passos e procedimentos que

Leia mais

5 Equacionando os problemas

5 Equacionando os problemas A UA UL LA Equacionando os problemas Introdução Nossa aula começará com um quebra- cabeça de mesa de bar - para você tentar resolver agora. Observe esta figura feita com palitos de fósforo. Mova de lugar

Leia mais

Microsoft Access: Criar relações para um novo banco de dados. Vitor Valerio de Souza Campos

Microsoft Access: Criar relações para um novo banco de dados. Vitor Valerio de Souza Campos Microsoft Access: Criar relações para um novo banco de Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: relações são essenciais Lição: inclui oito seções Tarefas práticas sugeridas Teste Cartão

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras.

Algoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras. 6 6 NOME DA AULA: 6 Algoritmos Duração da aula: 45 60 minutos Tempo de preparação: 10-25 minutos (dependendo da disponibilidade de tangrans prontos ou da necessidade de cortá-los à mão) Objetivo principal:

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Air-Fi - sistema sem fio Sinta-se confortável com a confiança e o desempenho líderes do setor.

Air-Fi - sistema sem fio Sinta-se confortável com a confiança e o desempenho líderes do setor. Air-Fi - sistema sem fio Sinta-se confortável com a confiança e o desempenho líderes do setor. Corte os fios e sinta-se confortável com a solução sem fio Air-Fi da Trane. A comunicação sem fio Air-Fi da

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Gestão da Organização Terceiro Setor

Gestão da Organização Terceiro Setor Gestão da Organização Terceiro Setor Administração de Organizações sem Fins Lucrativos/Peter f. Drucker Profª. Mestrando Elaine Araújo elainearaujo.administradora@hotmail.com As organizações do terceiro

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Introdução Projeto de Arquitetura (Cap 11 - Sommerville) UNIVERSIDADE FEDERAL DE ALAGOAS Curso de Ciência da Computação Engenharia de Software I Prof. Rômulo Nunes de Oliveira Até agora, estudamos: Os

Leia mais

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE

O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE O CONCEITO DE TDD NO DESENVOLVIMENTO DE SOFTWARE Renan Leme Nazário, Ricardo Rufino Universidade Paranaense (Unipar) Paranavaí PR - Brasil renazariorln@gmail.com, ricardo@unipar.br Resumo. Este artigo

Leia mais

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise

Leia mais

Freelapro. Título: Como o Freelancer pode transformar a sua especialidade em um produto digital ganhando assim escala e ganhando mais tempo

Freelapro. Título: Como o Freelancer pode transformar a sua especialidade em um produto digital ganhando assim escala e ganhando mais tempo Palestrante: Pedro Quintanilha Freelapro Título: Como o Freelancer pode transformar a sua especialidade em um produto digital ganhando assim escala e ganhando mais tempo Quem sou eu? Eu me tornei um freelancer

Leia mais