Webサービスブートキャンプ2日目
この記事はぼくのあどべんとかれんだー2日目の記事です。
昨日の夜、勢いだけでぜんぶ自分のアドベントカレンダーを作って、動画投稿サービスを作るとか血迷ったこと言ってましたが、今日の朝冷静に考えると、やってしまった感(大変すぎる)を拭えなかったので少し軌道修正します。
最終的に動画投稿サービス作れたら大成功ですが、その前にhacker news的なサービスを目指して作りつつ、時間があればそこに動画投稿機能を追加しようという2段階ロケット的な作戦に切り替えます。1段目で終わっても小成功ということで、ありにしようという弱気な考えです。
ということで、まずはhacker news的なサービスを作るのを目指します。実装すべき全体の大まかな機能としては以下のような感じになると思います。
- アカウント管理
- 記事投稿
- コメント
- いいね
- ユーザのレベルみたいなやつ(ゲーミフィケーション)
- ランキング
- SNSシェア機能(オプション)
- 動画投稿(オプション)
で、まずはアカウント機能ですが、ここで今回のこの企画で挑戦してみたいことの一つとして、出来るだけサーバ実装しないでサービスを作るという目標を設定したいと思います。ぼく自身はもともとサーバサイドのエンジニアなので、サーバ実装する気まんまんでした。でも、最近はサーバレスアーキテクチャが流行ってきてますよね?ぼく的には、興味はありつつ普段の仕事の忙しさを理由に避けていたので、これを機会に少しそのあたりのキャッチアップをしつつ、今回のサービスに積極的に導入したいと思います。
Firebase Authentication
アカウント管理機能って実装めんどくさいですよね。メールアドレスとか個人情報だから気を使うし。その辺のデータを自分で持ちたくない。あとはいろんなSNSアカウントとも統合して扱いたい。などなどめんどくさいことこの上ないです。
なので、この辺はすべてクラウドサービスに任せましょう。ということで、利用するサービスの候補です。
- Amazon Cognito
- Firebase Authentication
- Azure Active Directory
どれを使うかですが、なんとなくAzureは使い慣れてないし、周りに使ってる人もいないので候補から外しました。で、Firebase AuthenticationとAmazon Cognitoで悩んだのですが、結果的にはFirebase Authenticationにすることにしました。理由は、普段AWSを使っているので、他のクラウドコンピューティングサービスを使ってみたかったのと、あと統合できるSNSアカウントとしてgithubが使えたことです(Cognitoでは使えませんでした)。今回はhacker news的なサービスを作ろうとしてるので、githubアカウントは使えたほうがいいだろうな思ってFirebase Authenticationにしました。
あと、ちょっとどうでもいい理由なのですが、AWSよりもFirebaseやGCPのほうがサービスのWebページのUIがいいなと思ったのも選んだ理由の一つです。そういうちょっとしたUIの印象って大事ですよね。
ところで、Firebase Authenticationって毎回打つのめんどくさいのですが、省略できないんですかね。。。
と、ここまで書いて今2日目の23時です。そろそろお時間なので、この辺で終わりにします。明日はFirebase Authenticationを使ってログイン機能を作れたらなと思ってます(やっと実装が始まる)。
このペースで作りきれるのかかなり心配ですが、がんばりたいと思います。
ではまた明日。