見出し画像

英語多読Webアプリ更新:一つのテーマを連続して読めるようにした

先日公開した英語多読Webアプリ。まぁさすがにあまり登録してもらえていないですが、ボチボチと続けていきます。なんといってもまず自分が使っているので……。とりあえず開発しながら5万語ほど読みました

サイト:Extensive Reading Service Beta

更新内容

今回の更新内容は、英文テーマを固定することです。つまり、一つのテーマについて連続して読むことを前提とするようにしました。また、一度読んだ英文については記憶し、テーマごとの達成度を算出するようにしました。

現在の画面は以下のような感じです。

画像

テーマの固定

まず、「テーマを変更」ボタンを設置しました。このボタンをおさない限り、同じテーマの英文が続きます。狙いとしては、一つのテーマを集中して読み込むことで、特定のジャンルに慣れつつ、英文を読むスピードをアップさせることです。実際、同じような文章を何度も読むので、スピードは上がります。

達成度の算出

テーマごとに読んだ英文を記憶して、達成度を算出するようにしました。一度読んだ英文については二度と出てきません。まぁどうせ使い捨ての英文なので、何度も読むようなものではないと思います。
これによって、「読んだ単語数」以外に「テーマを制覇する」という報酬が追加されたことになります。……報酬か?これ……。自分はこういうので十分嬉しかったりするんですが、我ながらストイックな気がする……。

次の更新

現状、テーマの固定を外すと次にもう一度出会えるまで、「テーマを変更する」を繰り返すことになります。一度読んだテーマについては、ダッシュボードか英文画面から、再開できるようにしようと思います。
あと、そろそろリファクタしないと、ちょっとつらい感じになってます……特にバックエンド……。

開発者向け:開発よもやま話

フロントエンドクソ雑魚故、React慣れてなさ過ぎて、しょうもないところでハマっています。AIに頼って頑張っていますが、AIはわけのわからないことをするので、すっちゃかめっちゃかにされた挙げ句全部元に戻す、なんてこともありました。ただ慣れていないだけに、ある程度ちゃんと書こうとする気もあって、コードを適切な粒度に分割する、とかはボチボチとやっています。
逆にバックエンドのほうは慣れているので開発速度自体は速いんですが、手癖で機能を先に作ってしまっている感じでして、全部routerに詰め込んでぶくぶくに太っており(スキーマだけわけてますが……)、さすがにそろそろリファクタしないとヤバイなぁという感じがします。
APIはAWSのAPI Gateway + Lambdaでやっていますが、わかっていたことではありますけれど、Lambdaのコールドスタートの遅さが気になるのはそうですね。けっこう思ったより体感かかるなぁという感じ。なんかこれだったら確かにコンテナたててどっかにホスティングしたほうがいいかもしれないと思いました。どうせ流行らないし。なんならVPSでもいいし。Fastapiのほうが書きやすいし。
でもAPI Gateway + Cognitoの認証周りの楽さはあります。SAMで、認証としてユーザプールを指定するだけで、面倒な認可の処理をよしなにしてくれるのは確かに楽。割とこれだけでも意義はあったような気もします。

所感

自分で作っといてなんですが、だいぶストイックなアプリだなと思います。僕はけっこう楽しいんですけど……特殊な趣味ではあるかもしれません。うーん、でも楽しめる人も全国にはそれなりにいると思うんだよなぁ。まぁまだ公開してから2週間なので、頑張って続けていきます。とりあえず僕は100万語読めそうです。1000万語くらい読んだら、リーディングについては困らなくなれるかなぁ。甘いだろうか。

いいなと思ったら応援しよう!

コメント

ログイン または 会員登録 するとコメントできます。
英語多読Webアプリ更新:一つのテーマを連続して読めるようにした|tama
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1