@nqounetです。
YAPC熱冷めやらぬ今日このごろ、いかがお過ごしですか?
私は熱くてもうダメです。
Perl入学式のゴール
どうやって決まったかは忘れましたが、ゴールは一行掲示板のようなウェブアプリを作る、ということにしました。
簡易版twitterのような「一言掲示板」の完成を目標にして, その為に必要な知識を学んでいこうと考えています.
何故ウェブアプリか、というと、ウェブアプリを作ることができる言語、という位置付けでPerlを捉えてほしいと思ったから、だろうと思います。
既に3年目も半ばを迎える頃になって、今更感じたのですが、ゴールと中身が噛み合っていないですね。
初年度は、12回の目標で結果11回になりましたが、ウェブアプリを作るためのMojoliciousというウェブアプリケーションフレームワーク(以下WAF)が登場したのは第10回でした。
2回分でWAFの説明をしたのですが、出てくることがほぼ新しいことばかりで、とても大変だったと思います。
応用編というのは、基礎編の知識があって成り立つのが大事で、こういう積み重ねで基礎が大事だな、という認識が得られるのだと思います。
しかし、突然のウェブアプリ作成で、基礎編とほぼ無関係の新しいWAFを覚えなければならないというのは、覚えることが横に広がってしまって、達成感が得られないんじゃないかと。
そして更に問題なのは、ここから応用するのが非常に難しいことです。
もし、ゴールの設定を変えないのであれば、Perlの基本部分は軽めにして、WAF(例えばMojolicious)の使い方を初回から実施して、応用の仕方や応用に必要な知識をフォローしていく、という方が良い気がします。
ウェブから離れたゴール設定
今のカリキュラムのままで進むのであれば、コマンドラインのアプリを作るほうが、より達成感が得られるような気がします。
そういう意味では、YAPC::Asiaでのbot作りがゴールでも良い気がします。
1行掲示板の場合、ユーザーインターフェイスとしては、発言するボックスと、発言の一覧があれば良いです。
ということは、モードで考えると入力モードと一覧モードがあれば良い。
昔風のプログラムであれば、入力の時は1、一覧は2、終了は9を押してEnter、という風に作っておき、それぞれ機能を分岐させる。
|
|
見た目はかなりしょぼいですが、一応機能的にはこれで満足しているはず。
あとは、ちゃんとメニューっぽくしたり、if文の中身を関数にしたり、@listをファイルに保存したり、項目を追加してCSV(またはJSON)で保存したり、という風に拡張したりもできる。
これらは少しずつ追加で覚えればいいのですが、あらためて考えると、たったこれだけのことをウェブで動くようにするだけで1回分の説明がいるのはやっぱり大変ですよ。
本当に今さらですが、ゴールがおかしいですね。えぇ。