ちょうど1年くらい前にScala + Akka HTTPでCahsperというTwitterの代わりのような物を作った。今回、PythonとFlaskを学ぶという動機でCahsperのFlask版を実装し始めて、そしてやめた。なお、この記事は技術的な解説はないです。

やったやつ


cahsper-flask

途中までしか実装していないので、本家のScala版Cahsperと同じ機能は実装されていない。

動機


既に書いたけど、下記の通り。

  • Pythonの習得
  • Flaskの習得
  • pytestの習得
  • SQLAlchemyの習得

あたりが目的だった。理由は仕事で使いそうだからというもの。Cahsperを題材にしたのはローカルのデータベースに適当なデータが入っていて、設計も自分でやってるし、実装も単純なのでやりやすいかとおもったから。

習得できたもの


下記あたりは達成できたかな?と思っている。

期待していたものはおおよそ習得できたと思う。半年ほど前に一度Flaskのチュートリアルをやったけど、やっぱり単純に何も考えずに写経するのと自分で考えながらやるのは大違いで、記憶の残り具合が全然違う。

習得できなかったもの


反してSQLAlchmeyは全くと言っていいほど習得できなかった。これはCahsperのテーブル設計がクソシンプルなのでJOINとかする必要が全くないというのが大きい。そのためにわざわざテーブル設計を変えるのも本末転倒な話なので。

やめる理由


当初同等機能を実装しきるつもりだったけど、やめることにした。理由はおおよそ目的達成できてモチベーションがなくなったのと、他にやることがいっぱいあるから。この記事は、もう実装止めるぞ!!!という自分向けの区切りの記事。

その他


まあ、当初の目的は達成できたのでいいのではなかろうか。ただ、Pythonの練度はもっと上げておかないといけないと思う反面、プライベートで使う気はないのでわざわざ仕事のためにこれ以上時間割いてPythonやろうという気が起きないのが厳しい。

別言語を習得する際に、今回やってみたように一度自分で一から設計・実装したものの再実装をしてみる。というのは自分にはかなり向いていると感じたので、今後もこの方法は採用したい。

本家CahsperもDDD習得のためにリファクタしている途中で飽きて放り投げたりしているので、そのうちなんとかしたい。