Livros

Engenharia de Software e Métodos Ágeis

livro Refatoração: Aperfeiçoando o Projeto de Código Existente

Refatoração: Aperfeiçoando o Projeto de Código Existente

Autor: Martin Fowler
Editora: Bookman

Descrição: Em 'Refatoração: Aperfeiçoando o Projeto de Código Existente', o renomado mentor da tecnologia de objetos Martin Fowler abre novos caminhos, desmitificando práticas importantes e demonstrando como os desenvolvedores de software podem tornar reais os benefícios significativos deste novo processo. O autor demonstra que, com treinamento apropriado, um desenhista de sistemas experiente pode pegar um projeto ruim e retrabalhá-lo num código robusto e bem projetado. Além de discutir as várias técnicas da refatoração, Fowler fornece um catálogo detalhado de mais de 70 refatorações verificadas, com indicadores úteis que ensinam quando aplicá-las; instruções passo a passo para aplicar cada refatoração e um exemplo que mostra como a refatoração funciona. Os exemplos ilustrativos estão escritos em Java, mas as idéias são aplicáveis a qualquer linguagem orientada a objetos.

livro Programação Extrema (XP) Explicada

Programação Extrema (XP) Explicada

Autor: Kent Beck
Editora: Bookman

Descrição: 'Programação extrema explicada' (XP) aborda as necessidades específicas do desenvolvimento de software conduzido por equipes pequenas diante de requisitos vagos e instáveis. A adoção da XP desafia muitos dogmas convencionais, incluindo o pressuposto de que os custos das modificações em um software obrigatoriamente aumentam de forma drástica ao longo do tempo. A XP defende a não especialização dos membros do time (todos participam de todas as atividades, em pares e com sistema de rodízio dos pares), o desenvolvimento de infra-estruturas e frameworks durante o desenvolvimento da aplicação, e a comunicação face a face ou por meio de testes eficientes e código cuidadosamente escrito.

livro Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos

Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos

Autor: Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides
Editora: Bookman

Descrição: Reunindo uma grande experiência em software orientando a objetos, quatro projetistas de grande renome apresentam um catálogo de soluções simples e sucintas para os problemas mais freqüentes na área de projeto. Os autores descrevem o que são padrões e como eles ajudam a projetar o software orientando a objetos. Prosseguem dando nomes, explicando e catalogando soluções de projeto. O leitor aprenderá como esses padrões se encaixam no desenvolvimento de software e o ajudam a resolver problemas de projeto de forma rápida e eficiente. São descritas as circunstâncias às quais se aplica cada padrão, quando ele pode ser usado e as conseqüências do seu uso no contexto maior do projeto. Todos os 23 padrões foram compilados de sistemas já existentes e estão baseados em exemplos reais, incluindo códigos que demonstram a sua implementação em linguagens orientadas a objetos, como C++ e Smalltalk. Um best-seller mundial.

livro Código Limpo: Habilidades Práticas do Agile Software

Código Limpo: Habilidades Práticas do Agile Software

Autor: Robert Cecil Martin (Uncle Bob)
Editora: Alta Books

Descrição: Mesmo um código ruim pode funcionar. Mas se ele não for limpo, pode acabar com uma empresa de desenvolvimento. Perdem-se a cada ano horas incontáveis e recursos importantes devido a um código mal escrito. Mas não precisa ser assim.

O renomado especialista em software, Robert C. Martin, apresenta um paradigma revolucionário com Código limpo: Habilidades Práticas do Agile Software. Martin se reuniu com seus colegas do Mentor Object para destilar suas melhores e mais ágeis práticas de limpar códigos “dinamicamente” em um livro que introduzirá gradualmente dentro de você os valores da habilidade de um profissional de softwares e lhe tornar um programador melhor –mas só se você praticar.

livro O Codificador Limpo

O Codificador Limpo

Autor: Robert Cecil Martin (Uncle Bob)
Editora: Alta Books

Descrição: Então você quer ser um profissional do desenvolvimento de softwares. Quer erguer a cabeça e declarar para o mundo: “Eu sou um profissional!”. Quer que as pessoas olhem para você com respeito e o tratem com consideração. Você quer isso tudo. Certo? Verdadeiros profissionais praticam e trabalham firme para manter suas habilidades afiadas e prontas. Não é o bastante simplesmente fazer suas tarefas diárias e chamar isso de prática. Realizar seu trabalho diário é performance, e não prática. Prática é quando você especificamente exercita as habilidades fora do seu ambiente de trabalho com o único propósito de potencializá-las.

livro Domain-Driven Design - 3ª Ed. 2016

Domain Driven Design - Atacando as Complexidades no Coração do Software

Autor: Eric Evans
Editora: Alta Books
Obs: 3ª edição revisada. 2016

Descrição: A comunidade de desenvolvimento de softwares reconhece que a modelagem de domínios é fundamental para o design de softwares. Através de modelos de domínios, os desenvolvedores de software conseguem expressar valiosas funcionalidades e traduzi-las em uma implementação de software que realmente atenda às necessidades de seus usuários. Mas, apesar de sua óbvia importância, existem poucos recursos práticos que explicam como incorporar uma modelagem de domínios eficiente no processo de desenvolvimento de softwares. O Domain-Driven Design atende essa necessidade. Este não é um livro sobre tecnologias específicas. Ele oferece aos leitores uma abordagem sistemática com relação ao domain-driven design, ou DDD, apresentando um conjunto abrangente de práticas ideais de design, técnicas baseadas em experiências e princípios fundamentais que facilitam o desenvolvimento de projetos de software que enfrentam domínios complexos. Reunindo práticas de design e implementação, este livro incorpora vários exemplos baseados em projetos que ilustram a aplicação do design dirigido por domínios no desenvolvimento de softwares na vida real. Com este livro em mãos, desenvolvedores orientados a objetos, analistas de sistema e designers terão a orientação de que precisam para organizar e concentrar seu trabalho, criar modelos de domínio valiosos e úteis, e transformar esses modelos em implementações de software duradouras e de alta qualidade.