Qt – Symulacja biznesowa

Qt – Symulacja biznesowa

Ostatnie miesiące minęły mi bardzo szybko. Zlecono mi przygotowanie dość złożonej symulacji biznesowej działającej w czasie rzeczywistym. Celem projektu było wytworzenie narzędzia skutecznie wspomagającego szkolenia z dziedziny finansowania działalności gospodarczej. Jak to działa w praktyce? Wielu użytkowników uczestniczy w interaktywnej rozgrywce prowadzonej przez moderatora (lektora), jednocześnie przyswajając sobie kluczowe zagadnienia niemalże w praktyce. Do dyspozycji graczy udostępniono system księgowania (bilans + rachunek zysków i strat), moduł produkcji, sprzedaży oraz logistyki. Każdy z przygotowanych elementów udostępnia wiele możliwości i został zaprojektowany tak, aby jak najbardziej odzwierciedlać realia. Niestety nie mogę omówić szczegółowo wszystkich wdrożonych funkcjonalności.

Architektura

Projekt przygotowałem w oparciu o szkielet programistyczny Qt. Ze względu na charakter aplikacji kluczowe było pokazanie całości w jak najprzystępniejszy sposób. Tym samym ponownie postawiłem na technologię Qt Quick. Ostateczny efekt uważam za znakomity. Dużo funkcjonalności zostało ubranych w bardzo ładny oraz czytelny interfejs. Projekt składa się z dwóch różnych aplikacji: moderatora oraz klienta. Te dwa różne programy komunikują się między sobą za pomocą protokołu TCP/IP. Poczyniłem duże starania aby ilość wymienianych informacji była ograniczona do minimum. Bardzo dużo pracy włożyłem w przygotowanie moderatora. Podzieliłem go na warstwę graficzną oraz „obliczeniową”. Innymi słowy w jednym wątku jest rysowany interfejs, a w innym zaimplementowana obsługa serwera TCP/IP, bazy danych oraz wszystkich obliczeń. Dzięki takiej decyzji interfejs moderatora nigdy nie traci responsywności nawet gdy jest podłączonych do niego wiele aplikacji klienckich. Aby realizacja projektu szła mi jak najsprawniej przygotowałem własny system mapowania obiektowo-relacyjnego (ORM). Przygotowany przeze mnie ORM w pełni wykorzystuje możliwości Qt związane z bazami danych oraz obiektami i informacjami na ich temat (QMetaObject).

Komentarze

Brak komentarzy. Może dodasz pierwszy?

Chcę dodać komentarz