We may earn an affiliate commission when you visit our partners.
Steve Smith

You’ve learned SOLID and Refactoring; now put them together! This course will teach you how to apply refactoring techniques to improve the design of an existing application, using SOLID principles as a guide.

Read more

You’ve learned SOLID and Refactoring; now put them together! This course will teach you how to apply refactoring techniques to improve the design of an existing application, using SOLID principles as a guide.

Legacy code is often difficult to maintain and extend. In this course, Refactoring to SOLID C# Code, you’ll learn to apply refactoring techniques guided by SOLID principles. First, you’ll explore a small application that wasn’t written to follow SOLID. Next, you’ll discover ways to improve the design using specific techniques. Finally, you’ll learn how to assess and test the resulting code. When you finish this course, you’ll have the skills and knowledge of refactoring and OO design principles needed to improve and maintain legacy .NET applications.

Enroll now

What's inside

Syllabus

Course Overview
Assessing Legacy Code
Updating Legacy Code
Refactoring Legacy Code to Follow SRP
Read more
Refactoring Legacy Code to Follow DIP and ISP
Refactoring Legacy Code to Follow OCP and LSP
Assessing and Testing SOLID Code

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores refactoring concepts, which are standard in solid c# code engineering
Taught by Steve Smith, who is recognized for their work in coding best practices
Applies essential OO design principles for hands-on implementation

Save this course

Save Refactoring to SOLID C# Code to your list so you can find it easily later:
Save

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 Refactoring to SOLID C# Code with these activities:
YouTube Tutorials on SOLID Principles
Helps solidify understanding of SOLID principles before the course begins.
Browse courses on SOLID
Show steps
  • Search for YouTube videos on SOLID principles.
  • Watch videos that explain the SRP, DIP, ISP, OCP, and LSP principles.
  • Take notes on the key concepts and examples.
Find a Senior Software Engineer Mentor
Provides opportunities to learn from experienced professionals and gain insights into industry best practices.
Browse courses on Mentoring
Show steps
  • Identify a senior software engineer with expertise in refactoring and object-oriented design.
  • Reach out and express your interest in mentorship.
  • Meet with the mentor regularly to discuss your progress and seek guidance.
Collection of Open-Source Refactoring Tools
Provides a valuable resource for applying refactoring techniques in practical development.
Browse courses on Refactoring
Show steps
  • Research and identify open-source refactoring tools.
  • Test and evaluate the tools to determine their strengths and weaknesses.
  • Create a compilation of the most useful tools, including a description of their features and use cases.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Refactoring Code Exercises
Provides practical application of refactoring techniques covered in the course.
Browse courses on Refactoring
Show steps
  • Find open-source codebases with poorly written code.
  • Identify areas where refactoring techniques can be applied.
  • Refactor the code according to SOLID principles.
  • Test the refactored code to ensure it behaves as expected.
Martin Fowler's Refactoring: Improving the Design of Existing Code
Provides a deeper understanding of refactoring principles and best practices.
Show steps
  • Read Chapter 1 to understand the principles of refactoring.
  • Read Chapters 2-5 to learn about specific refactoring techniques.
  • Apply the techniques to your own code projects.
Code Refactoring Competition
Provides a challenging and motivating environment to apply refactoring skills.
Browse courses on Refactoring
Show steps
  • Find a code refactoring competition to participate in.
  • Study the competition rules and requirements.
  • Refactor a codebase according to the competition requirements.
  • Submit your refactored code to the competition.
Blog Post on Refactoring a Real-World Codebase
Enhances understanding of refactoring principles and improves writing and communication skills.
Browse courses on Refactoring
Show steps
  • Identify a small, well-defined section of code that could benefit from refactoring.
  • Refactor the code using SOLID principles.
  • Write a blog post explaining the problem you encountered, the steps you took to refactor the code, and the benefits of the refactoring.
