プロジェクトの理論を思い出し、それを私たちの現実に適用して、マネージャーと私は次のステップを開発しました。
- 機能の収集と発明
- アーキテクチャの作成
- チーム検索
- UX作成
- デザイン作成
- 開発
- 展開と起動
最初の2つの段階は時計仕掛けのようでした-想像力と経験の利点は、私たちを占めることではありません。 3番目の段階はより困難でした。結局のところ、良い段階であり、現在、専門家を見つけるのは困難です。
4番目の段階では、速度が低下しました。すべての利害関係者を考慮に入れていないことがわかりました。結局のところ、それぞれがUXについての独自のアイデアを持っています。
したがって、アーキテクチャがあり、新しいチームがありますが、UXはありません。 行き止まり。 どうする?
当然、別のプロジェクトを作成してください!
リソースがアイドル状態にならないように、また新しいチームが協力して作業できるように 、 VseVideo.ruという緊密な機能を持つ別のプロジェクトを作成することにしました 。
VseVideoは、オンライン映画(現在)の映画を集めたものです。 将来的には、シリーズおよびオンラインブロードキャストを集約することも計画しています。
アイデアは非常にシンプルでした-たくさんの面白い映画があります。ここには、これらの映画を合法的に見ることができるオンライン映画館がたくさんあります。 問題は、映画館によって映画のセットが異なることです。一部の映画館では無料で広告を見ることができ、別の映画館では広告なしで49を見ることができます。
さて、プラス、私は自分の見た映画のベースを持って、そしてこれを友人と共有したいと思います。
もちろん、このアイデアは独創的ではありませんが、価値のある実装は見つかりませんでした。 したがって、この惑星で何度も起こっているように、私たちはすべて自分でやることに決めました。
彼らは、「APIファースト」の原則に従って開発を行うことにしました。 つまり、最初にAPIドキュメントを開発して実装しました。
私は長い間このアプローチのファンであり、すべてのプロジェクトにそれを適用しようとしています。 マルチスクリーンの時代では、ユーザーはまったく異なるデバイスやアプリケーションからサービスにアクセスできます。この特定のデバイスでは、ロジックとプレゼンテーションを最大限に分離できます。 さらに、追加のユーザーインタラクションポイント(インターフェイス)の開発は簡単というよりも簡単です。ここでは、APIの説明、設計、アプリケーションの作成について説明します。
この原則に従うと、Webインターフェースもモバイルなどと同様に通常のアプリケーションですが、それについては以下で詳しく説明します。
そのため、Djangoを使用して、Django Rest Frameworkをインストールし、サービスのAPIを実装しました。 DBMSとして、PostgreSQLを使用することにしました。
そして、ここで最初の間違いが明らかになりました-Djangoを使用してベアAPIを実装しないでください。 実際、Djangoの機能の最大10%を使用し、Django Rest Frameworkでは、ドキュメントにあるものを詰め込むことができました。
残念ながら、何かを修正する時間が残っていません。
私たちのコンセプトでは、Webインターフェースは別個のアプリケーションであるため、Jadeテンプレートを使用してNodeJSで実行することにしました。
ここで判明したいくつかの間違いは、まず、APIサーバーとWebサーバーの間でHTTPを介してリクエストを追跡するのは非常に高価です。 第二に、ヒスイテンプレートのコンパイルは非常に高速ではありません。
最初の間違いを単純に決定しました-HTTPの代わりにZeroRPCを使用し始めました。 ボーナスがあり、バランスを取る可能性がありました。
額の2番目のエラー-memcachedの通常のキャッシュを解決しました。 Jadeテンプレートのプリコンパイルは、現在の実装では常に可能であるとは限らないことがわかったため、新しいプロジェクトでは、この非常に必要な機能があるフォークを行います。
実装中のバグの大部分は、シネマロボットパーサーによって引き継がれました。 なぜ起こったのか、まだ分析中です:-)
21世紀を迎えて以来、このサービス用にかなり強力なフロントエンドが作成されました。 退屈な詳細は説明しませんが、メインのCoffeeScriptフロントエンドファイルには1300行以上あることに気付くでしょう。
これが内部にあるものです。
そして、これが私たちが外に出たものです:
したがって、結果として得られたもの:
まず、私たちの意見では、興味深く有用なサービスです。 もちろん、まだやるべきことがたくさんあります。多くのことはバグがありますが、これは時間の問題です。
次に、いくつかの技術理論をテストし、将来のプロジェクトで間違いなく使用する最良のソリューションを見つけました。
第三に、そして最も重要なことは、誰もが他の参加者の強みを知っている確立されたチームを得たことです。 さらに、チーム全体が有用な経験と知識を増やしました。
今、私は絶対に新しいチームを作成する最善の方法は小さなプロジェクトを実装することであることを確信しています。 たとえば、 AllVideoなど。