--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
There's no end to the amount of practice you can do. You can keep writing code then deleting it and trying to do it better, but that doesn't produce much software.
You can almost always improve a design, if you spend long enough thinking about it and tinkering with it. The question is whether those minutes and hours of design effort (and practice) would be better spent elsewhere. There are places where good design can make a huge difference, such as a published API, and where it makes virtually no difference, such as some minor internal implementation detail.
David
You received this message because you are subscribed to a topic in the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/growing-object-oriented-software/6qh_7E0zLGA/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to growing-object-oriente...@googlegroups.com.
I would say they hadn't been careful about where to spend their design attention.
They hadn't modularized and hidden those minor implementation details behind clean interfaces. If they had you would be able to throw out that code and rewrite it.
I'm not advocating code that is misleading or unreadable. I guess I kind of assumed a base level of quality. I'm talking about where to spend design time beyond that.
David
--
--- You received this message because you are subscribed to a topic in the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/growing-object-oriented-software/6qh_7E0zLGA/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to growing-object-oriented-software+unsubscribe@googlegroups.com.
Thanks for your response, George.
I think Kent Beck's four rules apply to procedural code just as much as object-oriented code. It's the SOLID principles which I find take me considerably more design time to adhere to. Finding good names for classes and interfaces also takes me ages. The tests tell you that some collaborator is needed but they don't tell you what it should be called.
I find that at a certain level of granularity, I can often implement a class in a procedural way very quickly without decomposing it further into objects. When I can do that, it's a big time-saver because I don't need to think about all the names. I can always come back to it and turn it into an object-oriented design later if I want to.
If that piece of code is difficult to work with or is changing frequently then I'll refactor and decompose it, but I postpone that until I judge the payback to be worthwhile.
I used to do what you said, but I've found that my productivity has increased significantly by not using OO where I can get away with not using it, i.e. where I do not harm the overall design, only the design of a "leaf node" object.
--
---
You received this message because you are subscribed to a topic in the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/growing-object-oriented-software/6qh_7E0zLGA/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to growing-object-oriente...@googlegroups.com.
It's not so much that I don't know how to name things, it's that it takes me a long time. I think I am probably fussier about names than I should be. I know there are big commercially successful Java frameworks which don't give two hoots about names even in published classes. Maybe I just need to chill a bit, but I find it less mentally draining and faster to avoid naming things when I can get away with it than sit there for what adds up to hours with a thesaurus looking for the right name and metaphor.
if naming things bothers you, then you might consider practising naming things.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
On 16 Apr 2013, at 21:00, J. B. Rainsberger <m...@jbrains.ca> wrote:if naming things bothers you, then you might consider practising naming things.That sounds like fun. Any suggestions how?
This sounds like the original meaning of DTSTTCPW. Ward talks about doing something obviously dumb and broken when you're not sure what to do next. That helps you make a little progress and breaks the Deer in the Headlights syndrome. Once you've got over the hump, you can fix the obviously wrong implementation.
Train yourself to feel comfortable using crappy names in your code. When you sense yourself obsessing, use a silly name. This helps you become comfortable renaming, which perhaps matters more than becoming comfortable naming.Now, every time you look at that silly name, you'll want to rename it. Go ahead. Now you're practising both naming and renaming.
--
---
You received this message because you are subscribed to a topic in the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/growing-object-oriented-software/6qh_7E0zLGA/unsubscribe?hl=en.
To unsubscribe from this group and all its topics, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.
--
---
You received this message because you are subscribed to the Google Groups "Growing Object-Oriented Software" group.
To unsubscribe from this group and stop receiving emails from it, send an email to growing-object-oriente...@googlegroups.com.