作業してた。
puppeteer
スクレイピングするためのライブラリを選定してた
これまではseleniumを使っていたのだけど、seleniumを使う場合はセットアップが結構面倒で、dockerでやろうと思うと更に面倒なのがあまり好きじゃなかった。他の選択肢を探していてpuppeteerを見つけた
puppeteerならyarn add puppeteerでヘッドレスブラウザも合わせてインストールしてくれるらしくかなりセットアップが楽
コードもかなり書きやすかった。(seleniumのversionいくつだか忘れたけど、新しめのやつでやったときはドキュメントも分かりづらく死ぬかと思った。puppeteerの開発はグーグルらしい?ので流石だなぁと思った)
seleniumはセットアップが面倒だということでテストに使うのも面倒だと思ってやっていなかったけど、puppeteerなら本業のテスト作業のときに取り入れても良いかもと思った。テスト作業ちょうど終わっちゃったので、また次回にはなるけど(そして次回のタイミングでは忘れてそう)
スクレイピング自体はとりあえず実装終わった。この辺真面目なので一応robots.txt確認とリクエスト感覚は調整しているのであしからず
nextjs 13
しらんうちにベータ版になってた。
従来のnextjsだと、サーバーサイドでレンダリングしたい部分はgetServerSidePropsとかでやる必要があったのだけどversion13からは普通にページ作成したら基本はサーバーサイドでのレンダリングになるようになってた
useStateなどでクライアント側で状態管理をする必要がある場合は'use client'と記述するだけでいいのでかなり楽
部分的にCSR,それ以外はSSRという形で実装するのもめちゃくちゃ簡単になっており(コンポーネント分割すれば良い)、結構いい感じだなと思った。
CSSフレームワークは迷ってた。emotionがおすすめという話をよく聞くのだけど、ちょっとめんどいよなぁと思った
tailwindcss + daisyUIを使うことにした。これが良い選択なのかはわからないけど色味が作りたいサイトのテーマに合ってそうなやつがあったのでこれにした。
SSGしたい場合はnext buildでhtmlファイル作成してウェブサーバー等でhtmlに飛ぶようにするっぽい?よくわからん、大量にページ作成する予定なのでhtmlファイル都度作ったら使う予定のサーバースペック的に死亡する未来が見えるので使わない気がする
supabase
ログイン機能の作成、めっちゃ楽だった。Sign upは今回作りたいサイト的に別にいらんので作ってないけど、作るとしてもかなり楽だと思われ
google ログイン等も楽に作れそうだし、良いねという感じ。firebase使ったことない勢なのでこういうの便利なんだなぁって思った。
nextjsでクライアントからsupabaseに直接リクエスト飛ばせるようにしたらAnonキーとプロジェクトのurl丸見えになるのでセキュリティ的にどうなんだこれと思ったのだけど、別に問題ないらしい。Anonキーは匿名権限なのでAnonキーで見れる範囲を頑張って限定化してねという話らしい
ログイン機能だけ作ってスクレイピング実装に移ってたので、これからDB色々作ったりする予定。そのときにセキュリティ意識頑張る
---
まだまだやらなきゃいけないことがあるので完成が遠いなぁと思ったりした。ただなんかもう何が何でも稼いでやるぜ!みたいな気持ちがなくなってきており、暇つぶししつつ技術力高めて、小銭得られたらラッキーぐらいでええか。。という気持ちになってきた
長らく金銭的に不安定な状態が続いていたからこその飢餓感みたいな感じで、今は手に職も付いたし、仕事も大変なときはあるけど楽なときは非常に楽だしで悪くないので不満もないというそんな感じ。仕事なくなったとしても当面生きられるだろみたいな貯金もいつの間にやら出来てたし
QOL重視でのんびりやればいいかとなった、気が変わらなければ当面このサイト作ってる気がする。