Powrót do realizacji

REALIZACJA
RES/Ecommerce

Klient

RES/Ecommerce

Produkt

Open Source Ruby Gem

Data

Lipiec 2024

Umiejętności

Ruby on Rails

DDD

CQRS

Event Sourcing

case study image
8
Zakończone funkcje
1
Deweloper
6
Miesiące pracy
O projekcie

Ecommerce to platforma e-commerce oparta na Rails, demonstrująca zaawansowane wzorce architektoniczne w Ruby. Projekt pełni rolę kompleksowego przykładu Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS) oraz Event Sourcing, wykorzystując gem RailsEventStore.

Jego główne cele obejmują udowodnienie, że modularność jest możliwa w aplikacjach Rails, pokazanie implementacji DDD w kontekście Ruby, demonstrację technik architektury opartej na zdarzeniach oraz dostarczenie praktycznego i wielokrotnego użytku przykładu dla programistów zainteresowanych tymi podejściami.

Problem klienta

Świat Ruby on Rails nie posiadał praktycznego, open-source'owego przykładu zaawansowanych wzorców architektonicznych, takich jak DDD, CQRS i Event Sourcing. Istniejące materiały były głównie teoretyczne, bez działających demonstracji w złożonej aplikacji Rails. Ten projekt wypełnił tę lukę, tworząc kompleksową, wykonalną bazę kodu jako realne źródło nauki dla programistów.

Wyzwania dla 2N
  • Implementacja Domain-Driven Design (DDD), wymagająca fundamentalnej zmiany podejścia w stosunku do tradycyjnego programowania w Rails.
  • Poprawne zastosowanie wzorca Command Query Responsibility Segregation (CQRS), co wymaga zaawansowanego zrozumienia projektowania systemów i separacji odpowiedzialności.
  • Opanowanie koncepcji Event Sourcing oraz ich praktyczna implementacja przy użyciu gema RailsEventStore, co jest skomplikowanym wzorcem architektonicznym wykraczającym poza standardowe programowanie w Rails.
  • Tworzenie modularnej struktury aplikacji, odbiegającej od konwencjonalnej monolitycznej architektury Rails, co stanowiło wyzwanie dla tradycyjnych paradygmatów programowania.
  • Projektowanie piramidy testów i implementacja testowania mutacyjnego, wymagające zaawansowanych umiejętności testowania i głębokiego zrozumienia metodologii testowania.
  • Równoważenie złożoności architektury z łatwością utrzymania i czytelnością, tak aby projekt pozostał narzędziem edukacyjnym, a nie zbyt skomplikowaną demonstracją.
W akcji
Co zrobiliśmy

Obsługa stawek VAT

Elastyczny system zarządzania stawkami VAT, umożliwiający administratorom dynamiczne tworzenie i usuwanie niestandardowych stawek podatkowych. Funkcja ta zapewnia szczegółową kontrolę nad obliczeniami podatkowymi.

System kodów rabatowych

System stosowania kuponów umożliwiający bezproblemowe wprowadzanie rabatów podczas składania zamówienia. Funkcja obsługuje różne typy kuponów i weryfikuje ich poprawność w czasie rzeczywistym, zapewniając dokładne obliczenia cen.

Interfejs śledzenia przesyłek

Interfejs zapewniający administratorom przejrzysty wgląd w status realizacji zamówień oraz szczegółowe informacje o wysyłce na poziomie poszczególnych produktów.

Poprawa jakości kodu

Usunięcie długu technicznego i naprawienie istniejących błędów w celu zwiększenia niezawodności oraz łatwości utrzymania systemu.

Rezultat

Nasze zaangażowanie w ten projekt open-source przyniosło znaczące usprawnienia oraz zaangażowanie społeczności. Z powodzeniem rozwiązaliśmy kilka istniejących problemów na GitHubie, dodaliśmy nowe funkcjonalności i poprawiliśmy ogólną jakość aplikacji. Udział w tym projekcie pozwolił nam na dogłębne zrozumienie zaawansowanych wzorców architektonicznych, takich jak Domain-Driven Design, CQRS i Event Sourcing w aplikacji Rails.

Co osiągnęliśmy:
  • Współtworzenie platformy e-commerce open-source jako referencyjnej implementacji zaawansowanych wzorców architektonicznych.
  • Poprawa jakości kodu poprzez systematyczną refaktoryzację i konsekwentne podejście architektoniczne.
  • Pomoc w stworzeniu wartościowego zasobu edukacyjnego dla programistów Ruby i Rails zainteresowanych zaawansowanymi technikami architektonicznymi.
ul. Powstańców Warszawy 5
15-129 Białystok

+48 668 842 999
SKONTAKTUJ SIĘ Z NAMI