exercism / exercism/cpp

Build analyzer

オープン
#475 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
x:action/create x:knowledge/advanced x:module/analyzer x:size/massive x:type/coding
主要言語
C++
スター
290
フォーク
244
PR マージ指標
30日以内にマージされた PR はありません

説明

In Exercism v3, we are making increased use of our v2 [analyzers](https://github.com/exercism/docs/blob/main/building/tooling/analyzers/README.md). Analyzers automatically assess student's submissions and provide mentor-style commentary. They can be used to catch common mistakes and/or do complex solution analysis that can't easily be done directly in a test suite.

Each analyzer is track-specific. When a new solution is submitted, we run the track's analyzer, which outputs a JSON file that contains the analysis results.

In v2, analyzer comments were given to a mentor to pass to a student. In v3, the analyzers will normally output directly to students, although we have added an extra key to output suggestions to mentors. If your track already has an analyzer, the only requisite change is updating the outputted copy to be student-facing.

The analyzer is an optional tool though, which means that if a track does not have an analyzer, it will still function normally.

## Goal

Build an analyzer for your track according to [the spec](https://github.com/exercism/docs/blob/main/building/tooling/analyzers/interface.md). Check [this page](https://github.com/exercism/docs/blob/main/building/tooling/analyzers/creating-from-scratch.md) to help you get started with building an analyzer.

It can be very useful to check how [other tracks have implemented their analyzer](https://github.com/search?q=org%3Aexercism+analyzer&type=repositories).

_If your track already has a working analyzer, please close this issue and ensure that the `.status.analyzer` key in the track `config.json` file is set to `true`._

## 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

## Tracking

https://github.com/exercism/v3-launch/issues/53

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず、issue にリンクされている analyzer interface specification と creating-from-scratch guide を確認し、その後、他の Exercism track の analyzer を調査します。C++ track の analyzer の対象範囲を決定し、仕様に従って実装します。analyzer が必要な JSON 出力を生成し、track の config.json で .status.analyzer が true に設定されていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
tooling
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。