Reputation
4,059
Top tag
Next privilege 5,000 Rep.
Approve tag wiki edits
Badges
9 23
Newest
 c#
Impact
~75k people reached

Dec
26
revised Design pattern for “operation on object allowed, only if object is in certain state”
deleted 464 characters in body
Dec
26
answered Design pattern for “operation on object allowed, only if object is in certain state”
Dec
25
comment Drawbacks of a master error handler?
Exception.Data == context. Well, in C# anyway.
Dec
25
comment Avoiding constructors with many arguments
Mr. Factory: "What object do you want? ... What's that? Just tell me what class-object to build." The configuration file JSON is a data source, as Uncle Bob says "it's an implementation detail." It could from another source and/or in another form. Generally we want to decouple from the specific datasource details. Should the source or form change, the factory will not. Given a source+parser, and a factory as decoupled modules makes both reusable.
Dec
23
answered Dependency Inversion Principle and Hollywood analogy
Dec
23
comment Blaming the ills of today on the technical debt of yesterday
Hero opportunity! But management is key. 1. Boss: "give it a try, nobody's been able to fix that for years". I re-wrote the key programs - HERO!. 2. New division w/ new boss who was truely incompetent both as a manager and software guy (and a conspiracy theorist). His boss had a psychopathic streak (yes, really) with "smile to your face and stab you in the back" vindictiveness. I solved existing problems and much more. Net result? I'm fired for spelling errors in development code; organizing a show and tell; strip waxing the roaches off the floor. Nitchie said "hell is other people."
Dec
23
comment Blaming the ills of today on the technical debt of yesterday
Food for thought. Post comment, I was changing direction. Nonetheless "technical debt" seems firstly, a deliberate decision; but alas, secondly it is what you inherit. So one can say hiring those who write such code is a conscious decision to incur technical debt. Oh muse! where is that shadowy line between "debt" and "WTF did you give me? I'm suing you morons!"
Dec
23
comment Blaming the ills of today on the technical debt of yesterday
I suggest that incompetence is not technical debt. Seems to me that technical debt is a deliberate thing. However the OP describes incompetent programming. I can't imagine anyone buying this line: "We're not incompetent, we're strategically incurring technical debt." Not delivering function B due to <whatever> is technical debt. Limiting infrastructure to deliver function A today, knowing function B will require framework redesign is technical debt. Delivering function A as a bug infested steaming pile of failure is not technical debt.
Dec
22
comment Object with Customized Properties and Methods
@KevenDenen, Fussing w/ individual properties in this way suggests that current design is inadequate. Properties are state. What is being done that requires state change? Think hard about how the 50 state class is likely a composition of classes each doing their own thing, contributing to the whole. A class is about doing and properties facilitate doing. When you're clear about what to do the properties should coalesce around that. Then you can apply the state pattern (discussion and code)
Dec
22
comment How do I associate command objects with the right receiver?
An implementation example. And, an SO discussion
Dec
20
revised Object with Customized Properties and Methods
added 82 characters in body
Dec
20
answered Object with Customized Properties and Methods
Dec
18
revised Avoiding constructors with many arguments
added 22 characters in body
Dec
18
answered Avoiding constructors with many arguments
Dec
18
comment Best strategy for reporting progress to the UI - how should the callback happen?
I'll bite. We use BackgroundWorker that R.H. mentions. Wrapped in a custom class along with a "progress form", etc. and a simple mechanism for communicating an exception - as BackgroundWorker by design runs in a separate thread. To the extent we use its features in a way suggested by .Net then that could be said to be idiomatic. And in any given language/framework context "idiomatic" may be best.
Dec
16
revised Call base inside overriden method
deleted 13 characters in body
Dec
15
revised Call base inside overriden method
added 114 characters in body
Dec
15
answered Call base inside overriden method
Dec
15
comment How to “program to an interface”
UP. createdAfter(date) - on its face is excellent - Alan Kay would give it a thumbs up. But that's about why we encapsulate, vice polymorphism. OTOH Iterable<T> is quite to point. Kay would say "it's all about the message". i.e. if there is a matching-signature method then the call (message) will be handled, period. He regrets coining object oriented programming because object type gets emphasis and strong typing restricts flexibility. SmallTalk, LISP, JavaScript, etc. coders look at us with pity.
Dec
14
comment What question is answered by DDD?
UP, "problem/solution separation" - the why of the book.. I quit reading about half way because I didn't get why I was reading this. Ok, so It's a design framework - another layer and as such inherently makes it harder to couple the UI and business logic (see svidgen's answer). But I'm jaded, the state of our code is not for lack of framework (google CLSA) rather the result of programmers who fundamentally do not grok minimize coupling and maximize cohesion.