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.
Zaloguj się, aby dodać komentarz.
Dla kolegi pytam :) zapomniałem dodać
Zamiast Struct, bo wygodniej. Ale juz trafilem na ludzi, ktorzy naduzywaja Data i tworza tam setki metod, robiac z tego jakies dziwne obiekty ;)
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/