Zang Chengwei: レスポンシブアーキテクチャの実践に基づく Meituan Dianping のクライアント

Zang Chengwei: レスポンシブアーキテクチャの実践に基づく Meituan Dianping のクライアント

[51CTO.comからのオリジナル記事] 最近、51CTOの記者は、Meituan-DianpingのiOS技術専門家であるZang Chengwei氏と独占インタビューを行い、Meituan-Dianpingクライアントのレスポンシブアーキテクチャの実践について議論しました。

【講師プロフィール】

[[224876]]

Zang Chengwei 氏、Meituan シニア iOS テクニカル エキスパート

Zang Chengwei は、Meituan-Dianping の上級 iOS 技術専門家です。 2012年よりモバイルインターネットに携わり、Androidカーネルカスタマイズの研究開発やiOSアプリケーション開発に従事。 2013年にCSDNに入社し、Ruby on Railsフレームワークのフルスタック開発を学び始めました。 2014 年に Baidu にシニア エンジニアとして入社。2015 年 3 月に Meituan Dianping iOS チームに入社。

近年、モバイル クライアントのビジネスの複雑さが増し、モバイル クライアントで処理されるロジックが基本的に非同期ロジックになったため、多数の非同期状況を処理し、状態を減らし、宣言的な方法を使用して要件を満たすコードを記述するためのより優れた形式が必要になりました。応答性はこれらの非同期の問題を解決するのに役立つため、応答性の高い開発手法はますます多くの開発者に受け入れられています。

レスポンシブアーキテクチャに基づくMeituan Dianping iOSクライアントの誕生

Meituan Dianping iOS チームは、ReactiveCocoa (RAC) 機能レスポンシブ ライブラリを使用した中国初のチームの 1 つです。 Zang Chengwei 氏は、2015 年に Meituan Dianping に入社して以来、社内外で RAC の使用方法と原則に関する指導とトレーニングを積極的に提供してきました。

しかし、2年以上の開発を経て、Meituan-Dianping iOSチームは、チーム全体が関数型レスポンシブプログラミングの学習に多大な投資をしすぎており、デバッグのコストも大きすぎることに気づきました。

Zang Chengwei 氏は、関数型プログラミングと関数型レスポンシブ プログラミングに関する長年の理解と分析に基づいて、オブジェクト指向プログラミングはエンジニアリングにとって最もシンプルで受け入れやすいものであるが、レスポンシブ機能も必要であると考えています。そこで、通常のオブジェクト指向設計を使用してレスポンシブなライブラリを実装するというアイデアが生まれました。

レスポンシブ ライブラリ EasyReact が構築された後、それをより有効に活用し、理解と学習のコストを削減するために、Zang Chengwei 氏はチームを率いてレスポンシブ MVVM フレームワークである EasyMVVM を開発しました。

レスポンシブアーキテクチャの簡単な紹介

まず、アーキテクチャの最下層では、OOP ベースのレスポンシブな基本ライブラリ EasyReact のセットが提供されます。グラフ データ構造を使用して有向巡回グラフを構築します。ノードの値が変更されると、それがすべてのエッジに伝播し、それによって他のノードの値も変更されます。同時に、各ノードは 1 対多の関係でリスナーに関連付けられます。値が変化すると、リスナーは非同期的にフィードバックを取得できるため、応答の問題が解決されます。同時に、2 つのレベル間の基本的な結合関係を確立することもできます。

しかし、EasyReact だけでは十分ではありません。完全な MVVM フレームワークがその上に構築されない場合、開発者が全体的なアイデアを持つことは困難になります。したがって、上位の垂直階層化フレームワーク EasyMVVM を使用すると、すべてのロジックを各レベルに配置でき、それぞれの責任を持たせることができます。

アーキテクチャを構築する過程で遭遇した困難について話す際、Zang 氏は、新しいレスポンシブな基本ライブラリ EasyReact を構築するのは、下位層に位置し、他の依存関係がないため、実際にはそれほど難しくないと述べました。ただし、その上位フレームワークである EasyMVVM を構築する際には、View 層のニーズを満たすために、既存の UIKit フレームワークに依存する必要があります。 UIKit の多数の API はデリゲート モデルに基づいてカプセル化されていますが、これはレスポンシブ プログラミングの前方宣言の概念とは正反対です。

