Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Erik Malund
08/12/05 15:33
Read: 2200 times
Mt Airy, Nc

#99315 - defensive coding how and why
some recent postings have made me think about posting the below, so here we go.

I am a great proponent of defensive coding, how?
1) there is no reason whatsoever to try to be "elegant".
2) if it does not look good in the debugger, rewrite it.
3) if you use "free code" load it in the debugger, work a bit with it, then throw it away. If you got an idea or two, great.
4) long ISRs are outlawed.
5) anything timing dependent that is not interrupt based is outlawed.
6) only the small memory model is legal.

I am a great proponent of defensive coding, why the above points?
1) "elegant" code is 10 times more buggy and 10 times more difficult to debug.
2) writing code is easy, reading code should be that too.
3) if you can not make "free code" lokk like yours it is more dangerous than helpful.
4) while such are possible OK they should only be resorted to after much research showing that no other method exist.
5) I have not had a need to break this rule, but otherwise see 4)
6) the large/huge etc model is very convenient, but "remembering" to make critical variable "data" is so much more error prone than to have to make some large arrays and buffers "xdata".

None of the above preclude well worked out code that is "right", sometimes it is, indeed, more demanding to write "defensive" code than "elegant" code. I think that it requires more skill to write "dull, working code" that "really smart code with only a few bugs".

The above does, indeed make the coding more dull, but as someone once said "they call it work, that is why they pay you for it".

Now, it is, of course, fun now and then to do some really fancy code, that's fine, just do not let the people that pay you suffer for that reason.


Ok, start arguing, I'll sit back and smile

List of 57 messages in thread
defensive coding how and why      Erik Malund      08/12/05 15:33      
   What do you mean?      Craig Steiner      08/12/05 17:32      
      Elegant      Steve M. Taylor      08/13/05 00:20      
         Paradox?      Rob Klein      08/13/05 05:10      
      clarification      Erik Malund      08/15/05 06:35      
         Remember      Neil Kurzman      08/15/05 11:43      
            Absolutely, and even then should be avoi      Erik Malund      08/15/05 12:19      
            Absolutely, and even then should be avoi      Erik Malund      08/15/05 12:19      
            extrodiaray?      Jan Waclawek      08/15/05 13:12      
                extrodiaray?      Craig Steiner      08/15/05 13:17      
                  Goooooogle      Jan Waclawek      08/15/05 15:08      
                     No, he does not      Erik Malund      08/15/05 15:30      
                        proofreading      Jan Waclawek      08/16/05 03:27      
                     Another challeneg      Craig Steiner      08/15/05 15:49      
                        another challenge      Jan Waclawek      08/16/05 03:45      
               OK, I can not Spell      Neil Kurzman      08/15/05 19:18      
                  this is my point      Jan Waclawek      08/16/05 03:30      
                     I sure you could, But      Neil Kurzman      08/16/05 09:35      
                        Really?      Craig Steiner      08/16/05 10:20      
                           professors and classes      Jan Waclawek      08/16/05 10:50      
                           Really !      Neil Kurzman      08/17/05 14:05      
                              Hmmm      Craig Steiner      08/17/05 14:09      
            defensive commenting      Jan Waclawek      08/16/05 03:59      
         Don't know      Craig Steiner      08/15/05 12:47      
            Ok, let me get away from that word      Erik Malund      08/15/05 13:49      
               Gotcha      Craig Steiner      08/15/05 14:44      
                  and I came to truly despise that word wh      Erik Malund      08/15/05 15:07      
                     Just like driving      Kalpak Dabir      08/17/05 20:48      
            Elegant equals...      Dan Henry      08/15/05 17:21      
               that it      Erik Malund      08/16/05 06:11      
               Oh, how true...!      Andy Neil      08/23/05 05:29      
                  It's never the author's problem      Dan Henry      08/23/05 08:51      
                     I knew a person who told me about a real      Erik Malund      08/23/05 09:38      
                        A blissful existence      Dan Henry      08/23/05 18:37      
                  Your bugs versus my bugs (or vice versa)      Dan Henry      08/23/05 18:34      
                     common wisdom has it that the average pr      Erik Malund      08/24/05 07:34      
   One exception      Ian Bell      08/13/05 08:32      
      exceptions      Erik Malund      08/15/05 06:45      
         vice versa      Jan Waclawek      08/15/05 06:53      
            what is obvious      Erik Malund      08/15/05 07:58      
               your mileage may vary      Jan Waclawek      08/15/05 08:15      
                  that is the very same      Erik Malund      08/15/05 09:05      
                     competent      Jan Waclawek      08/15/05 13:40      
                        please define "working"      Erik Malund      08/15/05 14:02      
                           competent programming => working program      Jan Waclawek      08/15/05 15:48      
   i'm new      Emem Essien      08/18/05 05:10      
      if you move your eyeballs a bit to the l      Erik Malund      08/18/05 06:22      
         Coding Bible      Russell Bull      08/20/05 08:16      
            Precedence vs. explicitness      Dan Henry      08/20/05 09:27      
   Outlaw coding!      Russell Bull      08/21/05 06:47      
      a program it is, by definition, asynchro      Erik Malund      08/22/05 07:42      
         Methinks the point was missed      Russell Bull      08/22/05 18:20      
            "Easy?"      Andy Neil      08/23/05 03:13      
            but we agree      Erik Malund      08/23/05 07:34      
      VIPER?      Andy Neil      08/22/05 10:53      
      What does "timing" mean?        Dan Henry      08/22/05 20:03      
         excuse the foreigner, if he was not clea      Erik Malund      08/23/05 07:36      

Back to Subject List