ホームページ  >  記事  >  WeChat アプレット  >  小規模プログラムのクラウド開発と非クラウド開発の違い

小規模プログラムのクラウド開発と非クラウド開発の違い

Guanhui
Guanhuiオリジナル
2020-05-29 17:50:3922590ブラウズ

小規模プログラムのクラウド開発と非クラウド開発の違い

ミニ プログラム クラウド開発と非クラウド開発の違い

1. クラウド開発ではサーバーの構築が必要ありません。無料のベーシックバージョンを提供しますが、非クラウド開発の場合はサーバーを構築する必要があります。

2. クラウド開発プロジェクトは迅速に起動でき、外部のクラウド サーバーに依存せずにデータベースの追加、削除、変更、クエリを実行したり、オブジェクトを保存したりできます。

#WeChat ミニ プログラム クラウド開発の落とし穴

1. Basic Edition の CDN トラフィックが少なすぎる

私の場合 最近のプロジェクトでは、アルバムのオリジナル画質の写真をアップロード/ダウンロードするのに、開発とテスト期間だけで765MBかかりました(4~5日)。プロジェクトがオンラインになった後、毎日数百人のユーザーが使用する必要があるため、私がテストしたものと同じであれば、CDN トラフィックは 2 日で使い果たされる可能性があります。 CDN トラフィックが使い果たされると、構成をアップグレードするには少なくとも月 30 元の費用がかかりますが、この価格であれば、外部の優れたオブジェクト ストレージ サービスを購入できます。

しかし幸いなことに、私はこの問題を比較的早い段階で発見し、アップロードされた画像の品質を時間内に制御することができました。プログラムは、アップロードされた各画像を自動的に圧縮します。各画像は約 200 kb です。公式に使用されてからのみ消費されています。 . 約 1mb の CDN トラフィックを受信しました。 (1 日の平均アクティブ ユーザーは約 60 人です)

2. クラウド データベースには多くの制限があります

この落とし穴が私にとって最も深い落とし穴だと思いますクラウド データベースには 2 つの制限があります。 1つ目は、ミニプログラムで取得できるデータ数の制限です。 2 番目の側面は、クラウド データベースの読み取りおよび書き込み権限の制限です。

(1) ミニプログラムの読み込み制限

ミニプログラムはデータベースに直接リクエストを行うため、毎回最大 20 個のデータを読み込むことができます

クラウド機能を使用してデータベースをリクエストします。データベースを起動し、アプレットを通じてクラウド機能をトリガーし、毎回最大 100 個のデータを読み取ります。

毎回 100 個を超えるデータをリクエストする必要がある場合は、スキップを使用してリクエストする必要があります。特定の操作については、公式ドキュメントまたは他のブログを参照してください。

(2) クラウド データベースの読み取りおよび書き込み権限の制限

この落とし穴について説明する前に、ミニ プログラムのクラウド データベースは非リレーショナル データベースであり、外部データベースとの共同クエリを使用できないことを言っておきます。キーと内部キー。 (文脈とは無関係、この記事では言及しません)

クラウド データベースの最もオープンな権限は、すべてのユーザーが読み取り可能であり、作成者のみが変更できるというものです。

つまり、レコードを作成すると、他の人はそのレコードを変更または削除できなくなり、一連の問題が発生します。これは私の実際のプロジェクトの例です。

例: 複数席の自習室を予約できます。予約ごとに利用時間を選択でき、時間を過ぎた後は他の人が再度予約することができます。

単純なシナリオです。通常のロジックでは、データベース内の自習室テーブルには、自習室の識別 (r_id)、自習室の有効期限 (r_date)、自習室が予約可能かどうかの 3 つの主要フィールドが必要です。 (r_flag)。

ユーザーが自習室を予約する場合、自習室の r_flag が true かどうかを判断するだけで済みます。true であれば、ユーザーは予約できます。予約が成功すると、r_date は次のようになります。リフレッシュされ、r_flag が false に設定されます。

ただし、Mini Program Cloud Development が提供するクラウド データベースの最もオープンな権限は、すべてのユーザーが読み取り可能であり、作成者のみが変更できます。その結果、上記のロジックは機能しません。この関数を実装するには、より複雑なロジックが必要です。

当時私がやったのは、ユーザーが自習室を予約するたびにデータを提出し、自習室ごとの予約データを時間順にスタックしていくというものでした。これにより、次回予約するときは、先頭データの r_date に達しているかどうかを比較するだけで、現在予約可能かどうかを判断することができます。レコードを変更せずに上書きおよび削除機能を実装します。

3. 外部公開には多くの制限があります

通常のミニプログラムプロジェクトにはバックエンド管理システムが搭載されるのが一般的で、このバックエンド管理システムとミニプログラムはデータベースを共有しています。データを管理するため。ミニ プログラムのクラウド開発に付属するクラウド データベースはミニ プログラム内にあるため、外部からこのデータベースにアクセスしたい場合は、少し複雑なプロセスが必要です。

まず、公式インターフェイスを使用して呼び出し資格情報を取得します。次に、この資格情報インターフェイスを通じて指定された資格情報を使用して、データベースを追加、削除、変更、確認します。また、このプロセスで消費されるリソースも基本構成に含まれており、毎日 50,000 件のリクエストがオンラインで行われます。

推奨チュートリアル: 「

小規模プログラム開発」「PHP チュートリアル

以上が小規模プログラムのクラウド開発と非クラウド開発の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。