Introduction
Meta Principles
Outline
DRY
KISS
YAGNI
SoC
CQS
PoLA
Encapsulation
Conclusion
Names
Outline
General Principles of Naming
About Names Once Again
Violating Naming Conventions
Naming Conventions in .NET
Conclusion
Writing Clean Functions
Outline
Variable Declarations on the Top
Magic Numbers
Stringly Typed Smell
Property vs Method
Implementing Parameters
Too Many Parameters
Too Long Methods
Creational Patterns VS Constructors
Method Extraction
Simplifying Complex Logic
Sequence of Arguments
Guard Clauses and Early Returns
Poor Conditional Clauses
Output Parameters
Comments
Prefer Positive if-statements
Conclusion
Common Architectural Design Smells
Outline
Primitives Obsession
Violation of Law of Demeter
Temporal Coupling
Switch Statements
Refactoring to Strategy
Refactoring to State
Conclusion
Functional Programming - Extendibility and Immutability
Outline
Programming Paradigms
Defining Functional Programming
Functions Are Everywhere
Why Functional Programming
Immutability
Immutability of Structs
Temporal Coupling and Immutability
Pipelining
Extending IDisposable
General Extensions
Extending StringBuilder
Primitive Obsession - Abusing Extension Methods
Builder Design Pattern
Errors and Functional Programming
Handling Errors by Methods Chaining
Conclusion
DI-Related Anti-Patterns & Refactorings
Outline
Control Freak
Hidden Dependencies with Service Locator
Temporal Coupling and Constructor Injection
Constructor Over-Injection
Ambient Context
Facade Service
Property Injection vs Bastard Injection
Cyclic Dependencies
Conclusion
Clean Unit Tests
Outline
Singletons and Static Classes
Too Many Interaces
Reducing Interfaces
Testing Trivial Code
The Rule of Testing a Single Concern
More on Best Practices
Conclusion
Clean Code and TDD
Outline
What is TDD
Red Green Refactor
Three Laws of TDD
Reading Roman Numerals
Continuos Testing
TicTacToe
Conclusion
Master the Art of Writing Clean Code in C#
Learn how to write clean and maintainable code in C#
Master the Art of Writing Clean Code in C#
Learn how to write clean and maintainable code in C#
Learn how to design and implement types in C# so that the other developers won't hate you when using one of the types developed by you. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.
The instructor is letting you choose the price you pay for this course!
The instructor is letting you choose the price you pay for this course!
Learn how to design and implement types in C# so that the other developers won't hate you when using one of the types developed by you. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.
About
About the Course
Improve your knowledge in object-oriented programming in the context of clean coding and building types of high quality
- Learn how to give the best names for API members
- Learn all the tricks related to writing clean functions
- Avoid common architectural smells. Get rid of unpleasant smells
- Apply principles of functional programming: achieve immutability, remove side effects, extend types
- Avoid smells related to dependency injection
- Write cleaner unit tests
- Practice Test-Driven Development
Foundations of building object-oriented infrastructures
Despite the fact that C# is a very rich on features language, it's very common to see poorly designed and implemented types in a real world. In fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging to use all those features in a right way.
You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.
Owning skills of producing a well-designed and well-implemented types is the prerequisite for the other developers to treat you as a real professional.
Content and Overview
This course is aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement APIs. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so you will learn both theoretical and practical material.
The course covers the following topics:
- Meta Principles: DRY, KISS, YAGNI, SoC, CQS, PoLA, Encapsulation
- How to give better names for API members and what naming conventions exist in the .NET platform and suited for C#
- Common problems encountered by C# developers in the process of designing and implementing APIs: classes vs structures, creational patterns vs constructors, poor naming, excessively long methods, output parameters and so on.
- Common Architectural Design Smells such as Primitive Obsession, Hidden Dependencies, Violation of Law of Demeter and other.
- Functional Programming: immutability, temporal coupling, pipelining, extending IDisposable, Builder Design Pattern, abusing extension methods, dealing with errors
- DI-related anti-patterns: control freak, hidden dependencies, temporal coupling, ambient context, facade service, bastard injection, cyclic dependencies
- Clean Unit Tests: singletons and static classes, excessive number of interfaces, testing trivial code, testing of a single concern, different best practices
- Practicing TDD: definition, 3 laws, parsing roman numerals, continuous testing, implementing Tic-Tac-Toe
The list is far from being complete. The course covers a great number of topics.
Enroll and start Mastering the Art of Writing Clean Code in C#!
Price
Course Price
Minimum price
$19.00
$19.00
You pay
$19.00Author earns
$15.20Instructor
About the Instructor
EngineerSpock
I'm thankful enough for that I love what I do.
I began my career as a postgraduate student participating in Microsoft ImagineCup contest.
I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for more than 10 years, primarily based on the .NET platform. I'm passionate about building rich and powerful applications using modern technologies. I'm a certified specialist in Windows Applications and Service Communication Applications by Microsoft. I'm one of the coordinators of the MskDotNet User Group in Moscow.
"If it's work, we try to do less. If it's art, we try to do more." - Seth Godin.
What I can say is that software is my art.
Material
Course Material
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earned over $14 million writing, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them
Write and Publish on Leanpub
You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!
Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.
Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.