I am currently working on a 10x10 RGB LED screen (using Neopixels from Adafruit) and my project files are starting to get rather large. I have several different devices used in this project:
- The LED matrix
- A DS3232 RTC
- An MSGEQ7 DSP chip
- 7 push button switches
Currently i'm using separate classes for each of the devices (RTC, DSP & buttons) as well as the Adafruit GFX and Neopixel library.
What would be the best way to organize this project? Should I put the patterns for the screen in the main.ino file or should they have their own class.
Any help would be greatly appreciated, I can upload the source code if its needed.
Cheers
As a side note, I'm using "Sublime Text 3" along with Stino.
-
i throw the major parts in their own file/tab. these have names like "main", "server", "adc", "sdcard", "utils", etcdandavis– dandavis2017年04月03日 17:36:09 +00:00Commented Apr 3, 2017 at 17:36
1 Answer 1
Good to hear you are splitting large amount of code, it will benefit you a lot in the long run.
It's very hard to say what is best, it depends on the interaction of those patterns with other classes. Normally it is best to put them in the location where they BEST belong to, i.e. where the least association with other classes exist.
If it has a lot of interactions, maybe you should put the patterns itself in a different class.
Normally what I keep as guidelines: - Not more than a few hundred lines in a class - Not more than 7 (class) variables in a class - Not more than 7 functions/methods in a class
Of course these are guide lines. If you have a lot of simple (constant) pattern definitions the file will become larger without getting more hard to understand.
Also try to think of a class to have only ONE responsibility. If you want to be serious about splitting classes or how to organize them, read about SOLID.
-
1Nice one cheers, i'll look in to SOLID.Matt– Matt2017年04月03日 10:50:10 +00:00Commented Apr 3, 2017 at 10:50