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

推薦する

Google PageRank (PR) の数字の意味の詳細な説明

Google PageRank は、Google が Web ページを評価するために使用するスコアリ...

BandwagonHost Hong Kong cn2 giaはどうですか?

BandwagonHost の香港 cn2 gia vps は、1Gbps の帯域幅、3 つのネット...

分散ストレージのソフトウェアとハ​​ードウェアを分離することの何が難しいのか分かりません。

分散ストレージといえば、ソフトウェア定義ストレージ (SDS) を思い浮かべるかもしれません。世界中...

ウェブサイトの最適化についてはさまざまな意見があります。左に行くべきでしょうか、それとも右に行くべきでしょうか?

SEO に初めて触れたとき、私はとても好奇心が強く、ベテランのウェブマスターの意見を聞くために一日中...

企業はクラウドへの早送りボタンを押し、デジタルトランスフォーメーションがクラウドコンピューティングの急速な発展を推進します。

オンライン教育、リモートワーク、クラウド医療、クラウド授業...クラウドコンピューティングの応用シナ...

古いウェブサイトの最適化方法についての簡単な説明

多くの人は、古いウェブサイトを引き継いだときに、それを最適化する方法を知りません。コンテンツから始め...

ウェブサイトがブロックされる原因となった業界間の悪質な競争について簡単に説明します

長い間、このような記事を書いていませんでした。最近は忙しかったんです。まず第一に、SEO トラフィッ...

OpenTelemetryに基づくフルリンクトレース

可観測性 - 鳥瞰図前の記事で述べたように、可観測性とは、システムによって生成された外部データ (ロ...

新しい有料広告ポリシーの導入により、ASO 市場は大きな変化を遂げました。

数日前、Apple は App Store での有料プロモーションを評価すると発表し、 ASOコミュ...

cloudsilk: 春節期間中、市場全体で 15% オフ、VPS は年間 136 元から、米国 + ドイツ AS4837、米国 + ドイツ AS9929、香港 + 日本 CMI

Cloudsilk は新年に向けて特別な VPS プロモーションを開始しました。全アイテムが 15%...

短編動画の戦いでは、Xigua VideoとiQiyiのどちらが優れているでしょうか?

2019年10月20日、西瓜動画の任立峰社長は、今後1年間で西瓜動画が動画クリエイターに少なくとも2...

Tmall Double Elevenからのユーザーエクスペリエンスの重要性

はじめに:毎年恒例の天猫ダブルイレブンが過ぎ、天猫とタオバオは再び奇跡を起こし、売上高は350億に達...

15 分で Kubernetes 上に Apache Pinot をセットアップする

Kubernetes に Pinot コントロール プレーンをインストールし、最初の Pinot ク...

AWS Lambda のベストプラクティス

【51CTO.com クイック翻訳】概要今日、サーバーレスはさまざまなクラウド アプリケーションで最...