Aprendendo Padrões de Projeto em Python
Tire proveito da eficácia dos padrões de projeto (design patterns) em Python para resolver problemas do mundo real em arquitetura e design de software
Descrição do livro
Com um foco cada vez maior na otimização dos níveis de arquitetura e design de software, é importante que os arquitetos de software pensem em otimizações na criação de objetos, na estrutura do código e na interação entre objetos nesses níveis. Isso garante que o custo da manutenção de software seja baixo e o código seja facilmente reutilizado ou adaptável a mudanças.
Aprendendo padrões de projeto em Python ajudará você a implementar cenários do mundo real com a versão mais recente de Python, a v3.5. Começaremos apresentando os padrões de projeto do ponto de vista de Python. À medida que avançar no livro, você conhecerá os padrões Singleton, Factory e Façade em detalhes. Depois disso, veremos como controlar o acesso a objetos com o padrão Proxy. O livro também inclui os padrões Observer, Command e Compound. Ao chegar ao final desta obra, você terá melhorado suas habilidades profissionais em arquitetura, design e desenvolvimento de software.
Para quem este livro foi escrito
Este livro foi escrito para arquitetos de software e desenvolvedores de aplicações Python apaixonados por design de software. Ele será muito útil para engenheiros com nível inicial de proficiência em Python que amam trabalhar com Python 3.5.
O que você aprenderá com este livro
Aperfeiçoar suas habilidades para criar uma arquitetura melhor de software.
Entender soluções eficazes para problemas de design comuns.
Explorar os princípios de design que formam a base do design de software, como baixo acoplamento, o princípio de Hollywood e o princípio do aberto/fechado, entre outros.
Aprender como os conceitos de programação orientada a objetos são usados em aplicações de software.
Desenvolver uma compreensão sobre os padrões de projeto de criação bem como os diferentes métodos de criação de objetos que ajudam a resolver problemas em desenvolvimento de software.
Utilizar padrões de projeto estruturais e descobrir de que maneira os objetos e as classes interagem na construção de aplicações maiores.
A interação entre os objetos com os padrões Command e Observer.
Melhorar a produtividade e a base de código de sua aplicação usando padrões de projeto com Python.
Sumário
- Apresentação
- Sobre o autor
- Sobre o revisor
- Prefácio
- Capítulo 1 Introdução aos padrões de projeto
- Compreendendo a programação orientada a objetos
- Objetos
- Classes
- Métodos
- Principais aspectos da programação orientada a objetos
- Encapsulamento
- Polimorfismo
- Herança
- Abstração
- Composição
- Princípios do design orientado a objetos
- Princípio do aberto/fechado
- Princípio da inversão de controle
- Princípio da segregação de interfaces
- Princípio da responsabilidade única
- Princípio da substituição
- Conceito de padrões de projeto
- Vantagens dos padrões de projeto
- Taxonomia dos padrões de projeto
- Contexto – aplicabilidade dos padrões de projeto
- Padrões para linguagens dinâmicas
- Classificando os padrões
- Padrões de criação
- Padrões estruturais
- Padrões comportamentais
- Resumo
- Compreendendo a programação orientada a objetos
- Capítulo 2 Padrão de projeto Singleton
- Compreendendo o padrão de projeto Singleton
- Implementando um Singleton clássico em Python
- Instanciação preguiçosa no padrão Singleton
- Singletons no nível de módulo
- Padrão Singleton Monostate
- Singletons e metaclasses
- Um cenário do mundo real – o padrão Singleton, parte 1
- Um cenário do mundo real – o padrão Singleton, parte 2
- Desvantagens do padrão Singleton
- Resumo
- Compreendendo o padrão de projeto Singleton
- Capítulo 3 Padrão Factory – construindo fábricas para criar objetos
- Compreendendo o padrão Factory
- Padrão Simple Factory
- Padrão Factory Method
- Implementando o Factory Method
- Vantagens do padrão Factory Method
- Padrão Abstract Factory
- Implementando o padrão Abstract Factory
- Comparação entre Factory Method e Abstract Factory
- Resumo
- Capítulo 4 Padrão Façade – sendo adaptável com o Façade
- Compreendendo os padrões de projeto estruturais
- Compreendendo o padrão de projeto Façade
- Um diagrama de classes UML
- Façade
- Sistema
- Cliente
- Implementando o padrão Façade no mundo real
- Princípio do conhecimento mínimo
- Perguntas frequentes
- Resumo
- Capítulo 5 Padrão Proxy – controlando o acesso a objetos
- Compreendendo o padrão de projeto Proxy
- Um diagrama de classes UML para o padrão Proxy
- Compreendendo os diferentes tipos de proxies
- Proxy virtual
- Proxy remoto
- Proxy de proteção
- Proxy inteligente
- Padrão Proxy no mundo real
- Vantagens do padrão Proxy
- Comparação entre os padrões Façade e Proxy
- Perguntas frequentes
- Resumo
- Capítulo 6 Padrão Observer – de olho nos objetos
- Introdução aos padrões comportamentais
- Compreendendo o padrão de projeto Observer
- Um diagrama de classes UML para o padrão Observer
- Padrão Observer no mundo real
- Modelos do padrão Observer
- Modelo pull
- Modelo push
- Baixo acoplamento e o padrão Observer
- Padrão Observer – vantagens e desvantagens
- Perguntas frequentes
- Resumo
- Capítulo 7 Padrão Command – encapsulando chamadas
- Introdução ao padrão Command
- Compreendendo o padrão de projeto Command
- Um diagrama de classes UML para o padrão Command
- Implementando o padrão Command no mundo real
- Considerações de design
- Vantagens e desvantagens dos padrões Command
- Perguntas frequentes
- Resumo
- Capítulo 8 Padrão Template Method – encapsulando algoritmos
- Definindo o padrão Template Method
- Compreendendo o padrão de projeto Template Method
- Um diagrama de classes UML para o padrão Template Method
- Padrão Template Method no mundo real
- Padrão Template Method – hooks
- Princípio de Hollywood e o Template Method
- As vantagens e as desvantagens do padrão Template Method
- Perguntas frequentes
- Resumo
- Definindo o padrão Template Method
- Capítulo 9 Modelo-Visão-Controlador – padrões compostos
- Uma introdução aos padrões compostos
- Padrão Modelo-Visão-Controlador
- Modelo – conhecimento da aplicação
- Visão – a aparência
- Controlador – a cola
- Um diagrama de classes UML para o padrão de projeto MVC
- Padrão MVC no mundo real
- Módulos
- Vantagens do padrão MVC
- Perguntas frequentes
- Resumo
- Capítulo 10 Padrão de projeto State
- Definindo o padrão de projeto State
- Compreendendo o padrão de projeto State
- Compreendendo o padrão de projeto State com um diagrama UML
- Um exemplo simples do padrão de projeto State
- O padrão de projeto State com implementação em Python v3.5
- Vantagens e desvantagens do padrão State
- Resumo
- Definindo o padrão de projeto State
- Capítulo 11 Antipadrões
- Uma introdução aos antipadrões
- Antipadrões no desenvolvimento de software
- Código espaguete
- Martelo de Ouro
- Fluxo de Lava
- Programação do tipo copiar e colar ou cortar e colar
- Antipadrões na arquitetura de software
- Reinventando a roda
- Vendor lock-in
- Design by Committee
- Resumo
Sobre o autor
Chetan Giridhar é líder de tecnologia, entusiasta de código aberto e desenvolvedor Python. Escreveu vários artigos sobre tecnologia e práticas de desenvolvimento em revistas como LinuxForYou e Agile Record e publicou artigos técnicos no periódico Python Papers. Já fez palestras nas conferências PyCon, como PyCon Índia, Ásia-Pacífico e Nova… Ver perfil completo ▶
Livros relacionados
Recursos
Opinião dos leitores
José R M
Uma ótima ferramenta introdutória para o assunto de Design Patterns, linguagem clara e objetiva. Gostei bastante.
Washington D
Muito bom, vale a pena a leitura.
Sérgio B
Gostei muito do conteúdo, bem didático e direto ao ponto.
Moisés H R P
Ótimo livro! Explica de forma bem objetiva e clara o conceito de Padrões de Projeto, também os tipos e a respectiva codificação em Python. Dá para montar aulas sobre o assunto tomando o livro como base! xD






