Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA CompTIA Security+ Amazon AWS AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Mindfulness Personal Development Personal Transformation Meditation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
IT & Software Other IT & Software Refactoring

Refactoring to Design Patterns by Example

Improving internal design of an existing application with refactoring techniques and design patterns in C#
Bestseller
Rating: 4.6 out of 54.6 (376 ratings)
2,469 students
Created by Zoran Horvat
Last updated 5/2019
English
English
30-Day Money-Back Guarantee

What you'll learn

  • How to apply design patterns while refactoring an existing application
  • How to contain complexity of the business domain while performing small refactoring and redesign steps
Curated for the Udemy for Business collection

Requirements

  • Basic understanding of refactoring
  • Basic working knowledge of design patterns
  • Knowing C# is a plus

Description

This course begins with examination of a realistic application, which is poorly factored and doesn't incorporate design patterns. The demo application converts text into subtitles for videos, which makes it quite useful in practice. Yet, it is nearly impossible to maintain and develop this application further, due to its poor structure and design.

That is the point at which the course begins. As demonstration after demonstration will unfold, we will refactor this entire application, one function and one class at a time. During refactoring, many design patterns will fit into place almost without effort. By the end of the course, you will know how code refactoring and design patterns - one coding practice and one design practice - can operate together and help each other create great design.

Who this course is for:

  • Hands-on programmers who are struggling to keep their source code clean and extensible
  • Programmers who wish to apply design patterns without causing more harm than good
  • All those who wish to improve their object-oriented programming and design skills

Featured review

Saikalyan Akunuri
Saikalyan Akunuri
6 courses
3 reviews
Rating: 5.0 out of 5a year ago
Perfect. Its very practical and the live example makes it much more easier to relate. I am doing the refactoring along with the session and that helps understand the concept much better rather than just watching the refactoring

Course content

9 sections • 51 lectures • 4h 25m total length

  • Preview08:12
  • Preview08:51
  • Identifying Current Factoring of an Application
    05:33
  • Identifying Refactoring Targets
    07:35
  • Summary
    02:14

  • Understanding Importance of Proper Naming
    03:38
  • Defining the Project Structure
    04:27
  • Implementing the Project Structure
    04:11
  • The Case in Favor of Using Refactoring Tools
    02:11
  • Naming Classes After Concepts They Model
    03:42
  • Naming Classes After Behavior They Offer
    05:11
  • Summary
    02:15

  • Identifying the Need to Decouple Function Calls
    05:11
  • Refactoring Tightly Coupled Calls to the Strategy Pattern
    Preview08:08
  • Implementing Stateful Strategies
    07:35
  • Null Object Pattern as a Strategy
    08:41
  • Summary
    02:09

  • Identifying the Need to Group Equally-typed Strategies
    02:53
  • Understanding the Composite Pattern
    06:12
  • Chaining Strategies with Composite Pattern
    Processing..
  • Understanding the Drawbacks of Composite
    02:28
  • Understanding the Decorator Pattern
    03:06
  • Wrapping Strategies with the Decorator Pattern
    07:02
  • Summary
    02:30

  • Identifying the Need for a Builder
    07:28
  • Preparing Ground for the Builder
    07:54
  • Designing the Builder
    06:46
  • A Word about Structuring Namespaces
    06:18
  • Summary
    02:28

  • Identifying Infrastructural Concerns
    07:58
  • Introducing the Infrastructure Layer
    07:42
  • Isolating Infrastructural Code
    07:49
  • Moving Infrastructural Code to Another Layer
    06:22
  • Summary
    02:21

  • Identifying the Domain Rules
    06:19
  • Preparing Room for Explicit Rules
    07:13
  • Implementing the Rules
    07:15
  • Constructing Composite Rules
    04:24
  • Wrapping Rules into a Rule Adapter
    06:03
  • Summary
    02:58

  • Identifying the Need for Unrelated Behaviors
    03:56
  • Introducing the Visitor Design Pattern
    08:16
  • Building Structural Inspection on the Visitor Idea
    03:50
  • Implementing the Structural Inspection Visitor
    04:35
  • Implementing the Concrete Visitor
    06:06
  • Summary
    01:51

  • Extending the Rules System
    05:13
  • Pushing the Rules System to Its Extreme
    04:35
  • Adding Features to the Domain
    05:44
  • Summary
    01:47
  • Course Summary
    08:45

Instructor

Zoran Horvat
CEO and Principal Consultant at Coding Helmet s.p.r.l.
Zoran Horvat
  • 4.7 Instructor Rating
  • 668 Reviews
  • 3,310 Students
  • 4 Courses

Zoran is Principal consultant at Coding Helmet Consultancy, speaker and author of 100+ articles, and independent trainer on .NET technology stack. You can find him speaking at conferences and user groups, promoting object-oriented development style, clean coding practices and techniques that improve longevity of complex business applications. Since 2014, Zoran is constantly publishing video courses, explaining object-oriented modeling and design as the central element of application design and relating it to other development aspects, such as persistence, UI and system integration.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.