Chienomi

Chienomiに「いいね」ボタン追加

開発::web

ついにChienomiに「いいね」ボタンが追加された。

実は同ボタンはMimir Yokohamaには既に存在するもので、Chienomiにはなかった。最も必要であるはずなのに、だ。

ChienomiはPV数はかなり多いことは認識しているが、最近Twitterでのシェア数も少なく、非常に時間と手間がかかる執筆であるため、どうしてもモチベーションが維持しづらい。 「いいね」は大きな原動力になるため、必要なものであった。

他のサイトのいいねボタンは非常に目立たないので、Chienomiについてはちゃんと目立つようにした。

軽く解説

全面的にパラメータをハードコーディングしているためコードは出せないが、ConoHa WING上にインストールされたRuby 3.0で動作するCGIスクリプトで、Rack/CGIを使っている。

コード自体は全体で35行と小さなものだ。アプリケーションは204を返すため、ページ側では送信制御はせず、単にsubmitボタンで送信するようになっている。 submitイベントをキャプチャし、ボタンの内容を書き換えている。言い換えれば、ボタンの書き換えは送信前に行われ、特にチェックなどはしていない。

いまいち使い勝手の悪いCGIライブラリ(Rubyの標準ライブラリ)と比べるとRack/CGIはRackアプリケーションとして書けるため非常に書きやすい。 最近のウェブアプリケーションは(私が仕事で作っているものも含め)非本質的な処理を大量に必要とし、それを制御しようとするためにただただ巨大でしかし得るものの少ないコードになりやすいが、やはりこのように元からある機能を使って単純な動作をするようにするととても書きやすく、かつ安定して機能するということを感じられる。

動作の流れとしては、ファイルを開き、ファイルをロックし、seekし、ロックを解除する、である。 フェイルセーフには作られているが、失敗した場合は素直に諦める。 かなりゆるい設計だが、ポイントは押さえてあるためいたずらは困難だ。

しかし、WING、アップデート自体滞っているが、Rubyに関しては単に入れただけで放置(野良ビルドである)なのでとても困る。

なお…

今回リビルドしたときに下書きを巻き込んでしまったりしたので、部分的に記事がおかしかったりするかもしれない。