雑記 Gherkin について
コード中のコメントをどのように書くかしらべていて出会った言語
目次
コードのコメントをどのように書くかというのは、なかなか難しい。
最近になっていろいろしらべていたのだが、そこでであった Gherkin
について紹介したい。
Gherkinとは
- 公式 https://github.com/cucumber/cucumber/tree/master/gherkin
- レファレンス: https://cucumber.io/docs/gherkin/reference
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に限らず、分野に応じた適切な枠を所有できれば大きな武器になるだろう。 しばらく使ってみようと思う。