スケーラビリティのためにいつ設計しますか?
-
25-10-2019 - |
質問
いつかスケーリングの能力が必要になることを願っています。私にとって重要な質問は、今すぐこの不測の事態のために設計するための努力を投資すべきか、そこに着いたらその橋を渡るべきですか?
私はこれらのことがどのように進むかを知っています:誰もが自分のプロジェクトが拡大するかもしれないと考えていますが、ほとんどのプロジェクトは決してしません。
後の段階でより簡単にスケーリングできるようにする一連のベストプラクティスはありますか?
明らかに、スケーラブルなWebサイトの経験はありません。現在、私はScala / Playに傾いています! / akka。 Akka Webサイトから収集できるものから、この種のプロジェクトに非常に適しています(単一のマシンで開発を可能にし、任意の数のマシンにスケーリングできるツールセットを提供するという点で)。
このプロジェクトは、ユーザーの相互作用(コメント、メッセージ、投票など)を含む消費者向けのWebサイトです。ただし、主な焦点は編集です。 Facebookではありません:)
これらのテクノロジーのいずれにも経験されていません(主にPHP、AS3、Objective-Cからの経験)は、おそらく今、私のプレートに少し多すぎます。しかし、私はすぐにそれに行くつもりはありません。 ScalaとPlayを使用して経験を積む必要があることを知っています!最初。
どんなアドバイスも大歓迎です。
解決
モデルを設計し、そのためのユニットテストを作成してから、プレゼンテーションレイヤーをその上に設定することから始めます。モデルが賢明である限り、あらゆる数のマシンに拡大するのは簡単です。 JPAサポートのビルドに行くと、どのDBにアクセスするかという質問にいつでも対処できます。
当面の間、あなたはあなたの皿に大きなものがあります。したがって、デザインが一貫して賢明であることを確認してください。スケーリングは問題になりません。
他のヒント
Play!あなたがスケーリングする必要があるとき、それは邪魔になりません。 exxkaが言うように、モデルを清潔で賢明に保ちます。これは、複雑さの利点を維持するのに役立ちます。
コードをリファクタリングする必要がある場合、またはその重要な部分を書き直す必要がある場合、失敗とは考えないでください。これは、皮膚を脱ぐヘビのような成長プロジェクトの自然な部分です。
必然的にあなたがプロジェクトを書く過程で学ぶことがあるので、今すぐそれらをすべて予想しようとしないでください。