雑記 Gherkin について

コード中のコメントをどのように書くかしらべていて出会った言語


目次


コードのコメントをどのように書くかというのは、なかなか難しい。 最近になっていろいろしらべていたのだが、そこでであった Gherkin について紹介したい。

Gherkinとは

Cucumber という ruby のテストフレームワークの一部をなすもの。Cucumber はBehaviour-Driven Developmentを志向する。 Behaviour を記述するための専用の言語が Gherkin ということらしい。つまりコードのふるまいを記述することに 特化している。というわけでこの言語だけを抜き出して他に使いまわしても有効であると考えた。

実例

gherkin での記述例ををあげよう(css調整中で見づらくて申し訳ないが)

Feature: Guess the word

  # The first example has two steps
  Scenario: Maker starts a game
    When the Maker starts a game
    Then the Maker waits for a Breaker to join

  # The second example has three steps
  Scenario: Breaker joins a game
    Given the Maker has started a game with the word "silky"
    When the Breaker joins the Maker's game
    Then the Breaker must guess a word with 5 characters

-- Gherkin Reference

ここで出てくる Feature, Scenario, When, Then といったものが予約語。 見ればわかると思うが非常に完結なものになっている。具体的な文法はレファレンスにあたっていただきたい。 が、コメント中のフォーマットとして流用するだけであればそこまで厳密に考えなくてもよいだろう。

まず、機能を宣言し、どのようなシナリオでどのような条件で、どのような結果となるかを定義する。 一般的に、このような要点をまとめた記述を心がけることはよくある。 がここまで意識してかっちり形式を固めて書く、ということはそうないだろう。 Gherkin では形式が文法としてまとまっているので、悩む余地がない。

おわりに

コメントに限らず、文章を(1から)考えるというのは、コードを描くこと以上に難しかったりする。 このように一定のフレーム、書式に沿って書きすすめると負荷が減る・・・きがする。 最近では Googleの Technical Writingのコースが話題になったりと、gherkinに限らず、分野に応じた適切な枠を所有できれば大きな武器になるだろう。 しばらく使ってみようと思う。