|
Sander,
I'm talking about coding vs. not coding, whether it be compiling or testing.
Regards,
Rob
|
|
|
|
|
Then my original answer still stands, depends on what I'm doing.
Writing a new feature requires less testing than the testing of that feature and fixing bugs
The writing to testing ratio depends on the feature.
If it's a front-end thing I like to add a line of HTML/CSS and then check how bad I messed up in the browser (but this doesn't require recompiles).
When doing back-end code I can better predict what my code will do and I can test the entire thing in one go when I'm done.
|
|
|
|
|
why was your original thread with same title closed? interesting.
|
|
|
|
|
I actually compile when I run my code before sending to patch (to QA)... Save every second but compile as less as possible...
I see no need for that...
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
|
|
|
|
|
You're not concerned about dealing with a pile of bugs at once?
|
|
|
|
|
What bugs are?
Seriously, no. What I'm writing is always connected to a single issue (new feature or bug fix), which makes it somehow monolithic, and for that easy to fix (because a single bug may open a chain effect, but also closes it)...
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
|
|
|
|
|
|
Years (decades) ago, we had a new guy on the team learning to program. One day he turned to everyone in the room and complained that no matter how many times he compiled his program, it still wouldnt work.
|
|
|
|
|
Did he try clicking the mouse harder? |
|
|
|
|
|
|
Back when I started, the answer would be 'every fortnight'. It took that long for your coding sheets to be sent away, mispunched, and a program listing with error messages to be sent back. So, you'd rewrite the mispunched rows, sent it off, wait a fortnight to see if it had been repunched correctly. Sometimes it would take a couple of months before you got a program that was what you had written. Then you can move on to the next stage. Needless to say, desk dry running was a lot more rigorous - a potential bug found at that stage could save weeks of waiting. The problem with this is that you tended to put too much code into each iteration, so when you got anything usable back, there were too many places to check (and it was so long ago when you wrote it that even the copious comments weren't helpful.
That habit has been hard to break. Even when we punched our own cards and submission / turnround times were only a few days, compiling was seen as a milestone (or a millstone).
I had to train myself to write small blocks of code, test, write the next bit, test, repeat ad nauseum.
|
|
|
|
|
jsc42 wrote: 'every fortnight'
Reminded me of the timepromptwait parameter --> it was measured in microfortnights
But I never wave bye bye
|
|
|
|
|
Fortnight? goo! In school it was drop the deck off ( we punched our own ) ( and drew lines on top as "hex marks" ), and pick up the printout next day or so. ( Of course, waiting a fortnight would have made class _difficult_. )
When I started work, we had ( Bruce and I ) the machine to ourselves. I atemped to compile about 3 times - about 10 lines of Fortran. Failed in the library. Found that no-one else had any luck with the compiler yet either. ( PDP11, 16K WITH the integer multiply / divide unit ).
Still punching cards, but no compile, assemble, test, ( CPU switches and lights ) sometimes patch at the CPU.
dave of eves
|
|
|
|
|
As a maintenance programmer, it's fairly often. Make my little adjustment and try it out.
I have discovered that I enjoy fixing the bugs that other people create a little better than striking out on my own. I get to make things better and complain about other people's work.
I think it has to do with the way my brain works. I can't visualize future events so I have a hard time setting goals (which drives the wife crazy) but I can problem solve and dig down deep.
|
|
|
|
|
Depends on what I'm doing. If I'm doing layout/markup, it's very often. If I'd doing c# code (models, viewmodels, other stuff), intellisense kleeps me from doing stuff wrong up front, so the act of compiling is much much less frequent, and I only start compiling when I feel like a code compenent is ready to test.
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
I don't ever just compile. I just run the code, which compiles and then executes it.
Social Media - A platform that makes it easier for the crazies to find each other.
Everyone is born right handed. Only the strongest overcome it.
Fight for left-handed rights and hand equality.
|
|
|
|
|
... as often as the wife lets me? Ohhhhhhhhhh....
No but seriously, I compile anytime I make a significant change or fix a bug. My app right now is on Build 1017. Been developing this one for about 12 months. I think that works out to an average of 4 compiles per business day. However I say I would only work on the app half the time so when i'm working on it, like 8 compiles per day!
|
|
|
|
|
(C++ here)
I compile often; but it depends on the task, when doing new code, I will often do a lot of basic coding without compiling; when doing maintenance, it will be more often.
We use incredibuild; so we can rebuild everything in about 6 minutes.
I'd rather be phishing!
|
|
|
|
|
Maximilien wrote: (C++ here)
I think its significant that you mention language.
I think which language (build tools, etc) a person is using makes a big difference.
And the size of the project -- how long it takes to compile it -- back in the day when computers were slower this had more of an impact.
And I think the OP is talking about the REPL[^]
You write the code, evaluate it, run it, see what is wrong and then try it again.
That all depends upon how long it takes to run the project again. If it takes 30 minutes then you probably write more code and then try it. If it takes seconds to run it again, you probably write one line of code and try it.
|
|
|
|
|
raddevus wrote: If it takes seconds to run it again, you probably write one line of code and try it. Under that premise I am currently doing this by every small closed function I program, to test if it does what I want to achieve (unless things that are pretty obvious and then I cumulate until next "Let's see"). Executables are less than 1 Mb, so the only F5 that takes a bit more is the first of the day.
When working on PLCs I programmed full units / sequences before transferring for the first time. Not so many "Test" options there...
I remember one project... the customer was already getting nervous because it was T-3 weeks to deadline and the machine had never moved until that moment. One day I said... ok, I am so far.
Transferred PLC and Robot. Two more days teaching all the motion points in the robot. 2 days testing / fixing. 1 day to let the operators test the process. One day with the official protocols... Finished 1,5 weeks before deadline, which I used to do the training and so on. The customer just flipped out (and apologized to me for the stress). My trainee was like
I whish I had that more often...
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.
|
|
|
|
|
No hard and fast rule.
Sometimes, incremental with small changes. Most of the time, however, when quite a lot has changed. In general, however, 'quite a lot' is compartmentalized in a single function (method, class, whatever) - so I know where to go.
And the compiler will usually give me a hint.
But mostly, I work on a shadow copy of the production code. Identical in all respects (i.e., copied directly from it) so I don't cause harm to production. When all is well then I copy the shadow files to the production analog. Internally, they actually reconfiguration themselves during compile (or execution for scripting languages) - a sort of self-awareness based simply on the file checking it's own name.
So - I can fearlessly go where I have probably have gone before - although it was in a different place.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
I reject the premise of the question.
|
|
|
|
|
Okay, I'll bite: what's wrong with the premise? You've piqued my curiosity.
Software Zen: delete this;
|
|
|
|
|
My code is like the cow in The Restaurant at the End of the Universe - It executes itself!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
Frequently, especially if the syntax for something is tricky (gives a stern look at C++ templates). I also tend to iterate a lot, given that our products are complicated and mistakes in the 'plumbing' aren't always easy to find.
Software Zen: delete this;
|
|
|
|