We may earn an affiliate commission when you visit our partners.
Course image
Clovis Fernandes and Eduardo Guerra

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.

Read more

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 orientadas a objetos pelo uso de padrões de projeto no contexto de desenvolvimento ágil.

Os seguintes conceitos são apresentados neste curso:

• Revisão de conceitos de orientação a objetos: abstração de dados, encapsulamento, herança e polimorfismo

• Reúso por meio de herança: padrões Null Object, Template Method e Factory Method

• Delegando comportamento com composição: padrões Strategy, Bridge, State e Observer

• Composição recursiva: padrões Composite e Chain of Responsibility

• Envolvendo objetos: padrões Proxy, Decorator e Adapter

• Estratégias para criar objetos: padrões Static Fabric Methods, Singleton e Builder

• Modularidade: padrão Dependency Injection

Ao final deste curso, você terá amadurecido de tal modo suas habilidades de programação que será capaz de implementar partes da aplicação Web final com o componente de gamificação enriquecido constantes do Trabalho de Conclusão da Especialização, aplicando onde apropriado alguns dos padrões apresentados neste curso durante a refatoração na prática TDD.

Enroll now

What's inside

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.
Read more
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!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Ensina técnicas de programação orientadas a objetos usando padrões de projeto no desenvolvimento ágil
Desenvolve habilidades profissionais ou experiência profunda em um tópico ou conjunto de tópicos específicos, como padrões de projeto de software
Oferece uma abordagem criativa para os conceitos de programação orientados a objetos

Save this course

Save Desenvolvimento Ágil com Padrões de Projeto to your list so you can find it easily later:
Save

Reviews summary

Project designs and patterns

This course deepens your understanding of using Java and Agile development best practices to tackle more complex design and programming challenges.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Desenvolvimento Ágil com Padrões de Projeto with these activities:
Provide guidance to peers on the principles of object-oriented design
Share your understanding of object-oriented design principles by mentoring peers, solidifying your own knowledge and fostering a collaborative learning environment.
Show steps
  • Identify opportunities to assist peers who may be struggling with object-oriented design concepts.
  • Provide constructive feedback and guidance on their code and design decisions.
Review inheritance and encapsulation
Review the Java concepts of inheritance and encapsulation to ensure a solid foundation for understanding design patterns.
Show steps
  • Revisit tutorials or documentation on inheritance and encapsulation in Java.
  • Work through practice exercises or examples to reinforce your understanding.
Solve problems using the Strategy pattern
Practice applying the Strategy pattern to solve programming problems, solidifying your understanding of its purpose and implementation.
Browse courses on Strategy Pattern
Show steps
  • Study examples of how the Strategy pattern is used in real-world code.
  • Create your own code examples using the Strategy pattern to solve specific problems.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve LeetCode problems related to object-oriented design
Challenge yourself by solving LeetCode problems that require the application of object-oriented design principles, enhancing your problem-solving abilities and reinforcing your understanding.
Browse courses on Object-oriented Design
Show steps
  • Identify LeetCode problems that focus on object-oriented design.
  • Attempt to solve the problems, considering the principles and best practices of object-oriented design.
Attend a workshop on advanced design patterns
Participate in a workshop to delve deeper into advanced design patterns and their applications, expanding your knowledge and skills.
Browse courses on Design Patterns
Show steps
  • Research available workshops that align with your learning goals.
  • Register for a workshop that covers advanced design patterns.
Write a blog post on the benefits of using design patterns
Summarize the advantages and best practices of utilizing design patterns in software development, enhancing your understanding and communication skills.
Browse courses on Design Patterns
Show steps
  • Research various design patterns and their applications.
  • Identify key benefits and challenges associated with design patterns.
  • Write a comprehensive blog post outlining your findings and insights.
Design and implement a prototype using the Dependency Injection pattern
Build a software prototype that demonstrates the implementation and benefits of the Dependency Injection pattern, reinforcing your practical skills.
Browse courses on Dependency Injection
Show steps
  • Plan the architecture of your prototype, considering how to apply Dependency Injection.
  • Implement your prototype using a programming language that supports Dependency Injection.
  • Test and evaluate your prototype to ensure it adheres to the principles of Dependency Injection.

Career center

