This was a very useful discussion for me.
I do both:
I start with a monolithic, monster file that has everything in it. all types, all functions, etc.
when I encounter my first bug (usually very fast), I split the proggie into files:
ThisType.bmx
ThatType.bmx
MathRoutines.bmx
Funcs.bmx
It does make things alot cleaner.
As for Versioning, I use a very sophisticated and complicated versioning system:
1. my files are named "filename-yymmdd-letter.bmx"
TVector-070421-a.bmx
Tvector-070421-b.bmx etc...
when I make a major change, I save-as to the next letter ("c" for instance) then i just change the import statement:
import "TVector-070421-c.bmx"
2. before I start a new programming day, I "roll-up" all import files to the current day's "a" file
Tvector-070421-g.bmx becomes Tvector-070422-a.bmx
(I never work directly on a. i test it then immedietly save-as "b" so I can easily roll-back to that days "a" file)
and change my import statements accordingly.
this only takes 3 mins.
It's no CVS but it works ok for me. call it "Ghetto-CVS"
EDIT: changed the date format (from Flameduck).
I do both:
I start with a monolithic, monster file that has everything in it. all types, all functions, etc.
when I encounter my first bug (usually very fast), I split the proggie into files:
ThisType.bmx
ThatType.bmx
MathRoutines.bmx
Funcs.bmx
It does make things alot cleaner.
As for Versioning, I use a very sophisticated and complicated versioning system:
1. my files are named "filename-yymmdd-letter.bmx"
TVector-070421-a.bmx
Tvector-070421-b.bmx etc...
when I make a major change, I save-as to the next letter ("c" for instance) then i just change the import statement:
import "TVector-070421-c.bmx"
2. before I start a new programming day, I "roll-up" all import files to the current day's "a" file
Tvector-070421-g.bmx becomes Tvector-070422-a.bmx
(I never work directly on a. i test it then immedietly save-as "b" so I can easily roll-back to that days "a" file)
and change my import statements accordingly.
this only takes 3 mins.
It's no CVS but it works ok for me. call it "Ghetto-CVS"
EDIT: changed the date format (from Flameduck).