Build representer
ErikSchierboom opened this issue · 0 comments
In Exercism v3, we're introducing a new (optional) tool: the representer. The goal of the representer is to take a solution and returning a representation, which is an extraction of a solution to its essence with normalized names, comments, spacing, etc. but still uniquely identifying the approach taken. Two different ways of solving the same exercise must not have the same representation.
Each representer is track-specific. When a new solution is submitted, we run the track's representer, which outputs two JSON files that describe the representation.
Once we have a normalized representation for a solution, a team of vetted mentors will look at the solution and comment on it (if needed). These comments will then automatically be submitted to each new solution with the same representation. A notification will be sent for old solutions with a matching representation.
Each track should build a representer according to the spec. For tracks building a representer from scratch, we have a starting guide.
The representer is an optional tool though, which means that if a track does not have a representer, it will still function normally.
Choosing between representer and analyzer
There is some overlap between the goals of the representer and the analyzer. If you want to build both, we recommend starting by building the representer for the following reasons:
- Representers are usually (far) easier to implement
- Representers can have a far bigger impact on the mentoring load than analyzers by empowering mentors
- Representers apply to all exercises, whereas analyzers usually target specific exercises or a subset