Cucumberの衝撃とバイオインフォマティックスについて思うこと

バイオの買物.comのまとめてカタログが正しく動作しているかをこまめに確認するために、自動テストというものを使ったしています。「使ったりしている」というのは、つまりやったりやらなかったりしているということです。自動テストはプログラムを書いて作るのですが、これが結構大変なんです。そのため、やらなきゃいけないと思いながらも放っておいたりすることが多くあります。

それで夏休みの間にテストをどうしようといろいろ考えていたのですが、Cucumberというものを今更ながら勉強して、度肝を抜かれました。

Cucumberというは誰でも(そうプログラマーではなくても)分かるような言葉でプログラムの動作を指定するシステムです。Cucumberを使うと、プログラムのやるべき動作を以下のように記述できます。(実際に私が使っているコード)。私は英語でやっていますが、日本語も可能です。

Gherkin.png

もちろんCucumberでプログラムのやるべき動作を記述しただけでは何も起きず、そのとおりに動作するようにプログラムを書かなければなりません。そこはプログラマーの仕事になります。

でもCucumberが良いのは、こういう普通の人間の言葉でプログラムの動作を書けるのであれば、プログラマーであってもあるいは普通の人であっても、言葉が共有できるということです。何をやりたいかを、うまくお互いに意思疎通できることです。プログラマー自身にとっても、数ヶ月後はプログラムの細かいことはすっかり頭から消えてしまいますので、自分がいったい何をしたかったのかをCucumberを使って思い出せばとても便利なはずです。

これが衝撃です。普通の言葉を使って、それを翻訳する形でプログラムを書いていく。そしてそれをコンピュータが支援してくれる。

それでこれからがバイオインフォマティックスの話です。

純粋に生物学的なことに興味を持っている研究者がプログラミングスキルを持っていることは非常に珍しいので、このような研究者とコンピュータの間に立つようなバイオインフォマティックスの人間が必要だと言われていたかと思います。生物学のこともプログラミングのこと、さらにどこにどのような情報源があるかを知っていて、そして生物学的な課題を解決するようなプログラムを書いてくれるような人間です。

その一方で生物学者の側からの歩み寄りも必要になります。プログラミングはできなくても、どういうところにどういうデータがあるかを知っていて、ブラウザを使ってであればある程度の操作ができるように勉強しておくことが必要です。そして各種のデータを用意しているウェブサイトの努力もあって、こっちの歩み寄りはある程度できたきたような気がします。

それでこのような環境の中に、Cucumberを突っ込んでみます。例えばあっちこっちのデータベースをウェブで使いこなしている研究者なら、仮にプログラミングの知識が無くても以下のように書けるはずです。(例が悪すぎて恐縮です。最近バイオインフォマティックスやっていないので、いいのが思いつきません)

gherkin bio2.png

でも言いたいのは、こうやって作業のステップを生物学者側が一つ一つ書いていって、そしてこれを元にプログラマーがCucumberを使ってバッチ処理するプログラムを書いていけば結構、意思疎通の効率が良くなるのではないかなということです。

確かに生物学もコンピュータも分かるようなバイオインフォマティックスの人間が育つことは大切なんでしょうが、優秀な人間はそうそう数多くは育ちません。仮に生物学の知識が弱くても、プログラミング能力があるような人間をどれだけ使いこなせるか、という方が効率がよい気がします。

実際、IT業務を外注することは企業ではよくやります。例えば在庫管理業務の効率化のためのプログラムが欲しいから外注したとしても、プログラミングと在庫管理の両方が分かるような人がやってくれる訳ではありません。両方のエキスパートなんて滅多にいない、そういう状況が一般的な中で生まれたのがCucumberですし、何か生物学とコンピュータの間で役に立ちそうな気がしました。少なくとも考え方だけでも。

私ももう少しバイオインフォマティックスの現状が分かるともっとちゃんと言えると思うのすが、とりあえずは私の思いつきを紹介しました。

Tags:

Leave a Reply