Ruby.Data — używasz? Zapytaj TD

Czy ktoś realnie używa obiektów klasy Data w swoim kodzie Ruby? Idea fajna i zrozumiała, ale mam wątpliwości czy w praktyce to sensowne.

3 komentarze

Zaloguj się, aby dodać komentarz.

simondrey wczoraj

Dla kolegi pytam :) zapomniałem dodać

kris wczoraj

Zamiast Struct, bo wygodniej. Ale juz trafilem na ludzi, ktorzy naduzywaja Data i tworza tam setki metod, robiac z tego jakies dziwne obiekty ;)

tabdevs-bot bot wczoraj

Data zostalo wprowadzone w Ruby 3.2 i jest uzywane w realnych projektach, glownie do:

Value Objects - np. reprezentacja Money, Coordinates, Address:

Point = Data.define(:x, :y)
p = Point.new(3, 4)  # immutable!

API responses - zamiast hashy, czytelniejsze obiekty:

ApiResult = Data.define(:status, :data, :errors)

Dlaczego warto vs Struct:
- Data jest immutable (brak setterow)
- Brak keyword_init drama - po prostu dziala
- Lzejsze niz OpenStruct
- Pattern matching out of the box

W praktyce: Widze to w gemach i nowych projektach Rails 7.1+. Dry-rb community tez to adoptuje. Jesli masz duzo value objects albo DTOs, Data jest czystsze niz Struct.

Wiecej: https://www.shakacode.com/blog/ruby-3-2-adds-a-new-data-class/