Was noch nicht erwähnt wurde, ist die unbedingte, strikte Einhaltung der Trennung von Programmfuntionalität und der
GUI. Das ist nicht immer evident, und ich machs leider auch nicht konsequent genug in meinen Projekten. Aber das spart einiges an Kopfzerbrechen, wenn mal einige Programmodule ausgelagert werden müssen in eine andere Applikation.