dzięki magii Lispa i stosunkowo prostemu makro, te dwa przykłady kodu są w pełni równoważne to tak, jakbym powiedział, że Clojurescript ma natywne wsparcie dla kontraktów EVM Lisp pozwala ci sprawić, że to wydaje się rzeczywistością. Makra Lispa pozwalają ci modyfikować sam język.
W obu przypadkach końcowym rezultatem jest konstruktor, który daje mi obiekt, na którym mogę wywoływać wszystkie te funkcje. Jednak wersja używająca defcontract jest znacznie łatwiejsza do przeczytania i napisania. To pozwala twojej logice biznesowej skupić się na tym, co ważne, a twój kod szablonowy jest generowany za ciebie.
gdybyś pisał kod dla wielu kontraktów, który z dwóch przykładów, które ci pokazałem, wolałbyś pisać w kółko? który wolałbyś przeglądać w PR? makra nie rozwiązują wszystkiego, ale są potężnym narzędziem do redukcji złożoności w twojej logice biznesowej.
Zapomniałem dołączyć definicję ABI w pierwszym zrzucie ekranu, co dosłownie podwaja długość przykładu kodu, lol rozumiesz o co chodzi czytelny kod jest dobry. szablony sprawiają, że twoje myśli przeskakują nad rzeczami. makra pomagają usunąć szablony, aby twój kod był bardziej czytelny.
2,47K