Desenvolvimento Ágil com Padrões de Projeto

Instituto Tecnológico de Aeronáutica via Coursera

Go to Course: https://www.coursera.org/learn/desenvolvimento-agil-com-padroes-de-projeto

Introduction

### Course Review: Desenvolvimento Ágil com Padrões de Projeto **Platform: Coursera** **Language: Portuguese** **Level: Intermediate** **Prerequisites: Basic knowledge of Java programming** #### Overview Desenvolvimento Ágil com Padrões de Projeto is an informative and immersive course on Coursera that targets intermediate Java developers seeking to refine their skills in software design, particularly using design patterns. The course acknowledges that participants already possess foundational knowledge in Java programming, allowing for a jump straight into more complex scenarios where manageability and adaptability of code are critical. In a software development landscape where requirements can shift unexpectedly, mastering design patterns becomes essential for maintaining code quality while ensuring flexibility. This course not only emphasizes theoretical knowledge but also encourages practical application, making it an attractive option for anyone looking to bolster their programming toolkit. #### Course Structure The course is structured into four comprehensive weeks, each focusing on different aspects of design patterns and their application in agile development. **Week 1: Introduction to Design Patterns** In the first week, students are welcomed and introduced to important object-oriented concepts relevant to design patterns. The focus is on the Strategy pattern, which enables dynamic behavior selection at runtime, as well as the Static Factory Methods, an alternative way to instantiate objects that promotes clarity in creation. **Week 2: Inheritance and Composition Patterns** This week dives deeper into design patterns that utilize inheritance and composition. Participants learn to identify four inheritance-based patterns and three composition-based patterns, understanding their application scenarios, strengths, and weaknesses. **Week 3: Recursive Composition and Advanced Patterns** In Week 3, the course emphasizes recursive composition through the Composite and Chain of Responsibility patterns. Additional exposure to encapsulation is provided via the Proxy, Decorator, and Adapter patterns. The Singleton pattern is also covered, which is crucial when it comes to ensuring that a class has only one instance throughout the application lifecycle. **Week 4: Abstract Factory, Builder, and Dependency Injection** The final week ties together concepts through practical application. Students will learn how to create objects using the Abstract Factory and Builder patterns, enhance code modularity through Dependency Injection, and apply their knowledge by developing a small gamified application, reinforcing their learning with hands-on experience. #### Recommendations Desenvolvimento Ágil com Padrões de Projeto is an excellent course for developers who wish to enhance their object-oriented design skills and learn about agile practices. Here are a few reasons to consider this course: 1. **Comprehensive Content**: The course delivers a robust understanding of various design patterns and their applications, enabling you to tackle complex programming challenges more effectively. 2. **Practical Applications**: The inclusion of hands-on projects, especially the gamification aspect in the final week, allows for real-world application of learned concepts, which is crucial for retention and understanding. 3. **Community Support**: Coursera’s platform encourages interaction with peers and instructors, allowing for a collaborative learning experience which can enhance your understanding through discussion and problem-solving. 4. **Flexible Learning**: Given Coursera’s structure, you can learn at your own pace, making it easy to fit this course into your busy schedule. #### Conclusion If you are a Java programmer looking to deepen your understanding of design patterns and agile development, the course *Desenvolvimento Ágil com Padrões de Projeto* is a wise investment in your professional growth. By integrating theoretical knowledge with practical applications, this course equips you with the necessary skills to navigate and adapt to the complexities of modern software development scenarios. Consider enrolling and take your programming skills to the next level!

Syllabus

Semana 1

Olá, bem-vindo ao Curso 5 – Desenvolvimento Ágil com Padrões de Projeto! Estamos contentes que você esteja aqui para se exercitar com padrões de projeto. Neste módulo introdutório, você será apresentado inicialmente a uma revisão rápida de conceitos de orientação a objetos pertinentes a padrões de projeto; depois, a uma introdução a padrões de projeto, onde você aprenderá a usar o padrão Strategy. Ao final deste módulo você também terá aprendido uma forma alternativa a construtores para instanciar objetos, na forma do padrão Static Factory Methods.

Semana 2

Olá, bem-vindo ao Curso 5 – Desenvolvimento Ágil com Padrões de Projeto! Neste módulo você aprenderá a identificar quatro padrões em que se utiliza a herança; depois, três padrões em que se utiliza a composição.

Semana 3

Olá, bem-vindo ao Curso 5 – Desenvolvimento Ágil com Padrões de Projeto! Neste módulo você aprofundará seus conhecimentos sobre composição recursiva, bem como com os padrões Composite e Chain of Responsibility, nos quais se emprega a composição recursiva. Você será exposto aos padrões Proxy, Decorator e Adapter, em cujas estruturas se faz uso do encapsulamento. Ao final, você aprenderá como criar classes em que se pode instanciar apenas um único objeto, na forma do padrão Singleton.

Semana 4

Olá, bem-vindo ao Curso 5 – Desenvolvimento Ágil com Padrões de Projeto! Ao final deste módulo, você terá aprendido a criar objetos por meio dos padrões Abstract Factory e Builder. Você terá aprendido também uma forma de modularizar seu código com base no padrão de projeto Dependency Injection. Ao final, você irá exercitar parte do conhecimento aprendido neste curso ao desenvolver uma pequena aplicação com gamificação!

Overview

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, graças às boas práticas e princípios exercitados nos cursos anteriores; mas você talvez não se sinta ainda confortável em lidar com cenários mais complexos, onde é difícil desenvolver software com código de qualidade com flexibilidade suficiente para facilitar a implementação de mudanças repentinas de requisitos. O objetivo deste curso é oferecer a você um aprofundamento em técnicas de programação

Skills

Reviews

Falta alguns exemplos para simplificar alguns padrões, como pro exemplo o DIP que é um pouco complicado só vendo diagramas.\n\nHands-on seria uma boa opção de exemplo.

Um curso excelente para dar uma visão maior sobre os padrões e onde aplica-lós.

Great course, just be careful with the last project, you may have to enter in contact with the Coursera support to get the certificate. because it's a peer reviewed project but students are sparse.

E\n\nx\n\nc\n\ne\n\nl\n\ne\n\nn\n\nt\n\ne\n\n.\n\nR\n\ne\n\nc\n\no\n\nm\n\ne\n\nn\n\nd\n\no\n\n!

Fantastic opportunity to have hands on experience with design patterns! Highly recommended!