General statistics
List of Youtube channels
Youtube commenter search
Distinguished comments
About
Daniel Sandberg
NDC Conferences
comments
Comments by "Daniel Sandberg" (@ddanielsandberg) on "NDC Conferences" channel.
Previous
1
Next
...
All
He is exactly right. As he is saying -"IClock is a failure of abstraction". It's NOT an interface and It's not a class - it's an abstraction. The client (ExampleContext) of your repository does not care if it's a concrete class, an abstract class or interface - it's an object following a contract. "// is this an interface or a class? who the hell knows?" - If you need to know, you missed the point of OO.
18
I recommend to watch all of Ben Eater's videos. He builds on breadboards; he starts with explaining simple gates, slowly replacing them with ICs and EEPROMS and in the end makes an entire 8-bit CPU, with buses, memory and writing programs in some ASM-like language.
10
And yet, most developers thinks that refactoring means spending a week (or two) doing a partial rewrite. Or thinks that CI/CD means to have a build server, or that testing is "QA", I could go on... That developers understand the metaphores is not true at all.
5
Ah, the old "Java *Impl argument" again. Calling your implementation *Impl has nothing to do with Java and is just because of lazy programmers. Don't call your things Impl and don't bash a language for the fallacies of its users. And regarding IDogService vs. DogService - if the consumer of an object need to know if it's an interface or a class you are doing it wrong. You are stuck in class-oriented programming. The consumer should only care that it is working with an object following a given contract and not if it's an interface, abstract class or concrete implementation. This is a known problem since the birth of C++; the confounding of types and implementations. One design-style that helps a bit is where libraries and modules only exposes the types(contracts) like "List" and do not expose the implementations (ArrayList) by hiding the implementations behind static factory functions (var list = Lists.arrayList()). This is trivial in Java using the package private access modifier, maybe the "internal" access modifier in C# can accomplish the same. I also recommend looking into the work around DCI by Jim Coplien and Trygve Reenskaug.
1
Previous
1
Next
...
All