I wanted to know is there such a reference or documentation out there for programmer that highlight good practices for Application Design particularly GUI. I am working with a very large GUI application now (MultiThreading, Tabs, Socket Communication), it doesn’t seem quite as elegant as it should be (at least feels that way, since I don’t have a lot of experience).
I am particularly interested in good practices related to
- When to Use Thread? Should I use them to do computation only, handle events, etc?
- How could I make the application more flexible (ie adding more panels, or functionality possible through dynamic libraries?)
- Whats the best way to manage panels or tabs in a GUI (Singleton, Factory Classes, Object Pools)
I don’t have a book in mind, but if you want the GUI app to be flexible, you need to “centralize” the connections between the GUI and the back-end. So when a GUI component A is connected to a back-end component B, rather than connecting
do
GUIDispatcher always send to BackendDispatcher, while each of the dispatcher only signal to the relevant classes. It sound counter productive to add more signals and slots, but at least the control flow of your program is much more simple:
See Spectrum Analyzer demo in the Qt library.