1. pokotyan

    Posted

    pokotyan
Changes in title
+はてなブログの歴代一位をまとめて見れるサイトを作った
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,30 @@
+# はじめに
+はてなブログのテクノロジーカテゴリをよく見ています。
+今までの歴代一位がどのようなものだったか気になって一覧で見れるサイトを作りました。
+
+https://hatena-hotentry.netlify.com/
+
+# 使った技術
+- serverlessFramework
+- go
+- goquery
+- lambda
+- vue
+
+## バッチ
+はてなブログをスクレイピングするコード(go)を書き、ServerlessFrameworkを使ってlambdaにアップロードしています。このlambdaは毎日定期実行するようにしています。
+`serverless.yml` にcronを定義しておけば、cloudWatchを使ったlambdaのスケジュール実行を設定してくれるのでお手軽にバッチ処理が作れます。
+
+参考:https://dev.classmethod.jp/etc/serverless-framework-lambda-cron-execute/
+
+スクレイピングしたデータを保存する場所としてはfirebaseのRealtimeDatabaseを使いました。
+
+初めはCloudFirestoreの方に保存していたのですが、保存しているドキュメント数が5000近くになり、無料プランでの一日のドキュメント読み取り数が50000だったため、10回全件取得すると、その日はデータ取得ができなくなる状態になりました。
+そのため、RealtimeDatabaseに乗り換えましたが、NoSQLにデータを保存する際の設計がわかっていれば、CloudFirestoreでもうまくできたような気がします。
+
+## フロント
+vueを使いました。vue-cliで雛形を作り、それをいじって作っています。
+デプロイにはnetlifyを使っています。
+
+# 最後に
+goとvueを勉強するために作りましたが、こういう小さいアプリケーションを色々作っていきたい気持ちです。