
Aprenda Projetar Programas Em C++ Usando Padrões De Design Para Software De Alta Qualidade
By Jideon Marques MarquesLength11h 37m
About this audiobook
Este livro é valioso para todo desenvolvedor C++. Em particular, é para todo desenvolvedor C++ interessado em entender os problemas usuais de software sustentável e aprender sobre soluções comuns para esses problemas (e eu presumo que esse seja realmente o caso de todo desenvolvedor C++). No entanto, este livro não é um livro para iniciantes em C++. Na verdade, a maioria das diretrizes neste livro requer alguma experiência com desenvolvimento de software em geral e C++ em particular. Por exemplo, presumo que você tenha uma compreensão firme da mecânica da linguagem de hierarquias de herança e alguma experiência com modelos. Então, posso recorrer aos recursos correspondentes sempre que necessário e apropriado. De vez em quando, até mesmo recorrerei a alguns recursos do C++20 (em particular, conceitos do C++20). No entanto, como o foco está no design de software, raramente me deterei em explicar um recurso específico, então, se um recurso for desconhecido para você, consulte sua referência de linguagem C++ favorita. Apenas ocasionalmente adicionarei alguns lembretes, principalmente sobre expressões idiomáticas comuns do C++
Audiobook details
GenreScience and Nature, Technology
Length11 hrs 37 mins
Narrated byListen with 1,000+ voices
FormateBook with Audio
Publish dateSep 21, 2024
LanguagePortuguese
Table of contents
1Introduction
37O idioma Pimpl
2Em“Diretriz 1: Entenda a importância do design de software”,
38Em“Diretriz 9: Preste atenção à propriedade das abstrações”,
3Em“Diretriz 2: Design para a mudança”,
39a“Diretriz 24: Use adaptadores para padronizar interfaces”p
4Em“Diretriz 3: Interfaces separadas para evitar acoplamento artificial”,
40Exemplos da Biblioteca Padrão
5Em“Diretriz 4: Design para Testabilidade”,
41Comparação entre adaptador e estratégia
Show all chaptersShow less
6Em“Diretriz 5: Design para extensão”,
42e“Diretriz 26: Use CRTP para
7larCapítulo 2).
43Uma motivação para o CRTP
8Em“Diretriz 6: Aderir ao comportamento esperado das abstrações”,
44em“Diretriz 37: Trate o Singleton como um Padrão de Implementação, Não um Padrão
9Em“Diretriz 7: Entenda as semelhanças entre classes base e conceitos”,
45O Padrão Singleton Explicado
10Em“Diretriz 8: Entenda os requisitos semânticos dos conjuntos de sobrecarga”,
46Em“Diretriz 17: Considere std::variant para implementar Visitor”,
11Em“Diretriz 10: Considere a criação de um documento arquitetônico”,
47Em“Diretriz 20: Favorecer a composição em detrimento da herança”,
12o emCapítulo 3.
48Em“Diretriz 21: Use o comando para isolar o que é feito”,
13e“Diretriz 11: Entenda o propósito dos padrões de design”:
49Em“Diretriz 22: Prefira a Semântica de Valor à Semântica de Referência”,
14Em“Diretriz 12: Cuidado com os conceitos errôneos sobre padrões de design”,
50Em“Diretriz 23: Prefira uma implementação de estratégia e comando baseada em
15Em“Diretriz 13: Padrões de Design Estão em Todo Lugar”,
51Refatorando o Desenho de Formas
16Em“Diretriz 14: Use o nome de um padrão de design para comunicar a intenção”,
52iscussão sobre“Design baseado
17ão emCapítulo 4.
53mCapítulo 8).
18s em“Diretriz 15: Design para adição de tipos ou operações”,
54eliminação de tipo
19Uma solução processual
55Não intrusivo
20e“Um exemplo de acoplamento artificial”), p
56Potencialmente não polimórfico
21Um exemplo de acoplamento artificial
57Mesmo comportamento semântico
22Acoplamento lógico versus físico
58Benchmarks de desempenho
23em“Diretriz 16: Use o Visitor para estender as
59er em“Diretriz 25: Aplicar
24Em“Diretriz 18: Cuidado com a Performance do Visitante Acíclico”,
60Notificação Abstrata
25emCapítulo 5,
61O Padrão de Design Observer
26em“Diretriz 19: Use a estratégia para isolar
62Em“Diretriz 27: Use CRTP para classes de mixin estático”,
27Analisando os problemas de design
63erá em“Diretriz 33: Esteja
28Em“Diretriz 29: Esteja ciente dos ganhos e perdas de desempenho da ponte”,
64Em“Diretriz 34: Esteja ciente dos custos de configuração de possuir wrappers de
29o em“Diretriz 30: Aplicar protótipo para operações de cópia abstrata”.
65proprietário
30de“Diretriz 31: Use polimorfismo externo para polimorfismo de tempo de execução
66Em“Diretriz 36: Entenda o trade-off entre abstração em tempo de execução e em
31tempo de execução não intrusivo
67Em“Diretriz 38: Projetar Singletons para Mudança e Testabilidade”,
32a“Diretriz 35: Use decoradores para adicionar
68Singletons representam o estado global
33hierarquicamente
69Capítulo 11. A Última Diretriz
34hism emCapítulo 7ou
70Preocupações separadas
35m“Diretriz 28: Construir pontes para remover dependências
71Prefira composição à herança
36Um exemplo motivador
72Prefira um design não intrusivo