Tim Jansen's Blog (deutsch)


2003/10/13
KDE 4.0
Irgendwie finde ich mit jeder Funktion, die ich implementieren will, 2 weitere Funktionen, die ich dafür bräuchte und die mir auch fehlen. So geschehen am Wochenende. Die Klasse für XML Typkonversionen war fast fertig als mir bewusst wurde, dass ich kein Framework für Unit-Tests habe. Da ich es auch für die anderen APIs oft brauchen werde macht es Sinn, sowas im Framework zu haben. Also schaute ich mich ein wenig um, und es gab eigentlich nur cppunit und qtunit. cppunit hat das ursprünglich simple JUnit unglaublich aufgebläht und verkompliziert, das allerdings gut dokumentiert und unter LGPL. qtunit ist komplett undokumentiert, GPL und trotz des Namens nicht sehr Qt-haft, was sich vor allem in den STL-basierten Exceptions zeigt. Um es kurz zu machen, ich habe mal wieder angefangen, mein eigenes zu schreiben. Mit einer API nah an JUnit, aber noch simpler. Zudem werde ich QObject Slots benutzen, womit das Schreiben von Test ähnlich einfach wie in Java wird. Namespace ist KDE::Test.

Ich habe mich für Exceptions entschieden, allerdings nur auf einer pro-Namespace Basis. Das heisst, nur ausgesuchte Namespaces werden Exceptions benutzen. Dazu gehören KDE::XML, KDE::Test und KDE::IO, aber nicht KDE::Util und KDE::SLP.
Damit entferne ich mich wieder einen Schritt weiter von der bestehenden KDE Codebasis, und ich weiss nicht, wohin mich das führt. Zunächst werde ich den KDE Namespace behalten und einfach weitermachen. Wenn ich irgendwann soweit bin, eine erste Version als 'fertig' zu deklarieren, kann man auf kde-core immer noch diskutieren, ob das KDE Projekt die Library adoptieren will oder eben nicht.



This page is powered by Blogger. Isn't yours? Creative Commons License
All text in this blog is licensed under a Creative Commons License.
(Images containing screenshots etc are excluded)