Learners who complete Desenvolvimento Ágil com Padrões de Projeto will develop knowledge and skills that may be useful to these careers:
Software Developer
A Software Developer is responsible for designing, developing, testing, and maintaining software applications. The experience in this course designing and developing programs in Java will be useful for building a foundation. Additionally, the course's focus on using patterns in an Agile Development context will help you to maximize your output in this role.
Software Engineer
A Software Engineer designs, develops, and maintains software systems. This course's emphasis on reusing code by means of inheritance can help you to write more efficient and maintainable code as a Software Engineer.
Systems Analyst
A Systems Analyst studies an organization's current business processes and designs, develops, and implements new systems to solve business problems. This course's emphasis on use of abstraction, encapsulation, and modularity can help you to develop effective and efficient solutions as a Systems Analyst.
Web Developer
A Web Developer builds and maintains websites. The course's coverage of patterns for creating objects through Abstract Factory, Static Factory Methods, and Singleton can provide the knowledge to implement effective and reusable solutions in a Web Developer role.
Data Architect
A Data Architect designs and manages data systems. This course's focus on designing and developing complex programs in Java will be helpful in providing a foundation for the work of a Data Architect.
Database Administrator
A Database Administrator designs, develops, and maintains databases. This course's focus on reusing code by means of inheritance can help you to write more efficient and maintainable code as a Database Administrator.
IT Architect
An IT Architect designs and manages IT systems. The course's focus on use of abstraction, encapsulation, and modularity can help you to develop effective and efficient solutions as an IT Architect.
IT Consultant
An IT Consultant advises organizations on how to use technology to improve their business processes. The course's focus on patterns in an Agile Development context as well as modularity will be helpful in advising clients on building resilient and adaptable systems.
Project Manager
A Project Manager plans, organizes, and executes projects. The course's emphasis on Agile Development, particularly with regard to modularity and quick response to requirements changes, may be helpful to Project Managers balancing the needs of stakeholders in a complex project.
Quality Assurance Analyst
A Quality Assurance Analyst tests software to ensure that it meets requirements. The course's focus on design patterns can help to build the skills necessary to test for efficient, reusable, and maintainable code.
Business Analyst
A Business Analyst works with stakeholders to understand their needs and develop solutions to business problems. The course's emphasis on Agile Development, particularly with regard to modularity and quick response to requirements changes, can help Business Analysts communicate with stakeholders and build solutions.
Technical Writer
A Technical Writer creates user manuals, help files, and other documentation to explain technical products and services. The course's coverage of design patterns, particularly in the context of Java programming, can help a Technical Writer to clearly explain complex code concepts.
Computer Programmer
A Computer Programmer writes and tests code to create software applications. The course's intentional focus on building complex programs in Java will provide a useful foundation to this work. Additionally, the course's coverage of design patterns can help the programmer to build efficient, reusable, and maintainable code.
Software Tester
A Software Tester tests software to ensure that it meets requirements. The course's focus on design patterns can help to build the skills necessary to test for efficient, reusable, and maintainable code.
Systems Administrator
A Systems Administrator maintains computer systems and networks. The course's coverage of Agile Development generally, and modularity in particular, may be useful in managing a complex distributed system.

Reading list

We've selected 13 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Desenvolvimento Ágil com Padrões de Projeto.
Este livro clássico sobre padrões de projeto é uma leitura essencial para qualquer desenvolvedor que queira se aprofundar no assunto. Ele fornece uma visão abrangente dos 23 padrões de projeto mais comuns, explicando seus prós e contras e fornecendo exemplos de código Java.
Este livro é uma introdução mais acessível aos padrões de projeto do que o livro anterior. Ele usa um estilo divertido e envolvente para explicar os conceitos por trás dos padrões e fornece muitos exemplos de código Java.
Este livro mostra como usar padrões de projeto e desenvolvimento orientado a testes para criar software ágil de alta qualidade. Ele fornece muitos exemplos de código Java e aborda tópicos como refatoração, testes unitários e integração contínua.
Este livro é um recurso valioso para desenvolvedores que desejam aprender sobre desenvolvimento orientado a testes. Ele fornece uma introdução abrangente aos conceitos e práticas do TDD e inclui muitos exemplos de código Java.
Este livro fornece uma introdução abrangente ao design orientado a domínio, uma abordagem para projetar software que se concentra na modelagem do domínio do problema. Ele inclui muitos exemplos de código Java e aborda tópicos como agregação, composição e limites de contexto.
Este livro fornece um guia prático para projetar e estruturar software limpo e fácil de manter. Ele aborda tópicos como separação de interesses, dependências e injeção de dependência.
Este livro é um recurso abrangente para desenvolvedores de software. Ele aborda tópicos como design, codificação, teste e manutenção de software.
Este livro fornece uma introdução abrangente ao design orientado a objetos em Java. Ele aborda tópicos como encapsulamento, herança, polimorfismo e padrões de projeto.
Este livro fornece um guia prático para escrever código Java eficaz. Ele aborda tópicos como gerenciamento de memória, tratamento de exceções e concorrência.
Este livro fornece um guia prático para escrever código Java concorrente. Ele aborda tópicos como threads, sincronização e concorrência sem bloqueio.
Este livro fornece uma introdução abrangente aos princípios, padrões e práticas ágeis em C#. Ele aborda tópicos como desenvolvimento orientado a testes, refatoração e entrega contínua.
Este livro fornece uma introdução abrangente ao design orientado a domínio em PHP. Ele aborda tópicos como agregação, composição e limites de contexto.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Desenvolvimento Ágil com Padrões de Projeto.
Orientação a Objetos com Java
Most relevant
Desenvolvimento Ágil com Java Avançado
Most relevant
Princípios de Desenvolvimento Ágil de Software
Most relevant
TDD – Desenvolvimento de Software Guiado por Testes
Most relevant
Curso de Python: Apps para Android, iOS, Linx, Win, e Mac
Most relevant
Laboratório de Programação Orientada a Objetos - Parte 2
Most relevant
Fundamentos de C++ - Uma Abordagem Completa
Most relevant
Introdução à Ciência da Computação com Python Parte 2
Most relevant
Aprendizado de máquina com Python
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser