こんな疑問に答えていきます。
こんにちは!よんりん(Yonrin)です。
当記事を書いている私は、デジタル技術のコンサルタントです。
この記事を読めば、個人でプラットフォーム開発をするときにどんな機能をつくらなければならないのか?プログラミング不要で簡単に機能を実現する方法はあるのか?について、よく分かります。
コツコツですが、確実に前に進んでいます。
いつかこのプラットフォームが、世の中に少なからず価値を生み出して、育っていてくれればという夢を持っています。
これまでの記事を読まれていない方は、そちらもお願いいたします。
プラットフォームの開発の計画【個人開発】│Yonrin Blog (consultantlife.net)
プラットフォームの基本機能とは?
前回までの記事で、プラットフォームの計画、全体的なコンセプトをまとめました。
コンセプトがあって、なんとなくのプロダクトがあれば、そこに機能をつけ足していくところから始められます。
まず、私が実際に受けたUdemyのオンライン講座では、以下の状態のプロトタイプが仕上がりました。
ブログSNSのようなものを作る講座なので、ひと通りの機能がそろっています。
ユーザの登録、ログイン・ログアウト機能
コンテンツの投稿(画像投稿含む)、編集、削除機能
コンテンツのお気に入り登録機能
管理者用のユーザ管理機能
この段階では、言語(PythonでDjangoというフレームワークを使う)についての知識がないので、正直どのように実現されているのかはよくわかっていないのですが、とにかく目の前に動くものがある状態。
ここに機能を付け加えていきます。
プラットフォームに追加すべき基本機能とは?
上述の機能を見ると、あれ?これ以上に追加すべき機能なんてあるの?と思いますよね。
ひとつずつ、どんな機能が必要になったかを紹介していきます。
意外と細かく考え出すと、色々ありますよ。
ユーザの登録、ログイン・ログアウト機能
ユーザ名とパスワードを入れて、ログイン。
そしてログアウト。
最初はこれだけあればよさそうに思いますよね?
ただ、実際にプロダクトとして動いている、ログイン・ログアウト機能ってどんなものでしょう?
実は、以下のような点にもしっかり対応しています。
パスワードを変更したい場合は?
パスワードを忘れた場合は?
登録はできるけど、削除は?
などなど。
どうやって作ればよいのか、わからない。
コンテンツの投稿(画像投稿含む)、編集、削除機能
コンテンツも、基本機能はそろえられても、色々出てきます。
投稿の編集、削除については、投稿者しかできないというアクセスコントロールは備わっています(オンライン講座での実装内容に含まれています)。
コンテンツの登録を特定のユーザに制限するには?
コンテンツを削除した時、画像も削除できる?
コンテンツ作者のユーザアカウントが削除された時、コンテンツはどうなる?
ログイン前にコンテンツが見られるかどうか、は登録のインセンティブに関わってきます。
登録のインセンティブは、もちろんこれだけではないですが。
ログイン前にコンテンツを見られる → 登録なしで使う
ログイン前にコンテンツを見られない → 登録したら何が見られるのかがわからないので登録しない
折衷案として、私が作っているプラットフォームでは「チラ見せ」しています。
登録すれば、全部みられるけれど、登録しなければ「ここまでよ」、という制限。
コンテンツのお気に入り登録機能
お気に入り機能は、プラットフォームにとって重要です。
プラットフォームのユーザ同士のコミュニケーションにつながりますからね。
お気に入りにしたコンテンツは、どうやって表示する?
お気に入りを獲得したコンテンツ作者にはどうやって表示する?
お気に入り登録をしたユーザがアカウント削除した場合、お気に入り登録を消す(数を減らす)?
オンライン講座では、お気に入りの登録と、コンテンツごとのお気に入り登録数の表示にとどまっていました。
ですので、このお気に入りの情報を使ってどのようなものを作るか、という課題が残っています。
管理者用のユーザ管理機能
Djangoを使うと、管理者機能が特に何もしなくてもついてきます。
管理者用の画面から、ユーザを管理したり、ドロップダウンメニューを管理したりできます。
ここはユーザの目に触れるところではないので、特に急いで追加すべきものはない気がします。
おいおい、便利になる機能を追加していければという感じです。
たとえば、お知らせ画面に表示するお知らせメッセージをこの管理機能で追加できるようになったりすると便利です。
プラットフォームの基本機能に機能追加するときに気をつけることは?
いろいろ考えだすと、作っているうちにいろいろ追加していきたくなります。
ですが、まずはサービスの立ち上げ、ということを最優先。
追加開発はできるだけ必要最低限に絞り込みたいところ。
あまり複雑なものを最初から必須要件にしすぎないことも大事です。
たとえば、ユーザの登録、ログイン・ログアウト機能のところでは、アウトソースの考え方ができます。
Google認証を使えば、ほとんどの問題は一気に解決しますね。
GmailなどのGoogleのサービスを使っていない人には面倒かも知れませんが、どのみち私のプラットフォームに登録処理する手間を考えると、Googleでアカウントを作るのも大差ないですからね。
プログラムを書かなくても良いので、かなりラクができます。
まとめ
個人でプラットフォーム開発をするときにどんな機能をつくらなければならないのか?プログラミング不要で簡単に機能を実現する方法はあるのか?について、まとめました。
まずは、オンライン講座で土台を作れば、周辺機能を追加していくことは、ゼロから作るよりも格段に難易度が下がります。
学習速度も圧倒的に速いことを体感しました。
どんな部分が自前で作らなければならなくなるか、その辺りを計画する際の参考になれば幸いです。