Book Image

Clean Code with C# - Second Edition

By : Jason Alls
4.5 (2)
Book Image

Clean Code with C# - Second Edition

4.5 (2)
By: Jason Alls

Overview of this book

Traditionally associated with Windows desktop applications and game development, C# has expanded into web, cloud, and mobile development. However, despite its extensive coding features, professionals often encounter issues with efficiency, scalability, and maintainability due to poor code. Clean Code in C# guides you in identifying and resolving these problems using coding best practices. This book starts by comparing good and bad code to emphasize the importance of coding standards, principles, and methodologies. It then covers code reviews, unit testing, and test-driven development, and addresses cross-cutting concerns. As you advance through the chapters, you’ll discover programming best practices for objects, data structures, exception handling, and other aspects of writing C# computer programs. You’ll also explore API design and code quality enhancement tools, while studying examples of poor coding practices to understand what to avoid. By the end of this clean code book, you’ll have the developed the skills needed to apply industry-approved coding practices to write clean, readable, extendable, and maintainable C# code.
Table of Contents (18 chapters)

Understanding unit testing

In C#, unit tests are automated tests written to verify the behavior of a small, isolated piece of code known as a unit. The goal of unit testing is to ensure that the unit behaves as expected and meets the requirements and specifications defined for it.

A unit test should test the functionality of the unit in isolation, without relying on any external dependencies, such as a database or web service. The isolation of the unit test ensures that any failures are caused by issues within the unit being tested, rather than external factors. This means that unit tests are fast, efficient, and provide rapid feedback to the developer.

Unit tests should cover all relevant scenarios and edge cases for the unit being tested, including both valid and invalid input values. This helps to ensure that the unit behaves correctly in all possible situations. Unit tests should also be maintainable, meaning that they can be easily updated as changes are made to the code...