Project Organization

Started by JR Heathcote, June 19, 2006, 11:10:38 PM

Previous topic - Next topic

JR Heathcote

To All,

A simple question about managing large projects, namely, what is the best way to do this?  My civil engineering app is growing quite large and it is becomming difficult to navigate between modules.  I guess I could go ahead and combine modules, but I would like to keep the file modularity for other projects, the plug and program philosophy.  Maybe this is an issue that will be  resolved in FireFly 3.0, but for now module navigation is getting to be a real pain in the neck and various other parts of the anatomy.

Just curious.

JR

James Klutho

Have you thought about using Jellyfish for most of your compiles that do not change the GUI (assuming your number crunching code is in separate modules- included files).  I put lots of code in my private included files.  I like to limit the number of modules with forms in them and use the Firefly generated Jellyfish project to do my endless compiles to debug my code.  Jellyfish is also better about finding the locations of my errors.

JR Heathcote

James,

I have JellyFish Pro, guess I'll have to dust it off and give it another try.

So far I've managed to completely separate my forms from my number crunching modules so my forms act as one of many methods to pass data to my modules.  I have found this approach allows me to keep total modularity while at the same time concentrate on the task at hand, GUI, or computational geometry without having to worry that a change in my geometry code will totally trash a form or visa versa.  The down side is the many files I have to deal with.

I guess another approach I could take is to INCLUDE specific files (usually ones that have already been debugged) to help eliminate the files I have to load in FireFly.  In the past I have always had problems using INCLUDE with FireFly since it "appears" to include the files in the wrong order causing a compile error, but not always.  Would be nice if we could specify module compile order the the FireFly Explorer, hey another wish item for 3.0!

Thanks for the help, will give your suggestions a try.

JR

TechSupport

FireFly 3 will have much improved project management capabilities. I am using FireFly to write FireFly 3 and so far I have 25 Forms and 31 code modules. At times, it can be difficult trying to find certain subs/functions buried within the project.

I also try hard to separate the GUI/Form from the underlying code. Basically, I have a code module for each Form and then simply call the functions in the code module from the Form. It makes it a little easier. :)

Mark Strickland

I also have a huge project (350k lines of generated code).  If I had more experence with FF before I started it I too would have likely put most of the business logic in include files and kept the forms very clean just calling functions.  This is probably your best technique at organization.

My project is so large it has taken PB to the limit on how big a program can be compiled.  Not in code space but generated jump instructions.  That is the downside of creating lots of different functions since more jump instructions are generated in the compiled code.  Speed is not an issue but exceeding the curent PB limit on jumps can be a problem.

The biggest problem I have is finding where a function exists or references to a function or variable.  I have resorted to a GREP utility that can parse all files in a directory looking for a string match.  I use RegExBuddy (jgsoft.com) when I am looking for something funky to generate the regular expression.  I have a command line version of GREP that works for simple searches.

So when I need to find something I just have a command window open and type:

   GREP "search string" *.frm

There are some extra switches and things but almost instantly I see what I am looking for and just open it in FF.

The other thing I have found useful is to keep the number of FF forms open to a bare minimum.  It makes FF MUCH quicker to open the project.

A few tools in FF 3 would be nice to help manage the project.  Maybe even a place to call some external tools with some command line options.

JR Heathcote

To All,

Thanks for the suggestions.  It would appear I am on the right track with my project organization.  Guess I'll just stick it out until FireFly 3.0.

And when will that be (inquiring minds want to know)?

Seriously Paul, I know you have better things to do, like writing 3.0.  It sounds like 3.0 will solve many of my problems so far.  Can't wait to get my hands on a copy.

JR