今日の記録 2020/5/22

仕事

ひとまず SQLite を使ってデータを永続化した。初期化時の DB からのデータの取得は Next.js の getStatickProps が knex を使ってクエリを発行するようにした。その時、様々なページで更新した時に対処するために同じような処理を全部のページでやる必要があるのだが、どこに何という名前で定義していくべきか困った。困ったが結果として Vercel の Next.js のチュートリアルで /lib 以下に関数を作成していたのでこれを真似することにした。
 API の呼び出しなどは axios を使って特に問題なくできたのだが、API を呼び出して DB を更新したと同時に、クライアント側でも同期を取ってリアルタイムにブラウザ内の表示を変更したい、となった時に、 Vue の時は API 呼び出しのレスポンスを元に、Vuex の State を更新することで実現していた。React の場合も同じように API の実行と同時に状態を更新する、という手段でいいんだろうか。またその場合は、React の状態管理は何を使うのがベターな感じになっているのかという疑問でつまった。調べたところ、選択肢として Redux,  React Hook, Recoil というものがあるようだったので、明日以降はどれ使うべきかを調べたい。

読んだ

・GEB - P141 ~ 147
再帰について。前回の対話についてから始まり、コンピューター、数学、音楽、言語における再帰性について。また、言語を例に再帰というものを図示(再帰的推移図)することによって、どのように無限に続きそうにみえる再帰定義が停止するかを説明している。
 この本を読んでいると、どうしても音楽に関する話については何の経験や知識もないため、ぼんやりとした理解になっている。(例えば転調というものがこれまでの話から原理は分かっていても、それを聞いた時の感覚というものがどういうものなのかは分からない。)書いてから思ったが、この本に出てくる曲名で検索して聴いてみるのがいいかもしれない。

・みんなのデータ構造 - P113 ~ 118
二分木について。用語の定義から、二分木の大きさなどについての再帰的な定義方法について。
 データ構造の中で一番好きなものなので、この章は特にしっかり読む。今日の内容としては既知のものだったので復習という形になった。せっかく Erlang を並列してやっているので、読書の時間を長めにとってアルゴリズムを実装してみるのもいいかもしれないと思ったので、明日からやってみる。読書する日と、その範囲のものを実装してみる日を別々にする。

・安全な Web アプリケーションの作り方 - P160 ~ 166
SQLインジェクションの防御方法と、静的プレースホルダと動的プレースホルダの違いについて。

・Goならわかるシステムプログラミング - P338 ~ 341
SSH について

・システムの科学 - P75~79
いまいちよく分からなかったが、ある無意味綴り(意味を持たない羅列?)を覚えるという実験において重要なのは、何度書いたかではなく、それをどのくらいの時間書いたかであるという話。ひとかたまりを固定する(覚える?)のに必要な時間は約 8 秒というのが著者の経験から言える、らしい。

・プログラミング Erlang - P127 ~ 130
Erlang プロセスが終了する時について。終了したプロセスは(killシグナルを発行するようになっていなければ)メッセージを別なプロセスに送って、その受信したシステムプロセスであればそれを処理できる。別なプロセスなので、別なマシン上のプロセスであっても遠隔処理が可能。

・英語 - 一億人の英文法とDuo 4ページずつ

この記事が気に入ったらサポートをしてみませんか?