Understanding the concepts of Software Design Patterns
Problems, Context and Solutions - the right way of choosing the Design Patterns for pertinent problem in a given context
Description
This course is primarily meant for Software professionals engaged in software application development, The field of Software application development is always mired with a number of problems, and development of elegant, robust and performant software application is always challenging. A developer typically encounters a number of problems during the course of application development, and he/she needs to take care of the same. This situation is usually referred to as Problem in a Context. The Solution is always the Design Pattern. This is true for any application development platform or programming language.
Programming languages and platforms evolve and disappear, but design patterns lasts for ever. This is the relevance and importance of Design Patterns.
This course will cover the basic problems that are faced by any progressive software application developer professional. It identifies the ad hoc coding practices that usually creeps into the code, and help the developer to identify them and avoid. It also helps the developer to absorb and assimilate six great software application development principles, which the help of which, the developer can nurture his/her coding culture.
The course will then discusses the fundamental aspects of the Design Pattern, based on the Gang of Four (GOF) classification methodology. The course covers all the 23 design patterns under the three fundamental categories - creational, structural and behavioral. It will also help you to identify newer patterns, and help you catalog the same under the right category.
This course is highly illustrative, and uses graphical illustrations to drive-in the concepts of design patterns. This course is also programming language and platform independent, in the sense that, UML graphical language is used to explain how each of the patterns works. For almost all the patterns, simple projects are created using Eclipse IDE, using Java Platform as the typical programming platform to enunciate the solutions.
Beyond this, the course helps you, with a bonus, to uncover different ways of categorization of Design Patterns - Platform based Categorization and Classification based on other schools of thought from individuals and experts in this field. This course is also replete with Project with examples, cheat sheets and quiz questions for checking the knowledge and concept assimilation.
Now Added: WHO AM I? Quiz Section. There are about 30 quiz questions that will help you to realize your understanding of the subject.
What You Will Learn!
- The students will be able to understand how to look for problems in software application development, identify context, & choose appropriate & elegant solution
- The student will be able to understand the problem in the right context, so that he can choose the right solution.
- The students will be able to create quality application with confidence and rigor.
- The students will be able to have a solid understanding of 23 different types of Design patterns
- They will be able to understand the importance and relevance of classification route to understand the subject
- They will also be able to avoid pitfalls of STUPID coding and learn SOLID principles of coding
- They will be able to realize the basis of 3 categories, will be able to appreciate how to any application will cover, to different extents, these three division
- Understand the patterns through UML and platform independent way
- Understand the concepts through a number of samples, examples, demos, hands on labs, out-of-the box examples etc.
- Download the individual project, test, modify and have experienced learning
Who Should Attend!
- Any software developer, eager to learn the guidelines, best practices and principles in Software Development exercise to generate solid software application
- Any software developer, who is facing a variety of challenges in implementing the solution, and unable to choose the right solution for the problem, based on the context.
- An architect who is in the process of creating robust, elegant and performant software applications