3 ms·
I'm not sure mystifying good code design is the right approach to take here. I wanted to emphasize that it's something attainable to anyone, and therefore, wort
by tboyd47 9y ago
I'm not sure mystifying good code design is the right approach to take here. I wanted to emphasize that it's something attainable to anyone, and therefore, worth the effort.
I'm of the belief that most sloppy or "noodly" code is usually written that way not because the person is unable to produce good code, but because they just aren't trying. There are a lot of reasons why people don't try, and feeling intimidated by other devs is actually a pretty common one.
- EpicEng 9y agoI didn't intend to 'mystify' design patterns, but how useful are they really without experience? Take polymorphism for example. Personally, I didn't have my 'ah ha' moment there until I was faced with a problem which really benefited from it (early career and designing a device which had many supported hardware configurations.) It seems obvious now, but it took experience (i.e. making mistakes) to get here. Maybe I'm just a slow learner, but I don't believe being shown a bunch of class Animal {}; class Dog : Animal {} examples really bring the point home. It's a combination of knowing what tools you have available to you and having the experience to know when and how to best use them. In other words, gifting me a high end set of tools will not turn me into a great craftsman overnight. I think the "they're just not trying" argument is going to be hit or miss. Definitely true for some, not true for others. If you're 10+ years into your career and still writing unmaintainable spaghetti... then yeah, you're probably right.