スポンサーリンク

コードが書ける!数式が書ける!AAが書ける!スタンプが貼れる!

無料の匿名掲示板型SNS「このはちゃんねる

新規会員募集中!

プロジェクトのパッケージングについて

284, 2020-02-06

目次

既存プロジェクトのパッケージ化

毎日プログラミングばかりしていると、プロダクトがけっこう溜まってくる。
今まではこれらのプロダクトはほったらかしにしていた。作ったら作りっぱなし。
ただ、それは勿体ないということで、再利用可能なパッケージにすることにした。

再利用可能なパッケージというのは、つまるところコピペで使えるということである。
何か新しいプロダクトを作る場合は、既存のプロダクトをコピペして改造していく。
こうすることで、ロケットスタートというか、すぐに開発に入ることが出来るようになる。

Capを使ったパッケージ化

私はスニペットを管理するシェル、Capをこつこつと作っている。かれこれ5年目になる。

Cap - GitHub

このCapに手を加えて、プロジェクトをパッケージ化できるようにした。
Capはテンプレート言語を持っていて、この言語のコードをプロダクトのコードに紛れ込ませることが出来る。
そうして、コマンドラインからのオプションで変数に値を流し込む。たとえば↓のように。

$ cap make index.html --title "The title" --content "The content"

さらにCapはコマンドラインを処理する機構を持っていて、これを使うとBashなどでお馴染みのリダイレクト機能が使える。
変数に値を流し込み、その結果をリダイレクトで他のファイルに保存することが出来るわけだ。
これは、Bashなどを使っていれば日常的にやっていることで、別に珍しい機能ではない。
Capの言語内ではこの一連の処理をテンプレート言語で書くことが出来る。たとえば↓のように。

{@
    exec("cap make index.html --title \"The title\" > :other.html")
@}

さらにCapはファイルのコピーなどもコマンドで行うことが出来るので、Bashスクリプトのようにファイルをコピーしてファイルの中の文字列を置き換えることが出来る。
この一連の処理を書いたファイルを便宜的にCapfileと定義する。あとはこのCapfileをmakeすればプロジェクトのコピーが実行できるわけである。

$ cap cd /my/project/directory
$ cap make Capfile --title "The title" --content "The content"

ここまでに紹介した機能は現行のバージョンのCapで行うことが出来る。やってることはBashスクリプトでも代替できるが、Capは仮想的にシェルを1つ持っているのでBashより楽に管理できると思う(当社比)。

パッケージングを実行する

実際にCapを使っていくつかのプロジェクトをパッケージングしてみた。
ChromeExtensionやVueのプロジェクトをパッケージにして、すぐに取り出せるようにした。
これのお陰で、ずいぶん開発スタートが楽に切れるようになると思う。開発始めが一番だるいと思うのだが、コピペしてしまえばそれだけで動くので、心理的負担がずいぶん小さくなる。

パッケージングの結果は

パッケージングの結果はどうなるだろうか。パッケージングしても、使うことが無ければ無駄になるだけである。
ただ、パッケージングは大した手間ではない。会員制サイトのパッケージングは一日あれば出来る。
このパッケージによって開発効率が上がることが望まれる。でなければやった意味がない。私の5年間返してである。

Capの将来像

将来的にはCapにファイル共有のための機構を実装したい。
P2Pがいいと思うのだが、実装難易度が高そうだ。
しかし、パッケージをCapで共有できるようにすれば、他のプログラマーも簡単にパッケージを利用できるようになる。そうなったら便利かもしれない。
そのような試みはすでにパッケージの形で言語に提供されているのだが、Capを使えばさらに抽象化することが出来る。

投稿者名です。64字以内で入力してください。

必要な場合はEメールアドレスを入力してください(全体に公開されます)。

投稿する内容です。

スポンサーリンク

スポンサーリンク

スポンサーリンク

スポンサーリンク