Part I Basics Chapter 1: Avoid Unnecessary Code Comments Chapter Goal: To show you the proper use of comments. It also discusses the side-effects of bad/redundant comments.
No of pages: 5-10+
Chapter 2: Use Polymorphism Chapter Goal: To show why a polymorphic code can perform better.
No of pages 5-10+
Sub - Topics
2.1 Initial Program: Demo 1
2.2 Output and Analysis
2.3 Making efficient programs: Demo 2
2.4 Analysis
2.5 Conclusion
Chapter 3: Abstract Class, or Interface? Chapter Goal: In this chapter, we do not compare the basic differences between an abstract class or an interface. Instead, we discuss the code segments where you can use either of them, but the compiler does not raise any issue. Then we will analyze how to write efficient code using both these techniques for some specific scenarios.
No of pages: 10-15+
Chapter 4: Static Method or Instance Method? Chapter Goal: This chapter shows how to decide between a static method and an instance method. It shows the answer with supporting code examples.
No of pages: 5-10+
Part II Important Principles
Chapter 5: The SOLID Principle(s) Chapter Goal: This chapter explains the Single Responsibility Principle( SRP), Open/Closed Principle (OCP), Liscov Substitution Principle (LSP), Interface Segregation Principle (ISP), and Dependency Inversion Principle (DIP) principles (with and without ) with code examples.
No of pages 50+
Chapter 6: The DRY Principle Chapter Goal: In this chapter, you learn about the DRY principle and its importance by building applications in C#. DRY stands for DON'T REPEAT YOURSELF and is a basic principle of software development, aimed to reducing repetition of information.
No of pages: 10-15+
Part III Make Flexible Applications
Chapter 7: Separate Changeable Code Using Factories Chapter Goal: This chapter shows the common use of factories to separate the varying code from its opposite.
No of pages: 10-20+
Chapter 8: Add Features Using Wrappers Chapter Goal: This chapter shows the alternative of inheritance using object composition and wrappers.
No of pages: 10-20+
Chapter 9: Efficient Templates using Hooks Chapter Goal: This chapter shows the use of hooks inside a template method to shorten your code.
No of pages: 10-15+
Chapter 10: Simplify Complex Systems using Facades Chapter Goal: This chapter shows the use of facades to simplify a complex system.
No of pages: 10-15+
Part IV The Final Talks
Chapter 11: Apply Design Patterns Chapter Goal: This chapter discusses the uses of design patterns and shows which patterns are already implemented in this book on different topics. It also discusses the misuse of patterns.
No of pages: 5-10+
Sub - Topics NA
Chapter 12: The Road Ahead Chapter Goal: It discusses some other techniques in brief.
No of pages: 5-10+
Sub - Topics NA
About the Author: Vaskaran Sarcar obtained his Master of Engineering degree in software engineering from Jadavpur University, Kolkata (India) and an MCA from Vidyasagar University, Midnapore (India). He was a National Gate Scholar (2007-2009) and has more than 12 years of experience in education and the IT industry. Vaskaran devoted his early years (2005-2007) to teaching at various engineering colleges, and later he joined HP India PPS R&D Hub Bangalore .He worked there until August, 2019. At the time of his retirement from the IT industry, he was Senior Software Engineer and Team Lead at HP. To follow his dream and passion, Vaskaran is now an independent full-time author. Other Apress books written by Vaskaran include: Design Patterns in C# second edition, Getting Started with Advanced C#, Interactive Object-Oriented Programming in Java second edition, Java Design Patterns second edition, Interactive C#, Interactive Object-Oriented Programming in Java, and Java Design Patterns. And other books he authored include: Python Bookcamp (Amazon, 2021), and Operating System: Computer Science Interview Series (Createspace, 2014).