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ソリューションをリリース

推薦する

SEOに関するジョーク:ニュースソースのSEO記事を味わう

週末はWeiboに投稿するものがないので、ニュースソースを元にSEO研修記事やSEOレビュー記事を書...

webmaster.comのSEM入札オンライン収益トレーニングの第2フェーズが受講生の募集を開始しました

1. オンライン入札とは何ですか?簡単に言えば、入札とは、Baidu、Google、Soso、Sog...

Sogou Knowledge CubeのSEOへのインスピレーションの簡単な分析

私はSogou検索にほとんど注意を払わず、Baidu検索に重点を置いていたため、昨日自宅で偶然Sog...

ユーザーのニーズに基づいてさまざまな種類のWebページを設計する

前回の記事「コミュニティインタラクションデザインからユーザーニーズを分析する」では、ユーザーニーズ分...

dedipathはどうですか?ロサンゼルスデータセンターの独立サーバーの簡易評価と実際のテストデータの共有

dedipath は近年誰もが知っているアメリカのサーバー業者のはずです。ホリデーシーズンには VP...

HTML の芸術: SEO 最適化の剣

HTML(ハイパーテキスト マークアップ言語)は、Web ページを設計するときに使用される基本言語で...

Google 補足資料の詳細

Googleの補足資料問題は、今年さらに注目を集めたSEO問題です。以前に、どの問題が補足資料になる...

ワールドカップが近づいてきました。ブランドマーケティングのヒントをすべてご紹介します。

ワールドカップは企業ブランドマーケティング競争の夢の舞台です! FIFA ワールドカップは世界で最も...

AIでクラウド移行が簡単に

クラウド移行の旅にまだ着手していない組織にとって、1 つ明らかなことは、傍観者でいる時間は終わったと...

2019年は中国のクラウドコンピューティングにとって転換点となる年ではない

2002年、ベゾスは6つの主要なルールを提案した。社内外を問わず、会社にはサービスインターフェースを...

今後SEOは何に重点を置くべきでしょうか?

今日の SEO 業界について、私たちはますます困惑しています。SEO は本当に古いのでしょうか? 中...

A5トピック: 偽の高級品がオンラインストアで横行、オンラインストアが最も大きな打撃を受ける

admin5は、ある有名高級ブランドがインターネット上の商品の80%が偽物だと言っており、高級品のオ...

ドメイン名がホームページに載らない4つの理由と解決策

[はじめに] ウェブマスターとして、私たちは検索エンジン固有の構文をほぼ毎日扱っています。たとえば、...

Hiformance: QNロサンゼルスの超ハイエンドKVM仮想VPSの簡単なレビュー

Hiformance はハイブリッド専用サーバー (hiformance VPS: $10/KVM/...

この期間中にBaidu Kステーションの包含を増やすための最良の方法

数日前にWentaoとこの件について話し合ったことを覚えています。特に私のブログサイトのインクルード...