Code architecture improvements

Registered by Killian EBEL

- Separate classes in differents folders, for example :
  - UI
    - Perf
    - Seq
    - Main
    - Menu
    - Icons (XPM)
    ...
  - IO
    ALSA, JackMIDI...
  - Engine
    Events, sequence...
  main.cpp

It's just an example, but it would make the code comprehensible more quickly. It's also make us sure to respect layers decoupling.

- Use doxygen to generate a technical doc, and comment every function.

- Frequently pass cppcheck (variable initializations and memory leaks) and push gcc warning to the highest level.

- Use constructors initialization lists.

- Don't use "friends" classes, like Seq24PerfInput and PerfRoll (in my opinion it's not a good practice). Also, don't write many classes in one file.

- Write a lot of unit tests !

- Maybe benchmarking ?

There are some of my ideas, I'll surely give some others in the future. It's not necessary to do it in one time, but we can begin to do it gradually. I don't know if all are good and workable, but it could be interesting to improve the code before the 1.0 release !

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Sprints

Whiteboard

A simple cppcheck.txt file has been added in my branch. File is generated while using this command :

cppcheck --all . 2> cppcheck.txt

And what about Valgrind ? http://valgrind.org/

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.