開発環境の整備とプロジェクトディレクトリ
ちゃんとしたプロダクトを作るにあたり、まずは開発環境を整えないといけない。 ソース管理は当然なので、今ならgithubが妥当だろう。早速ユーザ登録して、 新規リポジトリを開始する。この辺の詳しいところは、以下の書籍を参考にした。
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (13件) を見る
コラボレーションするようなモノではないので少々オーバースペックな感じはするが、 自宅でバージョン管理システムを運用するのは大変面倒くさいのでやはりクラウド サービスが楽だ。
新しく、"picfinder"というリポジトリを作ったので、これをローカルにcloneしてくる。
$ git clone https://github.com/eijian/picfinder.git
簡単そうなところで、指定したディレクトリ内に存在するJPEGファイルの中で、同じ 画像であるものを探し出してレポートしてくれるプログラムを作ってみようと思う。 さて、Haskellでビルドやテストを繰り返し行うには、Cabalというのを使うと良さそう。 この辺は以下の書籍を参考にした。
関数プログラミング実践入門 ──簡潔で、正しいコードを書くために (WEB+DB PRESS plus)
- 作者: 大川徳之
- 出版社/メーカー: 技術評論社
- 発売日: 2014/11/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
まずは初期化をする必要があるらしい。
$ cabal init Package name? [default: picfinder] picfinder Package version? [default: 0.1.0.0] 0.1.0.0 Please choose a license: : 8) BSD3 : Your choice? [default: (none)] 8
とりあえずプロダクト名、初期バージョン、そしてライセンスを選ぶ。 Cabal(かHaskell界)のしきたりなのか、バージョンは4つの数字で表す ようにする、と先の[関数プログラミング…]に書いてある。まずは、 0.1.0.0で始めておく。
名前とかを入力した後、今回のプログラムは画像関係なのでカテゴリは Graphicsを、また実行プログラムとしておく。
Project category: : 10) Graphics : Your choice? [default: (none)] 10 What does the package build: 1) Library 2) Executable Your choice? 2
あとはmainが入るソースファイル名やHaskellのバージョンなどを聞かれたが よくわからないのでデフォルトのままで。とりあえず最後まで進んだので良しとする。
Generating LICENSE... Warning: LICENSE already exists, backing up old version in LICENSE.save0 Generating Setup.hs... Generating picfinder.cabal... You may want to edit the .cabal file and add a Description field.
あと、ソースツリーをどうするか考えないといけないがルートにバラバラいろんな ファイルやディレクトリが散らかっているのは嫌いなので、ソースとテストと文書用に 3つだけ作った。トップディレクトリは次のようになった。
.git <= gitが勝手に作った? .gitignore <= github登録時に指定 LICENSE <= githubで登録時に選択すると作られるがCabalが作った方を採用 README.md <= githubで登録した時に作られた Setup.hs <= Cabalが生成 doc/ picfinder.cabal <= Cabalが生成 src/ test/
次回からは少しずつプログラムを作ってみる。