Help us understand the problem. What is going on with this article?

KINX … ロゴ作った話と BDD 用テスティングフレームワークの話

ロゴを作ってみた

はじめに

「見た目は JavaScript、頭脳(中身)は Ruby、(安定感は AC/DC)」でお送りするスクリプト言語 Kinx。改めて Ruby っぽさの定義って何だろう、と思案中。これだ、という意見があればぜひご教授ください。

見た目がゴージャスになって嬉しいのでご報告。

Kinx

オリジナルのロゴを作ってみました。Ruby のかっこいいロゴとか、Python や JS、Bootstrap みたいなのもみんなロゴがあるし、欲しいなーと。

ロゴがあると「公式感」が出てちょっとステージ上がった感じがするよね(別に何も上がってはいないのだが)。たまに裏でアイコン職人として活動しているので、(出来の良さは置いておくとして)こういうの作るのは割と好きなタイプ。ちなみにアイコン職人への仕事の依頼は...積極的に受け付けていませんが何かあればコメントください。

まぁいいんじゃない?、と思ったら★を押してくれると嬉しいな(常に★を欲しがる男...でも欲しいよね)。

Kinx は「有益なライブラリのプラットフォームになる」と息まいているので、歯車をモチーフにデザインしました。色々なものを有機的につなげていくイメージ。

SpecTest

ついでに SpecTest と名付けたテスティング・フレームワークのロゴも作った。

コンセプトは「Writing a specification means writing a test, and examples are becoming test codes as is.」。

これは自分で言っててナンだが結構うまく機能していてちょっとモチベーション上がっている。Kinx に内蔵しているが、別に Kinx 固有のシステムではなく汎用的に作ってあるので、Kinx で開発した製品以外のテストにもそのまま使える(フレームワーク自体は Kinx で動くのだが)。

そのうち説明する機会を設けようと思うのだが、基本的なアイデア・コンセプトは テストは書かない、より正確には テストを書くのではなく仕様を書くと自動的にテストになる というもの。

そもそも、テスト書くのって大事だけど大変だよね。あぁ、あと ドキュメントも書かないと使えるものにならない しナー、という面倒くささダブルパンチでやってくる憂鬱をどのように乗り越えるか、という観点で生まれた可愛いわが子です。

そう、書くのは仕様なのです。Markdown で仕様書を書くのです。仕様書の中には サンプル(例) が書かれているのです。例は そのまま実行できる のです。素晴らしい。

まじめなコンセプトとしては、BDD (Behavior Driven Development) の Specification By Example というコンセプトをベースにしています。「例」によって「仕様」を決める(そしてそれがテストコードになる)。

他の BDD 向けテスティングフレームワークを見ててもみんな プログラムで表現する っていう感じなんだよね。違ったらすみませんだけど、RSpec とか JSSpec とか PySpec とか NSpec とか。。。仕様を書いているのかもしれないが、実際にそれを表現するのはプラグラム・コード上だったりする。いや、そうじゃないんだ。仕様書(そんなたいそうなモンじゃないが簡単な例とかを散りばめた説明用の文書)が書きたいんだ。書きたいのはテストじゃないんだ、どっちも書くのは面倒なんだ、という気持ちの表明でもあります。

実行例も載っているので、興味あれば見てやってください。

おわりに

みんなテスト書こうね。

いや、私はテストは書かない。仕様を書く。そしてひたすら例を書く。いつのまにかテストできてる(理想)。これを実現してくれる SpecTest。どうぞよろしくお願いします。

そしていつもの以下の定型フォーマットです。

Kray-G
C++ & boost lover だったが、禅の心持ちというかシンプル・イズ・ザ・ベストの精神で C に回帰中。メタルからロックンロールに戻ってきて Rolling Stones に今更夢中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away