Difference between revisions of "DoDont"

From Free Pascal wiki
Jump to navigationJump to search
m
(→‎Right: if you hadn't followed a)
Line 13: Line 13:
 
#It is commonplace to use meaningful identifier names. While every languages advises this, it is way more common in practice in Pascal.  However, the variable names I, J and K are commonly used as general purpose FOR control variables and similar usage for loop counters, especially where the loop is only being used to initialize or display members of arrays. Loop variables must be local anyway.
 
#It is commonplace to use meaningful identifier names. While every languages advises this, it is way more common in practice in Pascal.  However, the variable names I, J and K are commonly used as general purpose FOR control variables and similar usage for loop counters, especially where the loop is only being used to initialize or display members of arrays. Loop variables must be local anyway.
 
#Hungarian notation ( a "prefix code" to indicate what the type of a variable is) is frowned upon (Pascal has strong enough typing). Except maybe for components on a Lazarus form. e.g. edsomething for an edit field and labsomething for the corresponding label etc
 
#Hungarian notation ( a "prefix code" to indicate what the type of a variable is) is frowned upon (Pascal has strong enough typing). Except maybe for components on a Lazarus form. e.g. edsomething for an edit field and labsomething for the corresponding label etc
#Stick with one identation style. Change only if you didn't follow a standard one.
+
#Stick with one identation style. Change only if you hadn't followed a standard style till then.
 
#The only right language for the job is the one you started the work with. And that's [[Pascal]]!
 
#The only right language for the job is the one you started the work with. And that's [[Pascal]]!
  

Revision as of 22:45, 23 April 2007

The right and wrong of Pascal Programming

All of these are almost generic tips for programing.
I've learned the right and wrong of programming the hard way, by doing things wrong first.

Right

  1. Use checks (Range, IO, Overflow) when developing. You can enable them with "-Crio" compiler switch.
  2. Use heaptrace from time to time to see if you have any memory leaks. Enable via "-ghl" compiler switch to get best result.
  3. Split huge units. Big units are ALMOST ALWAYS a sign of bad design or logic. (you know it's bad when you have unrelated constructs in one unit).
  4. Split huge functions / procedures / methods. Big functions/procedures/methods are sign of bad design or logic. A good rule of thumb is to have no function, procedure or method longer than one printed page (about 55 lines) or, even better, one screen if you can. What you can visualize in one screen (or on one printed page, if you use printed listings) you can probably understand better than what you can't see or have to flip from page to page to read.
  5. Name your variables/functions properly lest you will damn yourself with unmaintainable code. Be consistent in how you do things.
  6. It is commonplace to use meaningful identifier names. While every languages advises this, it is way more common in practice in Pascal. However, the variable names I, J and K are commonly used as general purpose FOR control variables and similar usage for loop counters, especially where the loop is only being used to initialize or display members of arrays. Loop variables must be local anyway.
  7. Hungarian notation ( a "prefix code" to indicate what the type of a variable is) is frowned upon (Pascal has strong enough typing). Except maybe for components on a Lazarus form. e.g. edsomething for an edit field and labsomething for the corresponding label etc
  8. Stick with one identation style. Change only if you hadn't followed a standard style till then.
  9. The only right language for the job is the one you started the work with. And that's Pascal!

Wrong

  1. Put all points from Right section here and negate them.
  2. Have doubts in Pascal.
  3. NEVER use -Ct (stack check) in Win32 with threads! There's a "feature" which can be a problem.
  4. Don't name your arguments with names of fields. Even if they are private ie: FField and Field in argument.