Dank der Magie von Lisp und einem relativ einfachen Makro sind diese beiden Codebeispiele vollständig äquivalent. Es ist, als würde ich dir sagen, dass ClojureScript native Unterstützung für EVM-Verträge hat. Lisp lässt dich das wie eine Realität erscheinen. Lisp-Makros ermöglichen es dir, die Sprache selbst zu modifizieren.
In beiden Fällen ist das Endergebnis ein Konstruktor, der mir ein Objekt gibt, auf dem ich all diese Funktionen aufrufen kann. Aber die Version mit defcontract ist viel einfacher zu lesen und zu schreiben. Das lässt Ihre Geschäftslogik sich auf das Wesentliche konzentrieren, Ihr Boilerplate wird für Sie generiert.
Wenn Sie Code für mehrere Verträge schreiben würden, welches der beiden Beispiele, die ich Ihnen gezeigt habe, würden Sie lieber immer wieder schreiben? Welches würden Sie lieber in einem PR überprüfen? Makros lösen nicht alles, aber sie sind ein leistungsstarkes Werkzeug zur Reduzierung der Komplexität in Ihrer Geschäftslogik.
Ich habe vergessen, die ABI-Definition im ersten Screenshot einzufügen, was die Länge des Codesamples buchstäblich verdoppelt, lmao Du verstehst den Punkt lesbarer Code ist gut. Boilerplate lässt dein Gehirn über Dinge hinwegsehen. Makros helfen, Boilerplate zu entfernen, um deinen Code lesbarer zu machen.
2,48K