Creative Design & Branding

Elixir Meta Programming

Use this skill when building an Elixir macro or a declarative DSL — a schema/spec/route/workflow language in the shape of Ecto.Schema, Absinthe, Plug.Router, or ExUnit — with quote/unquote, __using__, module attributes, and @before_compile. It corrects the wrong defaults a model makes once it commits to metaprogramming — putting logic inside the quote block, re-evaluating unquoted expressions, forgetting Macro.escape, fighting hygiene with var!, generating code ad hoc instead of accumulating declarations, and validating the DSL at runtime rather than at compile time. Applies to writing or reviewing macro/DSL code. NOT for deciding whether to use a macro at all — that gate belongs to staff-level-elixir and adversarial-elixir, which say prefer plain functions.

Publisher / source
pproenca/dot-skills (found on skills.sh)
Upstream record
pproenca/dot-skills
Version
Version 3
Published
Publication review
Approved for publication
Content fingerprint
8610e3dc4778a9ba88aa6394e6b94de9c8b3e26fdb6e3915c59d6ce75a1bbdf2