Visão Geral
Este Curso OOP and Software Design Best Practices e práticas recomendadas de design de software, oferecerá ao seu público de desenvolvedores uma cobertura abrangente e aprofundada da teoria e prática de design de software moderno. Partindo dos primeiros princípios, considera os princípios fundamentais da arquitetura de software, antes de introduzir os conceitos mais avançados e poderosos de Orientação a Objetos. Seguindo uma abordagem inabalavelmente pragmática, o curso considera o que sabemos ser verdade sobre design e desenvolvimento de software e, principalmente, o que podemos mostrar como falso.
O Curso OOP and Software Design Best Practices é independente de linguagem e plataforma e fornece aos participantes exemplos e demonstrações em linguagens de toda a 'família C' de linguagens (C/C++ Java, JavaScript). O Curso OOP and Software Design Best Practices também usa um pouco de notação UML para representar graficamente os conceitos em questão.
Objetivo
O objetivo do Curso OOP and Software Design Best Practices é que os participantes obtenham uma perspectiva única, autoconsistente e pragmática sobre a teoria e prática da programação moderna. Cristalizando os princípios e abordagens para o design e implementação de sistemas contemporâneos, ele fornece aos delegados uma ampla gama de insights poderosos e imediatamente aplicáveis.
Publico Alvo
- Este Curso OOP and Software Design Best Practices é destinado a desenvolvedores, testadores, cientistas de dados, analistas de negócios e qualquer pessoa que queira trazer uma abordagem mais estruturada para o desenvolvimento de software.
Pre-Requisitos
- Os participantes devem ter alguma experiência em trabalhar com código, mas nenhuma experiência anterior em programação orientada a objetos é assumida.
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico
Objects
- The fundamental atoms of software development
- Objects defined –what is and is not an object?
- Time-Space complimentarity
- The difference between 'class' and 'type'
- Dispelling Myths
- Resolving Misconceptions
In Search of Symmetry
- Invariance in the face of other change
- Seeking and exploiting patterns
- Relationship between design patterns and language constructs
- Modelling the design-decision space
Object Relationships
- 'Has A' association
- 'Uses A' association
- 'Is A' association
Abstraction
- In search of purity
- Modelling models
- Modelling the modeller
- Proper abstraction – the craft and art of reification
Coincident Association ('Subsumption' or 'Has A')
- Encapsulation – the concept of 'scope'
- Subsumption misuse ('Has A' in place of 'Uses A' or 'Is A')
- Subsumption abuse (insufficient/excessive granularity)
- Implementation concerns
Non-Coincident Association ('Uses A')
- The nature of 'Uses A' relationships
- Uses-A misuse ('Uses A' in place of 'Has A' or 'Is A')
- Implementation concerns
Extension ('Inheritance' or 'Is A' relationships)
- The nature and implementation of extension
- Polymorphism (run-time substitutability)
- Abstract base classes and interfaces
- Multiple inheritance
- Virtual functions
- Extension misuse (the Circle-Ellipse problem)
- Extension abuse (the Inappropriate Taxonomy problem)
- Implementation concerns
TENHO INTERESSE