C++ Refactoring Bootcamp: Apply Modern C++ To Legacy Code
Published 6/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 324.70 MB | Duration: 0h 31m
Published 6/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 324.70 MB | Duration: 0h 31m
C++, Modern C++, Refactoring, Software Practices, Fixing technical debt of using C++98 when C++11 or higher is available
What you'll learn
Identifying opportunities to upgrade legacy C++98 code
Using modern C++ features without changing the functionality
Understanding the challenges in refactoring through the coding exercises
Building a framework to review code for anti patterns and code smells.
By the end of this course, you'll have a solid understanding of C++11 features and how to refactor C++98 code to take advantage of them.
Requirements
Basic understanding of C++98: You should be familiar with C++98 syntax, data types, control structures, classes, inheritance, polymorphism, templates, and the standard library.
Basic programming concepts: You should have a good understanding of programming concepts like variables, loops, functions, and arrays.
Willingness to learn: As with any new subject, a willingness to learn and explore is important!
Description
Immerse yourself in an engaging journey through modern C++, learning how to refactor legacy code from C++98 to C++11 and beyond. This course comprehensively explores modern C++ features through hands-on coding exercises and interactive quizzes to promote active learning and practical understanding.You will learn the nuances of auto-type deduction, move semantics, lambda expressions, range-based loops, and many more facets of C++11 through extensive code samples and assignments. Each new concept is accompanied by practical exercises reinforcing your learning and showcasing how these features can enhance code readability, performance, and safety.Given the course's hands-on focus, the emphasis is not merely on explaining the new language features but also on their application in real-world programming tasks. You will tackle numerous coding challenges that simulate real-life scenarios, aiding you in understanding how to update older codebases to contemporary standards—a crucial skill in today's programming landscape.The course is particularly suitable for seasoned C++ developers and aspiring programmers with a foundational understanding of C++98, eager to embrace modern C++ techniques. This course will equip you with the knowledge and confidence to adapt legacy C++ codebases to the latest standards, enabling you to write more efficient and maintainable code.Refactoring plays a crucial role in the health and longevity of large-scale production systems. As systems evolve, they inevitably accrue 'technical debt.' Once efficient code becomes outdated, hard to read, or inefficient due to changes in the broader system, dependencies, or simply the evolution of programming techniques. As systems grow, this technical debt can significantly hinder productivity, as developers have to spend more and more time understanding and working around old code rather than implementing new features. Refactoring, the process of improving existing code without changing its functionality, is the best tool to combat this. It enhances code readability, reduces complexity, and can often lead to performance improvements, all of which can significantly boost the productivity of a development team.For new learners, the allure of the latest programming languages or techniques can often overshadow the importance of maintaining and improving existing code. While it's crucial to keep up-to-date with the latest developments in the field, it's equally important to understand that a significant portion of a developer's work often involves maintaining and refactoring existing codebases. This can be particularly true in a corporate setting, where substantial amounts of code might be in production for years, even decades. Learning to refactor this code, to improve it within its original context, is a valuable and in-demand skill. It helps maintain the system's health and contributes to a more efficient and productive development process. This careful balance of learning new features and maintaining older ones forms the bedrock of a successful programming career.Are you ready to embrace the future of C++ programming? Join us now, and start writing cleaner, more efficient, safer code today!
Overview
Section 1: Introduction
Lecture 1 Course Overview
Lecture 2 Course Prerequisistes
Section 2: Refactoring legacy codes in imminent
Lecture 3 Setting the expectations: Assumptions vs reality of working with C++ at work
Lecture 4 Refactoring oppotunities in legacy code bases
Lecture 5 Using modern to tool to write modern C++ code
Lecture 6 Refactoring basics - Brief overview applicable in majoirty scenarios
Lecture 7 Code smells and anti patterns one must avoid and remove from legacy code
Lecture 8 Refactoring Best practices at a glance
Section 3: Coding Exercises - Practice Zone
Lecture 9 Approach to solve the coding excercises in the course
Section 4: Conclusion
Lecture 10 Closing remarks
Lecture 11 [Bonus Lecture]
Experienced C++ developers who want to update their skills to include C++11 features.,Students studying computer science or a related field who want to deepen their understanding of modern C++.,Software professionals intending to apply for positions requiring knowledge of modern C++.,Anyone interested in learning about the improvements and features introduced in C++11 and how to use them effectively.