この問題を解決するために、Meituan Dianping iOS チームは、デリゲートに基づかないいくつかの新しい UI コンポーネントをカプセル化し、すべてのユーザーに宣言型インターフェースを提供しました。同時に、継承よりも組み合わせの形でコンポーネントのモジュール化ソリューションも提供し、これにより、誰もが異なるビジネス ロジックを分離し、再利用の目的を達成することが容易になります。

建築:ビジネスのために生まれた

***、Zang先生は、制作、ユーザーの使用、オンライン収集という3つの側面から、アーキテクチャの研究開発の方向性について話しました。

制作の観点から見ると、アーキテクチャの研究開発の方向性は、自動生成とビジュアルプログラミング、見たままが得られる、などです。

ユーザーの使用の観点から見ると、アーキテクチャの研究開発の方向性は、動的な展開とホット アップデート機能です。

オンライン収集の観点から、アーキテクチャの研究開発方向は、動的追跡、自動追跡などです。

[51CTO オリジナル記事、パートナーサイトに転載する場合は、元の著者とソースを 51CTO.com として明記してください]

<<:  分散ロックの複数の実装

>>:  iSoftStone、Huawei CloudをベースとしたスマートシティAPaaSソリューションをリリース

推薦する

タオバオアフィリエイトウェブサイトが百度重み7を獲得し、1年間で10万以上のトラフィックを獲得した方法の分析

今日、Xianyunはフォーラムで、Baidu Indexの巨大なキーワードの秘密を説明する記事を見...

Baiduのウェブサイトについて話すと、コレクションは良いが、キーワードのランキングは下がっている

最近、多くの初心者ウェブマスターの友人からいつも次のような質問を受けます。「私たちのウェブサイトは ...

インターネット業界のトップ10トレンド

新年を迎え、主要プラットフォームが相次いで今年の年間総括と展望を発表しています。DAMO Acade...

serversguru: 月額 5.49 ユーロ、2G メモリ/1 コア/20gSSD/20T トラフィック、無料の高防御、オプションでフィンランド/ドイツ/米国

servers.guru、ドメイン名は2017年に登録され、米国ニューメキシコ州に登録された新しい会...

1 か月半で新しいサイトに重みとトラフィックを持たせた方法について簡単に説明しましょう。

今年の初め、適当な仕事が見つからず、2か月間家にいて両親に頼って暮らしていました。しかし、私は家で両...

草の根ウェブサイトが短命に終わる理由と解決策

10月23日、Baiduのアルゴリズムが更新されました。今回のBaiduシステムアルゴリズムのアップ...

ウェブサイトへの関心を維持する10の方法

最近、Weibo を使っています。一番嬉しいのは、ファンの数が増えることです。一番嫌なのは、フォロワ...

楽しいプログラミング ウェブサイト Codecademy: 7 日間で 20 万人のユーザーを獲得

7日間で20万人のユーザーを獲得できますか? JJ コラオ「コーディングは21世紀に必須のスキルの一...

「仮想IP」に関する漫画

[[396894]] コンピュータの IP アドレスと MAC アドレスの対応を取得するには、次の ...

Google アナリティクスを設定するための 5 つのヒント

Google Analytics は、有名なインターネット企業 Google がウェブサイト向けに提...

A5マーケティング:インターネットの新時代がSEOに新たな意味を与える

はじめに:「SEOはますます複雑になっています。10年前、SEOはページにキーワードを積み重ねること...

成功するためのウェブサイトの始め方

無意識のうちに、Leixue のブログの更新が遅れてしまいました。Leixue のブログをフォローし...

#BlackWeek5#: tmzvps、マネージド/アンマネージド VPS、1 つ買うと 1 つ無料、3 つのコンピュータ ルーム、良いレビュー

11月27日から11月30日まで、tmzvpsはVPSプロモーション「1つ買うと1つ無料」を実施して...

SEO の一般的なプロモーション方法は何ですか?

一般的なSEOプロモーション手法という話題は、基本的には決まり文句ですが、その注目度は決して過小評価...

30秒、12億、50%、アリババとエバーグランデの電撃結婚

6月5日、アリババグループは恒大サッカークラブと戦略提携協定を締結したと発表した。アリババは12億人...