質問: 現在ジモティーのような求人・不動産・売買等が個人間でできるサイトをDjangoを用いて開発しています。現段階では完成は程遠いものの全体でみると50%程度はできあがってきたというところです。 しかし最近になってReactによるフロントエンド開発について知る機会があり非常に興味をもちました。というのもフロントエンドに関してjQueryで直接DOMをいじるという状況が生じてしまい、できればこれを避けたいと思っていた矢先、Reactを使えばjQueryを用いずにDOMをいじることなく、かつリッチな表現が可能になるということを知ったためです。 そこでいろいろと検索をかけて、今まで触れることのなかったDjango REST Frameworkも使ったAPIの作り方や、JWT、またReact+Reduxも用いた簡単な掲示板の作り方をYoutubeで見たりしていました。 しかしここでSSRについて知ってしまいました。サーバーサイドレンダリングをしない限りSEOや初期表示速度に大きな影響が出るということについてです。 Googleに関しては今はインデックスしてくれることや、そもそもSSRはしなくていい等、これについても様々な情報をチェックしました。(したつもりです。。。) そこでみなさまに質問があります。以下の選択肢の中でどれを選択するのがベターでしょうか? 1Reactを用いずにそのまま開発して、そのまま本番で運用しながら必要があればReactに移行する。 2フロントエンドは全てReact+Reduxで開発して、SSRは必要ならばあとから対応させる。 現状で私に与えられた選択肢は上記の2つだと思います。 本音を言うと、Reactを用いて開発したいです。jQueryでゴニョゴニョするのが今まで違和感でしかなかったので。でもその場合、2のSSRについての課題が生じるわけですが、そもそもSSRをあとから導入することなんて可能ですか?Reactについてまだあまり詳しくないので詳細まではわからないのですが、SSR導入は初期段階から念頭にいれて設計するものですか?それともあとからでも導入しようと思えばできるものですか? あともしReactを用いた開発を行うのであればバックエンドとフロントエンドは完全に分離したいので、Djangoのテンプレートやルーターを用いたハイブリッドな仕様は避けたいと思っています。 長々とすみません。言いたいことがうまくまとまっていませんがどうかご教授お願いします。
回答: 何を優先するかによると思うので答えはないと思うので個人的な意見ですが1を勧めます。 いち早くリリースを目指しましょう。 新しい技術を覚えて、それを使って試行錯誤をやり直してとやっているとリソースがつきます(時間・お金・やる気などのことです)。 リソースが尽きる前にリリースするのが重要だと私は思います。 運用してこそ得られる知識の獲得も早くできます。リリースが遅れればその機会が失われます。 後からの変更は十分できると思います。 やりやすいように準備をしておくということはあると思いますけど。 既に認識されている通りバックエンドの部分はUIと切り離した部品にしておいた方がいいです。その部分の自動テストも書いておくと変更が必要になった際にものすごく役立ちます。 勉強は並行してできるのでやっていくのがいいと思います。 今はこう書いているけど、ここの部分はこうできるなという想像を予めしておくことですね。