Design Orientado a Objetos: Princípios e Padrões

24 Set 2016 09h - 01 Out 2016 18h SEDEP

SOBRE O TREINAMENTO
Programadores, de modo geral, costumam ter o primeiro contato com a Programação Orientada a Objetos em cursos acadêmicos. Em boa parte destes cursos, os conceitos vistos são apenas introdutórios e carecem de um enfoque maior em COMO aplicar verdadeiramente os fundamentos da OO (encapsulamento, abstração, coesão x acoplamento, etc...) em um software no "mundo real".

Além disso, ao ingressarem no mercado de trabalho, muitos programadores acabam deixando de lado a OO, trabalhando no dia-a-dia em softwares legados repletos de código "macarrônico" e diversas más práticas.

Este treinamento tem por objetivo reapresentar o design de software orientado a objetos a estes programadores, de forma que os auxiliem a aplicar este paradigma no mundo real, projetando software capaz de ser mantido e evoluído de forma sustentável.

Portanto, este treinamento vai além da mera "Introdução a Programação Orientada a Objetos", trazendo práticas, princípios e padrões em um nível mais avançado.

OBS.: Embora exemplos de código estejam na linguagem C#, o treinamento é 100% focado em orientação a objetos e não em particularidades de linguagem, podendo ser acompanhado por programadores com background em C#, Java, etc (e mesmo linguagens dinâmicas, como Ruby).

PÚBLICO-ALVO
Devido às características desse treinamento (vide acima), é recomendado que os participantes sejam programadores já com alguma experiência de mercado (ao menos 1 ano) ou que tenham trabalhado ativamente com muito código. É importante também que tenham noções básicas de OO, mesmo que acadêmicas, para que possam compreender melhor o conteúdo apresentado.

OBS.: É recomendado que o participante traga seu notebook com o ambiente de desenvolvimento devidamente configurado para que possa realizar os labs práticos.

SOBRE MIM
Bacharel em Ciência da Computação pela UFMS, trabalho como desenvolvedor de software há 16 anos. Neste período, desenvolvi aplicações desktop (Windows), websites e aplicações web para empresas de diversas áreas de negócio - e-commerce, pecuária, varejo, engenharia, educação, saúde, habitação - nos setores privado e público.
Sou especialista em C# e meu foco principal é arquitetura e design de software e todas as boas práticas relacionadas.
Compartilho conhecimento por meio do meu blog - http://robsoncastilho.com.br - que mantenho ativo desde 2010.
Meu currículo encontra-se atualizado no LinkedIn.

DATAS
24/09/2016 (sábado, das 09:00 às 18:00)
01/10/2016 (sábado, das 09:00 às 18:00)

VALOR
R$ 499,90

CONTEÚDO
Parte 1 - Design de software
- O que é design?
- A importância de um software bem projetado
- Principais design smells: quando seu software começa a dar sinais de apodrecimento
- Como cuidar do design do software?

Parte 2 - POO - Conceitos fundamentais
- Entendendo o que é realmente "Orientação a objetos"
- Uma revisão dos conceitos principais: mensagens, abstração, coesão, acoplamento,...
- A importância do encapsulamento
- Herança e seu mau uso (a máxima "Composição mais do que herança")

Parte 3 - Princípios de design

- Princípios GRASP
- Comand/Query Separation (CQS)
- Tell, don't ask
- Law of Demeter
- Princípios SOLID
----- Princípio da Responsabilidade Única
----- Princípio do Aberto/Fechado
----- Principio de Substituição de Liskov
----- Princípio da Segregação de Interface
----- Princípio da Inversão de Dependência

Parte 4 - Design Patterns Elementares (Gang of Four)
- O que são?
- Padrões mais comuns
- Quando usar (cuidado com a "patternite")

Parte 5 - Objetos em um software corporativo
- Objetos e "objetos" (Value Objects, DTOs, Eventos, Serviços, etc..)
- Os polêmicos ORMs
- Modelo Anêmico x Modelo Rico

AMOSTRA-GRÁTIS
- O que é Domain-Driven Design e o que isso tem a ver com OO?
- Testando suas classes: um pouco sobre TDD e unit testing
LOCAL

SEDEP

Rua da Paz, 17 - Jardim dos Estados, Campo Grande - MS, Brasil
Campo Grande, Mato Grosso do Sul

Comentários