2009-08-02
■[dev][script]無印良品の会社の情報系システムはbashで作っているそうだ
無印商品ブランドを展開している良品計画では、情報系システムの内製化を進めて効果をあげているそうです。
ポイントの一つとして、スクリプト言語を活用した独自の開発手法を採用していることがあるそうです。スクリプト言語の採用そのものは珍しくないと思うのですが、ユニークなのはbashを使っていることです。
データを検索したり業務に合わせてデータを加工するビジネスロジックや、データ処理の一貫性を保ったりデータを二重化するデータ管理ロジックは、すべて「Bash」と呼ぶスクリプト言語で記述する。しかもデータベース管理ソフトを使わず、データはすべてテキストファイルで管理する。「ミドルウエアのオーバーヘッドがない分、処理も速い。ごく普通のパソコンで動作させても、25万件の商品データなら2秒程度で全件検索できる」と山崎課長は胸を張る。
実際のコーディングイメージがこちらに掲載されていました。
第8回 情報システム開発の自前主義 - 危機だからこそ、前向きで楽しいコスト削減のススメ:ITpro
私は経験がありませんが、聞くところによると汎用機やオフコンの時代には「テキストファイル読み込み->処理->テキストファイル書き出し」という処理形態が一般的だったそうで、それに良く似た考え方だそうです。
Bashは通常、UNIXやLinuxを操作するために利用する。ファイル内のテキストデータの更新や、テキスト内の数値計算に使うのが一般的で、企業の中核を担うシステム開発に利用する例はほとんどない。これに対し小森取締役は、「昔のメインフレームでは、テキストファイルを読み書きするコマンドをプログラミングしてシステムを開発していた。実現方法は違うにせよ、良品計画のシステム開発方法の考え方は同じ。ミドルウエアのパッケージソフトを使わなくても、システムは作れる」と意に介さない。
確かに、情報系のシステムであればトランザクション処理や排他制御などは必要ないケースが多いので、ミドルウェアを無理して使う必要はないのかもしれません。この方法で何でも解決できるわけではないですが、適用対象をうまく見極めて活用していくと、実利は大きいと思います。(そういえば昔はWebアプリケーションもシェルスクリプトで作ってたことがあったっけ・・・)
個人的には、bashだとプログラム言語としての機能がやや物足りないので、PerlやRubyなどの高機能言語を組み合わせていくのが良いのではないかと思います。また、Java系の開発資産があるのなら、Groovyを使うのが良いでしょう。(オンライン系で作ったDAOを再利用するとかね。。。)
- 22 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GGIH_jaJP244JP244&q=Google+Java
- 13 http://www.google.co.jp/search?hl=ja&q=lande-rd+使い方&lr=&aq=0&oq=LANDE-RD
- 11 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&q=IMP-00013&btnG=検索&lr=lang_ja
- 10 http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/article/COLUMN/20090730/334847/
- 10 http://reader.livedoor.com/reader/
- 7 http://ezsch.ezweb.ne.jp/search/ezGoogleMain.php?query=ナイトライダー+カーナビ&start-index=14&adpage=4&mode=03
- 7 http://mixi.jp/view_diary.pl?url=http://d.hatena.ne.jp/nobusue/20090802/p2&owner_id=186667
- 7 http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=terastation+linux&num=50
- 7 http://www.jggug.org/
- 6 http://grails.jp/wiki/Link