質問: 実践的なモダン環境下でのサイト構築の勉強をしています。 現状でのベストプラクティスのようなものがございましたら、ご意見を頂戴させてください。 ### 現状 サーバサイドにrails、フロントサイドにreact・reduxの構成を取っております。 * サーバサイド 初回のアクセス時にイニシャルページを返すのみで、以降はajaxを通してjsonのやり取りを行っています。 イニシャルページはssrを行っています。 * フロントサイド fluxアーキテクチャとしてreduxを使用しています。 ### 動機 現在上記の環境でwebサイトの構築を行っておりますが、一人で開発を行っているため、 自信の持てない実装が随所に表面化してきてしまいました。 動くものはできても、それ本当に必要?といったような疑問が自分の中で頻出してしまいます。 各サイトが提供しているexampleや上記の構成で開発ができるreact_on_railsのexample等も 参考にしては見ましたが、やはりあくまでもexampleですので実践的側面に物足りなさを感じてしまいます。 そこで、実践的な滋養を高めるために何か良い方法はないかと探していた所、オープンソースであるマストドンに興味を持ちました。 マストドンなら所謂ライブラリの使い方ではなく、体系的にそれこそ実践的なwebサイトの実装を学ぶことができるのではないかと考えています。 ただ、盲目的にマストドンは実践的だ、複数のコミッターがいるのだから間違いないと考えてしまうのは危険だと思い、皆さんの意見を頂戴したいと思っています。 マストドンは実践的なwebサイトの勉強素材として適切でしょうか? また、他に良い方法がございましたらご意見を伺いたいです。 手っ取り早くとは考えておりません、しっかりとした知識を身に着けたいのです。
回答: Mastodonのソースコードはシンプルでキレイなので実装の勉強素材としては適切だと思います。 また、AGPLのため改変したソースコードが入手できるのも参考になります。 ピクシブ ドワンゴ しかし、Mastodonが実践的かと言えば違うと思います。シンプルさ、キレイさのために最適化していない部分が多くあり、元のソースのままでは大規模運用には耐えられないでしょう。 そのあたりをどのように最適化するかを考えるのは勉強になるかもしれません。 また、Mastodonに採用されているアーキテクチャは先進的というわけではないので、最新技術を学ぶことにもならないでしょう。 新しい技術は部品・機能の形で提供されていることが多く、一つの完成品として参考になるものはなかなかないのでMastodonを勉強することは回り道にはならないと思います。