The next installment in my 5-part screencast series on applying the S.O.L.I.D. principles to refactor a simple application has just been posted to the DimeCasts.NET site.
In this one, we look at applying the O of S.O.L.I.D., the Open-Close Principle, to our code to improve its flexibility and extensibility.
The code sample for this installment can be downloaded here.
For more details on this series, see this post.
Obviously L, I , and D still to come to stay-tuned~!
Nice one again !
Wow, a screencast in 10 minutes. Talk about ‘superficial understanding’ š
I’ve noticed that you haven’t published a Autumn of Agile screencast since Obama became president. Please tell me that you’re not waiting until another Bush takes office š
One
@One:
Thanks for the compliment (I think). For Autumn of Agile, another installment is coming in the next day or so.
I’m definitely not waiting until another Bush gets in office; whatever one might think of George Bush (jr.) as president, I think its (pretty) safe to say that at least ONE of his legacies is that Jeb Bush’s presidential aspirations are now pretty much dead and buried forever š
š again nice one!
Need to say I’m a bit surprised at the S.O.L.I.D. principles missing out the Law of Demeter.
Hey Steve
Hmmm, my comment didn’t came out the way I intended it. I meant it as a compliment but I can imagine that it could be perceived as somewhat cynical. Sorry for that š
I discovered dimecasts.net while listening to a Hanselminutes (or was it DNR ?) episode. Since then I’ve downloaded most of the videos. I really like the idea that I can flip open my laptop and get a quick overview of, let’s say, Ninject, during halftime of a football match.
Just out of curiosity, how long does it take you to produce such a screencast ?
Keep up the good work, I’m looking forward to the next 3 installments.
One
@One:
I was just joking about your comment; no offense perceived so no apology necessary — we ALL know how hard a time I have getting anything said in under 3 hours and so I was just playing along; no offense taken, I assure you š
re: effort to produce these, I kind of had some fun discovering the answer to exactly that question while recording these. Since my prior efforts at screencasting have been centered around longer content (and correspondingly deeper-dives into a subject), I was curious to see how much work would be needed to create this series of five 10-minute installments.
In total, all five of them together took about 4 hours or so including the planning, powerpoint content, rehearsing, recording, and editing (yes, all five have already been recorded during a single sitting but are being ‘released’ on the dimecasts site at a rate of one-per-week as Derik post-processes them with titles, intro, outro, etc.).
I admit that I am intrigued by the idea of how DIFFERENT the effort to record a 10-minute video actually is compared to that needed for something like the Summer of NHibernate or Autumn of Agile series. Trying to be both concise AND useful in such a short time-box is both constraining and liberating at the same time.
Look for more such content on the Dimecasts site from me in the future (in ADDITION to the Autumn of Agile content, not INSTEAD of) since I’m intrigued by the opportunity to reach people with valuable content in smaller bite-sized chunks that many may find more palettable and more narrowly-focused.
There’s probably a good case to be made for BOTH styles of screencasts (the shorter Dimecasts-style content and the longer DNRTV-style content) at the same time but with different goals in mind.
@Derek:
Yes, the S.O.L.I.D. principles (rather sim. to other compendiae like POEAA, GOF, etc.) are hardly comprehensive in their scope in re: what you really need to do to ensure good-quality code. Maybe it needs another ‘L’ for the Law-of-Demeter (AKA principle-of-least-knowledge) so it can become S.O.L.L.I.D. instead š
I can think of several other such ‘principles’ missing from SOLID and its kind of interesting to see which ones made Uncle Bob’s ‘cut’ and which didn’t. As you have probably read elsewhere, the realization that the components of SOLID could be rearranged to even spell ‘SOLID’ came *after* their being called out and selected by Uncle Bob. This means that ‘can these be arranged to spell something useful?’ was *not* a factor in their selection by him at all, making it an interesting peek into his psyche to see which ‘principles’ he considered worth identifying and which he excluded…
Glad you’re enjoying the content and thanks for the feedback~!
-Steve B.
>>
I admit that I am intrigued by the idea of how DIFFERENT the effort to record a 10-minute video actually is compared to that needed for something like the Summer of NHibernate or Autumn of Agile series.
<<
That’s kinda what I was wondering. Lee Iacocca once said something like ‘I need 5 minutes to prepare for a 2 hour speech, and 2 hours to prepare for a 5 minute speech’.
I feared that it might lead to a delay of the publication of the next AoA screencast. (I, and other people here, keep bugging you about it because we care about what you do, so take it as kind of a compliment š )
About the example that you used (Printing & formatting reports), did you think of it yourself ? Because I’m pretty sure I’ve seen the same example before. I just cannot recall when or where.
Do you mind telling the loyal readers of your blog what kind of topics you’re going to cover in the upcoming Dimecasts screencasts ?
One
Steve:
thanks for the “O” screen-cast…
where is the link? or where i can download the app (the one you gave demo) this is just to stare at the code and remind myself of SOLID principal š
@One:
You probably HAVE seen the printing and formatting reports example before…its the same one I used at the end of the powerpoint section on the AoA iteration -1 installment, ‘Intro to Agile’ http://unhandled-exceptions.com/blog/index.php/2008/10/18/autumn-of-agile-iteration-1-screencast-is-available/ š
I thought it was a good one at that time when I thougth it up so I sort of ‘borrowed it’ as the context for the SOLID Dimecasts; its possible that its been used elsewhere by others as well, but *I* stole it from myself for the Dimecasts AFAIK.
As for upcoming topics, I haven’t really decided just yet but I have several ideas bouncing around my head; more to come as soon as I firm up my thoughts.
-Steve B.
@Nisar:
I don’t think that the code sample downloads are (usually) part of what Derik does for the Dimecasts content but I *do* have them in case you’re interested and could easily post them for download from my own site here.
Are you really interested in getting the code –? Let me know.
-Steve B.
yes please.
thanks
Lol, that would be it. I guess I’ve been watching too much screencasts lately š
One
>> Maybe it needs another āLā for the Law-of-Demeter (AKA principle-of-least-knowledge) so it can become S.O.L.L.I.D. instead
OMG — I thought that the “D” in Demeter would be more significant to add than the “L”. The resulting SOLIDD can be unscrambled into another acronym/mneumonic, but you DON’T want to use it!
@Howard:
I’m both a terrible scrabble player and a lazy software engineer and so rather than wrack my brain over your suggestion, I googled for http://www.unscramble.net/index.php and entered your proposed new acronym to let the web unscramble it…
…and I think you’re right that this doesn’t help benefit ‘the cause’ of improving software craftsmanship even if it does make it memorable!
But it might just help reinforce a recurring term that I seem to see entering our lexicon as a stand-in for what happens when you spend forever refactoring your code for its own sake for little actual benefit to the code-base: ‘refactorbation’.
But I’d be really afraid to start a new software-technique-naming-trend from which the industry might never recover š