|
That is the Hardware way, going full Mandoliran. If you have to hardware tasks get one step at a time is best. I must admit once Visual Studio comes out very seems to be an expert and often tells you you are taking too long you don't need 'try ... catch', test it 'you screwed up with lenght that could be entered' out comes try...catch.
|
|
|
|
|
This is the way.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Out of interest, did you watch The Book of Boba Fett as well?
I just finished bingeing it and am looking forward to series 2, if it ever happens.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
If I'm coding in an area that is new to me I start out with, what I call learning code or POC code.
Once I learn the system to my satisfaction I straighten out and optimize the code to a working state.
Or abandon it and wonder what the hell I was thinking even messing with it.
PartsBin an Electronics Part Organizer - An updated version available!
JaxCoder.com
|
|
|
|
|
ditto
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Just and FYI - it's not really a dirty secret or something to be ashamed of (not saying you are, at all ).
its called the Explorative/Ideate phase of Design Thinking. Its a precursor to the prototype phase.
Understand
Explore (Ideate --> Prototype)
Materialize
|
|
|
|
|
Like anything with tech, there's an art, and with that, that means there's no one size fits all approach IMO.
For instance, if I'm creating a POC or just want to toss something together to see if the program can be useful before I put real effort into it, then rolling out a few iterations that aren't perfect, just to see the concept is ok. If it turns out being useful or someone else will ever see the code then it can be re-designed.
Keep in mind though, on a functional/unit level, it's always strive to do things the right way. More so talking about the architecture aspect.
However, if I'm being paid to develop something, then it's not really my job to see if the app is viable or not. It's my job to just make the thing. In that instance I'll put in the effort to think about design as a whole upfront.
So, it really depends.
Jeremy Falcon
|
|
|
|
|
I agree with you.
Yes, yes... you read it right
If it is something private... it is like v0, v00, v00+ until it gets to v1 in a nice form.
If it is for work... I prefer to do like (I don't remember who told it but... anyways): If I have 8 hours to chop a tree, I will spend 6 hours sharpening my axe.
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
I agree also.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
Nelek wrote: Yes, yes... you read it right
Nelek wrote: I will spend 6 hours sharpening my axe. It just makes sense. Time and time again I've seen "spaghetti code" projects because folks don't take the time to do that.
Jeremy Falcon
|
|
|
|
|
|
Yep ... I've refactored, and factored back again. Created "new" routines I had already created (and forgot about). It's called: "Flow".
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
|
|
|
|
|
Guilty
I keep refactoring till I retire.
I'm a C# developer.
With every new version of the language, I look at my code to see where I can 'fit it in' the new stuff.
I found a module last week that I refactored 98 times in the past 3 years.
My mantra is:
First make it work, the refactor it till it doesn't, and finally start over. 
|
|
|
|
|
|
My approach is similar. I call it the "diamond cutter method". I write the best code I can but, once finished, I look back and find better ways. Once this set of changes is done, I look again and see what can be improved. Like the apocryphal Michelangelo quote: "just remove everything that is not David". Disclaimer: I'm no Michelangelo and none of my code is David
Corollaries:
1. My oldest code is my best code because it's been through so much polishing
2. My code is never finished
3. I cannot write the same code twice: the second time I find a better way.
Mircea
|
|
|
|
|
A sensible approach, I have to say.
The simple implementation is the (reliable) reference for all the following clever code.
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
I do that myself. Our products are large, so it's inefficient to try out something new. Many times I'll write a command line or GUI program to act as a test bed for the concept I'm working on. Most of the time I end up with source code that can be dropped into the product and hooked up with relatively little fuss.
Software Zen: delete this;
|
|
|
|
|
It is neither dirty, little nor is it secret, it seems most of us do this. I think the real trick is getting the newbie to refactor the code prior to production!
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
Pete O'Hanlon wrote: start with naive implementations of code while I work out how I really want it to be laid out
I visualize it as stumbling...progress isn't usually in a straight line or graceful.
"Go forth into the source" - Neal Morse
"Hope is contagious"
|
|
|
|
|
Old saying -
First make it work.
Then make it work better.
|
|
|
|
|
Yeah, I'm with you - and, it seems, the majority.
I spend as little time as possible on initial code/changes. Which means I haven't made a huge commitment if I've ended up on the wrong track, or down a cul-de-sac. So it's easy to throw away some, (or all) of my work and start again.
It's a bit like getting lost when you're driving somewhere. [Yeah, some of us were driving before sat-nav!] The further you travel down the wrong road, the more you resist turning back. 
|
|
|
|
|
Hi. Pete,
i was fortunate enough to have an improbable journey to a career as a programmer beginning after i was ~39 years old (1982), and another, not unsuccessful, non-technical career in social work/psychology and academia.
Lucky to always be involved with prototyping, never shaped by whatever into top-down planning, flow-charts, Backus-Naur formalisms, Design Patterns, etc. ... of course, those are valuable, and often necessary (I learned much later). i can't imagine not bread-boarding code, trying to "divide and conquer," and create proof of concept from wiring together "mini-solutions." Of course, i "grew up" with no net, no CP, no Stackoverflow, often with documentation printed out in 3-ring binders
i am sure when you do "clever" it is SOLID clever.Quote: Pete O'Hanlon wrote: We need to get better at telling new coders that this is okay.
Yes, but how, in the time of cut-and paste from SO and CP ?
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
|
|
|
|
|
I'm shocked, shocked! Do you mean to say that your code doesn't spring from your head full-grown, like Athena from the head of Zeus?
Seriously, I suspect that everyone in the software field works in the manner you describe, especially those who claim otherwise. As a rule, the products we work on are simply too complex to be planned and built in a single step.
Hardware may differ. Many hardware projects are simple enough for the design and planning to be combined. Naturally, one must have the experience (i.e. have endured many failures) to be able to do this.
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
It's called refactoring, and there's nothing wrong with that. Programming is an iterative process.
Any time I look at code I wrote 10 years ago, I want to rewrite it.
Of course, there's some who will constantly fiddle with working code - the key is to recognize when that's what you're doing, and stop it.
|
|
|
|
|
I strive to write boring and basic code (to not confused with BASIC, that is a part of my past). Clever solutions are clever until they are not.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
|
|
|
|