Published on

2022年1月後半〜2月前半の作業状況

Authors

1 月後半〜2 月前半の状況

1 月後半からはコロナ第 6 波の影響で家にこもりがちとなり、作業時間は比較的多く取れる時期となりました。

年始から取り組んでいる「30 日でできる!OS 自作入門」も不定期に取り組んでおり、残り 2 章を残すのみとなりました。冬休みの自由研究として始めたのに、春休みに差し掛かりそうなのは気にしない。

また今年はインプットの年にしようということで、BOOX Leafを購入しました。今読んでいるオライリーのGoogle のソフトウェアエンジニアリングがなかなか長大(684 ページ)なので、新しいデバイスを使うウキウキ感を弾みにして読み進めていきたいと思います。

開発状況

認証システムの変更

マジックリンク認証の落とし穴というタイトルで去年記事を書きましたが、この問題への本格対応となります。

Firebase は他にもFirebase Authentication で Unable to process request... エラーに悩まされている話の記事中にあるような問題も抱えているため、早めに乗り換えたいと思っているところでした。

今回はAWS Cognitoを用いることにしました。メールリンク認証も廃止し、パスワードでの認証となります。

また、これを機に Twitter, Facebook ログインを廃止することにしました。Android/iPhone ユーザにとっては Google/Apple ログインさえあれば十分ですし、Twitter/Facebook ログインをサポートすることで不必要なメンテナンスリスクを負う必要はないと考えたためです(Twitter/Facebook ログインは電話番号でアカウント登録をするとメールアドレスが取得できないのですが、そのケースに対応する必要がなくなるので、処理がよりシンプルにもなります)。

メールリンク認証の際に、メール配信に長い時間がかかっていた問題も、AWS を用いることで解消しました。よりログインしやすい仕組みが整いつつあります。

DB 移行

Firebase Authentication を利用しなくなったことから、DB も別サービスに移行する必要が出てきました。

去年 11 月の記事で DB 選定した通り、今回は MongoDB を採用しています。レスポンスがかなり高速で、結果ページ描画にかかる時間も削減できています(マイページ、管理者ページ以外は事前に HTML データを生成しているため、あまり効果は感じられませんが…)。また、セキュリティも大きく向上しています(詳細については割愛します)。

電話番号を parse するライブラリ

jp-phone-parserという、日本の電話番号を部分文字列でもデリミタ付きで parse するライブラリを作りました。

クエリで指定する、または React component として使うのであればCleaveがあるのですが、現在Chakra UIを採用していることもあって、できれば単純な parse ライブラリが欲しいなと考えて作りました。超軽量なので気に入っていますが、先述のような超便利ツールがあるので、自分のようなエッジケースが当てはまる人用かなと思います。

利用されている全電話番号パターンをテストしているので、利用自体は問題なくできます。よろしければお使いください。

2 月後半の予定

現在本業を除いて 3 つの開発プロジェクト(auditorium, RANDOM SOUND COLLECTIVE, 非公開案件)に参画しているのですが、後ろ 2 つが一旦の区切りを迎えているので、今は auditorium に専念できる状況です。

昨年(の特に後半)はなかなか auditorium に本腰を入れることができなかったので、今年はしっかりと取り組んでいければと思います。