Mentor Junior Developers in Refactoring
Reinforces understanding of refactoring principles and provides opportunities to help others improve their skills.
Browse courses on Refactoring
Show steps
  • Find a junior developer or peer who is interested in learning about refactoring.
  • Set up regular mentorship sessions.
  • Discuss refactoring principles and techniques.
  • Provide guidance and support on refactoring projects.

Career center

Learners who complete Refactoring to SOLID C# Code will develop knowledge and skills that may be useful to these careers:
Software Architect
A Software Architect designs, builds, and maintains software applications. This course, Refactoring to SOLID C# Code, will help you develop the skills needed to produce high-quality, well-designed code. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Senior Developer
A Senior Developer leads and mentors junior developers, and works on complex software projects. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Lead Software Engineer
A Lead Software Engineer leads and mentors junior developers, and works on complex software projects. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Technical Lead
A Technical Lead leads and mentors junior developers, and works on complex software projects. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Software Engineer
A Software Engineer designs, builds, and maintains software applications. This course, Refactoring to SOLID C# Code, will help you develop the skills needed to produce high-quality, well-designed code.
Software Developer
A Software Developer designs, builds, and maintains software applications. This course, Refactoring to SOLID C# Code, will help you develop the skills needed to produce high-quality, well-designed code.
Software Project Manager
A Software Project Manager plans, executes, and monitors software development projects. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Software Consultant
A Software Consultant provides guidance and expertise on software development projects. This course, Refactoring to SOLID C# Code, will help you develop the skills needed to produce high-quality, well-designed code. This course will be especially beneficial if you are working on a legacy application that needs to be updated.
Software Quality Assurance Analyst
A Software Quality Assurance Analyst tests and evaluates software applications to ensure that they meet quality standards. This course, Refactoring to SOLID C# Code, may be useful for developing the skills needed to produce high-quality, well-designed code.
Systems Analyst
A Systems Analyst analyzes and designs software systems. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to produce well-designed and maintainable code.
IT Manager
An IT Manager plans, implements, and manages IT systems. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to produce high-quality, well-designed code. This course may be especially helpful if you are working on a legacy application that needs to be updated.
Database Administrator
A Database Administrator designs, implements, and maintains databases. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to produce maintainable and extensible code. This course may be especially helpful if you are working on a legacy application that needs to be updated.
Technical Writer
A Technical Writer creates and maintains technical documentation. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to write clear and concise documentation for software applications. This course may be especially helpful if you are working on a legacy application that needs to be updated.
Computer Scientist
A Computer Scientist researches and develops new computer technologies. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to design and implement high-quality software systems.
Professor
A Professor teaches and conducts research in a university setting. This course, Refactoring to SOLID C# Code, may be useful for developing the skills to teach software development concepts and principles.

Reading list

We've selected seven 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 Refactoring to SOLID C# Code.
Korean translation of Martin Fowler's "Refactoring: Improving the Design of Existing Code." It provides practical examples of refactoring techniques that can help you apply SOLID principles.
Provides patterns for implementing SOLID principles. This good reference for some of the design principles mentioned in the course.
It provides a comprehensive overview of professional C# software development, which serves as the basis for applying SOLID principles in this course.
Inspired the SOLID principles of object-oriented design and will help you gain a deeper understanding of these principles before taking the course.
Provides a robust introduction to test-driven development, which is mentioned in the course syllabus.
Provides additional examples and provides supplemental insights that can be used to solidify your understanding of the design patterns mentioned in the course syllabus.

Share

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

Similar courses

Here are nine courses similar to Refactoring to SOLID C# Code.
Refactoring to SOLID Java
Most relevant
Improving, Testing, and Refactoring a Legacy Android App
Most relevant
Object-oriented Design with C#
Most relevant
Design Patterns
Most relevant
Ruby on Rails Design Patterns and Refactoring
Most relevant
Java Refactoring: Best Practices
Most relevant
Java Fundamentals: Object-oriented Design
Most relevant
Implementing Design Patterns Using Java 8 Lambda
Most relevant
Building Multithreaded C# 8 Applications with the Task...
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