久しぶりの更新です。
せっかくのゴールデンウィークですが、外出もせずテレビを見ながら過ごしています。
少し余裕ができたのでプログラムをでも作って見ようかと思います。
概要
最近バックエンドサーバとフロントアプリを別々に作成して、できるだけ密結合を省きたいと思います。(コロナ的にも密はだめですね!)
バックエンドはAPIサーバとして稼働し、リクエストを受け取り、何らかの処理を行い結果をJsonで返し、フロントエンドはリクエストを行い、戻ってきたJsonによって表示や動作を変える。という開発スタイルを目指しています。
なぜバックエンドとフロントエンドを分けるかと言うと、今はいろいろな開発のスタイルが入り乱れていて、これがベスト!というものが見つからないからです。
フルスタックのフレームワークと言われるものはいくつかありますが、それに頼リきって開発すると、開発自体は楽ができます。でも、いつかそのフレームワークが廃れるときが来たときに、それまで作ってきたものすべてがだめになってしまう危険があります。特に最近はいろいろなフレームワークがでてきていて、どれが最良かはわかりづらくなってきているのも原因です。
そこでバックエンドとフロントエンドをわけで、その間のデータのやり取りはJWT(JsonWebToken)でやり取りすればバックエンドも自由、フロントエンドも自由という環境にを作ることができると考えています。
今は流行りのフレームワークを使って開発したいと思ったときに、インターフェースに則った開発さえ行えば言語は何でもいい!ということができます。PhpやJava、Go、Python、Rubyなど好きなもので開発ができるようになれば今後出てくる高性能なフレームワークに乗り換えることも簡単にできるようになります。
フロントエンドもReact.jsやVue.js、iPhoneアプリやアンドロイドアプリ、ElectoronなどのPCデスクトップアプリなど、様々なフロントエンドに対応しやすいので、今後の開発スタイルとして採用していきたいと思います。
今回作るのは
バックエンドはPHPのlaravel6
フロントエンドはVue.jsのNuxt.js
を組み合わせたものにしようと思います。
どんなバックエンドで作るとしても認証の仕組みは最低限必要になると思います。
ログインしてマイページを表示する様な機能は常識的に必要だと思いますので、最初に作るのは
JWTを使った認証の仕組みを作ろうと思います。
バックエンドに必要な機能としては
- ユーザー登録/メール認証(Regist)
- ログイン(Login)
- ログアウト(Logout)
- ユーザー情報更新(Update)
- ユーザー情報参照(Me)
- パスワードリマインダー(Reminder)
後半ではフロントエンドの開発としてNuxt.jsを使ったプログラムも作ります。
全部で10回くらいに分ける予定です。(乗ってきたら変わるかもw)
コメント