Tony Goldstein - Multi-User Development Techniques

By Mike Hanson

Posted September 1 1997

Printer-friendly version

Tony Goldstein's presentation on "Multi-user Development" was informative for any person who works with other programmers on the same project, and also for those creating any multi-APP system. Although most people would already know a few of his tips and tricks, I think everyone walked away with at least a few new development techniques.

The primary factor in team development (and all large development, for that matter), is intelligent placement of procedures into multiple APPs. Each of these will be compiled into either EXEs or support DLLs. There are a number of different strategies that you can use:

  • Functionality - Each APP will contain procedures that perform a particular function. A good example of this is "Accounting Reports".
  • Responsibility - Depending on which programmers are responsible for what, you could organize the APPs to avoid the possibility of two programmers needing the same APP at the same time.
  • Dependency - This is a little stranger to fathom. If you can reduce the inter-APP dependencies by moving procedures from one APP to another, you will prevent the need for multi-APP recompiles.

Once the strategy is decided, the team should create a skeleton APP that contains as many To-do procedures as can be planned. This will leave them with a "fill in the blanks" series of APPs that can be compiled without unresolved references. Occasionally the team should get down and do this again, to add more placeholders for upcoming procedures.

When a developer is going to work on an APP, he moves the file from the main SOURCE directory to the CHECKOUT directory, then copies this file to his own WORK directory. If someone else wanted to work with it, they would look in the SOURCE directory, and discover that someone else had already checked it out. Once the original developer had finished changing and recompiling the APP, he would copy it back to the SOURCE directory, and place the DLL or EXE into the common BIN directory. Finally, the developer would let the others know that something had changed.

Tony described several extensions that can be used to make multi-APP development easier. The first, named "SaveCalls", is used to general a module include file for an APP anytime it is generated. This file would be specified as the include file when the particular APP was referenced as an external APP in another APP. This is much easier than manually typing the prototype each time it is needed, or even manually maintaining the include file yourself.

The second template is used in your base global data APP. It generates another template with many #GLOBALDATA entries. This generated template is used in all of the other APPs in the project to ensure that the global data is consistent from one APP to the next. This is a very cool trick.

He also stressed that you should regularly archive and checkpoint your DCT and APPs. Also, don't forget to document and date your changes. Above all, communication between team members is paramount. This includes tracking all known bugs and feature requests. With a large project, it is easy to let items fall through the cracks.

Overall, his presentation was informative and helpful. I think everyone who attended will be able to apply at least one of his suggestions. At the very least, we have a better understanding of multi-programmer and multi-APP development.

Mike Hanson is affiliated with BoxSoft, which produces the "Super" series of templates, distributed through Mitten Software. He has been creating add-on products for Clarion since his Public Domain Models for CPD 2.0 back in 1988. He's also written articles for every Clarion-related publication, and has spoken at numerous conferences and training seminars. If you have any questions, you can reach him via www.boxsoft.net.

Article comments

Post a comment

You must be logged on to post comments.

Clarion Roadmap

Try the roadmap (beta)

Search ClarionMag

 

Advanced search

From the archives

Superfiles and NAME

9/14/2009 12:00:00 AM

Having covered Superfiles in the previous episode, Steve Parker tackles the intricacies of how to set arbitrary names for the tables inside Superfiles.