Qt and DDD

  • Does anyone know of any open source examples of Qt being used with domain driven development?

  • Hello,

    I dont know any such example.

    However, I am curretly trying to implement DDD and Hexagonal Architecture on a toy project (a tetris like game) I am creating to help me learn Qt.

    One of the important things for me is to have a clear separation between the Model and the Gui. I like to have the model to have the less possible dependance to any framework. On c++, this end writing it with only dependance to the STL.

    In case of Qt, I understand the QT Core library propose a lot of very nice features, and some of them seems even better than their STL equivalent. So, after a try with STL, I am now rather trying to develop the model on QT Core library, keeping the QT Gui depedency away.

    At last but not least, I am using Google Gtest to develop the model the TDD way (I am an agile/TDD fan :-))

    more about hexagonal architecture here: http://alistair.cockburn.us/Hexagonal+architecture

    Please let me know if you have any remark, question :-)

  • Moderators

    @lothar: To maximize your Qt-learning efficiency you should use QtTest in favor of GTest;-)

  • It would be nice to add (Domain Driven Development) to the title. Otherwise it can be easily confused with DDD debugger:

    The Art of Debugging with GDB and DDD

  • AlexBravo, yeah, I'm also firstly thought about DDD tool, not about DDD technique.

  • Chris, I'm also very interested about this topic. I haven't done much DDD myself but I have read about it and done some toying.

    One thing I toyed with was to create a Repository to fetch entities (json-objects from the internet). I found it hard to use QNetwork because the asynchronous nature of the module. Repositories are often modeled to return an entity and the entity can then be used to traverse the children etc.

    Do you have any examples I can take a look at?

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.