How to organize a project?

7 views (last 30 days)
Roy Goodman
Roy Goodman on 31 Aug 2020
Edited: Mario Malic on 1 Sep 2020
This is more a general software engineering question than a MATLAB question, but it's about a MATLAB project, so here seems the best place for me to ask.
I have some MATLAB software that I've been working on for a while. The code consists of several parts, and I'd like to set it up as a MATLAB Project (in the formal sense that comes from creating a .prj file). My question is about how to organize the various pieces of code making up the project as I get set up to post it to GitHub, invite a collaborator, and make it available for download among a small community of researchers who would find it useful.
There are three main parts to the code
  • A class definition with lots of methods. This is stored in a directory beginning with an '@' and all the methods are in separate m-files in that directory.
  • Applications of the class definition. Some of these are basically demos and some are examples where I've used this code in published papers.
  • Support codes for dealing with managing the output of computation. These are things that I wrote for my own use over the years and which I naturally used when I was writing the applications. These would ideally be placed in the user's path at startup.
Putting this all into a Project requires them to all be in one directory, which is not how I would do it were it up to me.
  2 Comments
Rik
Rik on 31 Aug 2020
If you want to share it as a Github repository you will have to put it in a single folder as well. What exactly would be your ideal setup?
(note that I don't have a lot of experience with project files. I tend to have a single folder per project, with another folder on my path with the functions I have published to the FEX)
Roy Goodman
Roy Goodman on 1 Sep 2020
I really like the dependency analysis tools that are part of the project infrastructure.

Sign in to comment.

Accepted Answer

Mario Malic
Mario Malic on 31 Aug 2020
Edited: Mario Malic on 1 Sep 2020
Do you want to put project parts in \projectpath\folder1\filesforpart1.m, \projectpath\folder2\filesforpart2.m or would you like to have something like \projectpath\part1\files.m and \otherpath\part2\files.m?
If you thought of the first suggestion then you are able to add these folders to project path and you can commit them to GitHub.
If you thought of the second one, then maybe "Submodules" option could be what you're looking for, but this involves multiple repositories.

More Answers (0)

Categories

Find more on Software Development Tools in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!