at backyard

Color my life with the chaos of trouble.

PythonでlocalStorageのmockを作ってみた。Fizz BuzzとToDoアプリの間に作るもの。

PythonでlocalStorageのmockを作ってみた

作ってみたものはこちら

github.com

作った理由は特になく、以前こちらの投稿で書いたlocalStorageのmockを作った際に、同じような実装をPythonで作れないものかと思い、作ってみたというだけになる。

shinshin86.hateblo.jp

なお、localStorageのmockを作ってみた際の記事については、DEVの方にもポストしている(英語)

dev.to

Fizz BuzzとToDoアプリの間に何を作るか?

f:id:shinshin86:20211107073626p:plain

プログラミング言語を学習する際に最初に書くコードとしてFizz BuzzとToDoアプリは有名である。

ただFizz Buzzを作ってからその後すぐにToDoアプリを作り始めるというのは、個人的には求められる技術的に飛躍しすぎている感もあり苦労することも多く、この間で作るのに良い題材はないか?と探ることも多かった。
(作るToDoアプリがWebアプリだろうがCLIアプリだろうが、単純にToDoリストとしてのロジック以外にも入出力の制御だったりデータの永続化に関する処理など様々な他の処理についても考える必要がある。まあ、そこまでいきなりやらなくても良いと言われればそれまでだし、そもそも自身の技術スキルがそこまでと言われてしまったらそれまでなのだが...)

そんななかlocalStorageのmockを実際に作ってみて、localStorageの仕様自体はとてもシンプルであり、実装するべき関数も少ないことから、localStorageのモックを作るというのはFizz BuzzとToDoアプリの間を埋める存在としてありなのではないか?と思った次第。

そんなわけで試しに今回Pythonで実装してみたが、やはり実装する規模としてもちょうどよくコンパクトに纏まっていて、テストも書きやすいこともあり、これは良いのではないか?という気持ちを強くした。

以前下記のポストでも書いたようにlocalStorage自体も少し変わった挙動をすることはある。

shinshin86.hateblo.jp

ただ、そのような細かいところは最悪目をつぶって実装してもよいのではないかと個人的には思う。
(READMEにその旨を書いておけば...)

また今回のように例えばPythonで実装した場合undefinedが返るケースでは None を返るようにする、など言語ごとの細かな変更点を考える必要などは出てくるが、それでもlocalStorage自体のコンパクトな仕様は言語学習の際のお題としても魅力的なのではないか?と思った次第である。

ちなみにこのノリでRustでもlocalStorageのモックを作り始めてみたが、コンパイラーに怒られまくって心が折れた。
が、Rustは焦らず少しずつ学んでいきたいところ。