A write-up by David Cassel on proponents and opponents of OOP.
Ilya Suzdalnitski, in his article, is proposing functional programming as an alternative to object-oriented programming.
Employing functional programming concepts can improve the quality of your code. Though using functional-programming-inspired features [in C#] is not the same as programming in a pure functional language, like Haskell. Or even a hybrid language but with stronger emphasis on the functional side, like F#.
Ed Charbeneau wrote an excellent guide which explains writing functional programming in C# through an example use case.
Alan has written a series of some good class design and implementation guidelines post. URL: Object Design and Implementation
Rule #1: Practice Drawing Make Good Classes
Rule #2: Documation!
Rule #3: Alan’s Class Template (“ACT”)
Rule #4: Never Walk, But Fly!!!
Rule #5: Always evaluate How We Fly!
Rule #6: No Private Variable Shall Have Direct Access to the Class Public Interface
Rule #7 & #8: All about Numbers!!