1つまたは複数のエリアに限定されない、ユニバーサルサービスアグリゲーターを作成するというアイデアは、長い間空中にありました。 私たちのチームはチャンスを逃さず、そのようなアグリゲーターを立ち上げました。 その結果、薬から自動車部品の供給まで、あらゆるリクエストに応えるパフォーマーを見つけることができました。
私たちのチームの道は容易ではなく、明らかに、完全とはほど遠いものでした。 今日、私たちは、ビジネスと個人の両方のクライアントの問題を解決することを目的としたポータルを開発するためのレシピを共有したいと思います。
自問してください
アイデアが生まれた後、あなたはすでにあなたがそれに取り組むことに気付いたので、自分自身にいくつかの質問をしてください。 収益化、販売促進、販売モデルの通常の商業的なニュアンスに加えて、これらは開発で使用される技術の選択の基礎を形成する技術的な問題である必要があります。 トレーニングの3つの重要なブロックに注意を払う必要があります。
ビジネス要件の作成 -サイト、アプリケーション、ソフトウェアを解決するために設計されたユーザータスクのセット。 何よりも、これらが明確に記述されたプロセスであり、当事者と相互作用のメカニズムを示している場合。 たとえば、私たちにとっては次のように単純化されていました。
パーティ1.サービスの顧客-ディレクトリから入力されたフィールドとオープンフィールドを含む特別なフォームを使用してサイトにリクエストを残す人。
パーティ2.請負業者-受信したアプリケーションに反応し、注文執行条件(価格、数量、条件、その他のパラメーター)を送信する人(会社)。
プロセス:顧客はパフォーマーのリストから最適なオファーを選択します。
このようなスキームを確立すると、システムに実装する必要があるものを理解するのは簡単です。 例を見ます:
- 個人、会社-会社カード、個人カード、認証、承認
- サイト上のアプリケーション、アーティストのオプション、選択-内部追跡システム、メールクライアント
- サービス、リスト-完成したディレクトリ
- リクエストの作成-サービスに応じてさまざまなフィールドを持つフォームをリクエストします
- 追跡要求、選択、応答-個人アカウント、アプリケーションと応答の履歴。
これは、ビジネス要件を記述するための非常に単純化されたプロセスです。 実際、すべてを細かく細かく処理し、図を作成し、重要なポイントと重要でないポイントに注意することが重要です。 ビジネス要件の説明と将来のプログラムのスキームの構築に関するそのような作業の過程で、原則として、過剰が大幅に削減され、それが開発をさらに損なう可能性があります。
ユーザーインターフェイスの要件を収集します。 将来のプログラムの基本的な機能を知っていれば、インターフェイスに含めるブロック、それらがユーザーと相互にどのように相互作用するかを推測できます。 この段階では、企業は色、スタイル、フォントに注意を払いすぎることがあります。 これらは確かに重要な要素であり、プロのデザイナーとデザイナーはそれらに取り組む必要がありますが、当面は、他のものがより重要です-使いやすさ。 ユーザーのアクションを再現し、シーケンスを設計し、プログラムコンポーネント間の相互作用のロジックをシミュレートします。 原則として、開発者はこのために多くのサービスを利用できますが、UMLダイアグラムを使用することもできます(多くの場合必要です)。 ただし、プログラミングに関与していないが、視聴者と市場を知っている人が隣のデザインに参加する場合は、マーカーボードとフリップスティックが最適です。 最初の段階では、すべての詳細を収集する必要があります。UMLが待機します。
プログラムのアーキテクチャを決定します。 この段階で、バックエンド、フロントエンド、およびレイヤーが設計されます。 プロジェクトの計画負荷に基づいて、フレームワークとDBMSが選択され、労働リソースが計画されます。
Bonjoin開発を開始するためのツールキットを選択するとき、いくつかの考慮事項から進めました。
- 私たちの開発チームは多くのプログラミング言語を話しますが、柔軟で絶えず更新されるアプリケーションのために、PHPを好みます。
- プログラムは、多くの申請書を紹介する予定でした。 すべてが私たちが考えていたよりも深刻であることが判明しました。それは冗談です。現在、カスタムWebサイトから自動車部品や観光まで、サービスには22のまったく異なるセクションがあります。 そして、この数は毎月増加しています。
- 高度なカスタムフィルターが必要になります。
- ユーザーデータとパスワードが保存されるため、ハッキングに対するセキュリティと抵抗が必要です。
- メールクライアントと便利な統合が必要です。 ちなみに、私たちはAmazon Simple Email Service(SES)を選択しました-そのインフラストラクチャは、大量の手紙を送信するという観点から最も便利であると思われました。
- システムを絶え間なく深く改善する能力が必要です。システムは絶えず開発されており、その時点では最終状態について明確なビジョンを持っていませんでした。
- CMSはどれも私たちに絶対にふさわしくなく、サイトの管理性を最大限に確保したいと考えています。
- 私たちはjQueryが大好きです-そのシンプルさ、DOM要素への簡単なアクセス、およびAJAXを操作するためのAPI。
- インターフェイスはシンプルで簡単です。
- パフォーマンスは私たちにとって重要です。
私たちは、さまざまなフレームワークの可能性を長い間研究し、主張して、1つまたは別の楽器の支持者の議論に耳を傾けました。 最終的に、選択は落ちました...
... Yii。 それから最初のもの。
それはバランスのとれた情報に基づいた決定でした。 このフレームワークには多くの質問がありましたが、名前の由来の1つのバージョンに従ってYiiだけがほとんどの質問に答えました。「はい、そうです。」 それで、この特定の開発ツールに私たちを惹きつけたのは何ですか?
- Yiiは、展開速度、サポートの安定性、および継続的な変更を提供しました。 さらに、ロシア語と英語の両方で非常によく文書化されています-開発チーム全体がフレームワークを使用することの微妙な違いを理解できました。
- 当社のサービスは、ユーザーデータの承認と保存を含むポータルとして構想されました。 そして、このYiiは私たちを大いに助けてくれました。 厳格なセキュリティアルゴリズムにより、Cookieの盗難やSQLインジェクション(SQLインジェクション)から確実に保護されます。 これまでのところ、保護装置を自分で追加する必要はありませんでした。
- Yiiのクライアント側は、シンプルで人気があり、愛されているJavaScriptライブラリであるjQueryを使用します。
- Yiiは、入力データの検証など、フォームの作業を優れた方法で実装および文書化しました。
- Yiiはチームワークに不可欠です。 開発者向けの優れたアクセス制御システムを備え、フレームワークディレクトリの共有を提供します。
- コンポーネント構造とキャッシュのサポートは、将来、フォーラム、コメント、およびエグゼキューターによるフィードバックを処理するフィードバックシステムの両方を実装できるソーシャルサービスポータルの優れたソリューションと思われました。 さらに、Yiiは他のPHPフレームワークやサードパーティアプリケーションのコードとの互換性があります。
- このフレームワークはPHPの機能を大幅に拡張し、コンポーネントを備えた多くのライブラリは、ビジネスアプリケーションの開発用に簡単に作成されます。 実際、各コンポーネントは拡張可能として使用できます。
- 最後に、Yiiはテストに適しています。テスト環境は高度にカスタマイズ可能で、単体テストが実行され、エラーログによりデバッグが容易になります。
柔軟で生産的でオープンソースのフレームワークにより、 Bonjoin Webポータルをできるだけ早く作成してデプロイできました。 現在、ユーザーインターフェイスには常に改善が必要であるため、フロントエンドに注目しています。
次は?
現在、私たちはYii2を積極的に研究しています。前任者よりも強力です。 私たちは新しい課題に直面しており、既存のプロジェクトをさらにいくつかの方向で使用したいと考えています。
Bondjoyneは、税務および支払いの会計、中小企業の人員引当金管理、スタッフのアウトソーシング、パートナーおよびディーラーネットワークのプラットフォームの割り当てなど、多くの機会を実現する多機能ポータルにする予定です。 明らかに、これらのタスクとビジネスプロセスには、Yii1から最高のものを保持するがワゴンの車のように異なる完全に異なるフレームワークが必要です。
その結果、プログラムのアイデアを実現しようとする人々に役立つルールを策定しました。
- プログラムの最終状態を予測することは不可能です。これは、技術、ユーザーのニーズ、および制限によるものです。
- 確かに制限があります-知識、時間、リソースの面で。 そして、市場に参入し、作業の過程で変更を加えるためには、それらに適合することを学ばなければなりません。
- すべての開発ツールは、ビジネス目標と一致している必要があります。 プログラミング言語、フレームワーク、データベース、電子メールクライアント、CMSを安価、理解可能性、および単純さに基づいて選択すると、深刻な制限に直面する可能性があります。
- 初期設計により、開発が大幅に加速され、設計者と開発者のやり取りが大幅に簡素化されます。
- フロントエンドだけでなく、バックエンドとデザインにも注意を払うことが重要です。 いくつかのミスを犯しましたが、今ではそれらを修正するのに時間とお金がかかります。
- スパイラル開発モデルに目を向けてみてください。これは、作業プロトタイプの迅速な作成だけでなく、多くの小規模開発者が初期段階で直面するリスクを克服します。市場参入のスケジュール、予算不足、限られた人的資源のリスク。 さらに、スパイラル開発には別の重要な利点があります。製品は仮説に基づいた実験室条件では開発されませんが、数百および数千のユーザーから多方向のフィードバックを受け取ります。 それらの処理により、次の反復で変更が必要な場所が明確になります。 ただし、スパイラル開発モデルを使用する場合、プログラマーのツールを使用すると、システム全体の安定性に対するリスクを最小限に抑えながら、できるだけ迅速に変更を加えることができることを忘れないでください。 ところで、これがYiiフレームワークを選択する理由の1つです。コンポーネントロジック、コアのOOP、MVC(Model-View-Controller)パラダイムにより、システムをできるだけ柔軟かつ迅速に変更できます。 この場合、ユーザーによるソリューションの操作に問題はありません。 しかし、開発のどの段階でも、まず作業のロジック、データストレージ、セキュリティの問題を解決する必要があることを覚えておく必要があります。
バグに取り組み、プロジェクトを継続的に改訂する方法は、開発パスよりもさらに興味深いものです。 修正中に、より高度なツールや技術に目を向けると、特に興味深いです。 いずれにせよ、あなたのアイデアが誰かの頭にすでに熟している可能性が非常に高いので、主なことは止めることではありません。