Zillow کد جدید واضحی را با اجزای معماری اندروید میسازد
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.

Zillow یک بازار آنلاین املاک و مستغلات برتر است که فهرستها، دادهها و ماشینحسابهای مورد نیاز را در اختیار مصرفکنندگان قرار میدهد تا به آنها در خرید، اجاره یا فروش خانه کمک کند. این سایت همچنین کاربران را با نمایندگان محلی، ارائه دهندگان وام مسکن و طراحان خانه مرتبط می کند.
Zillow که در سال 2006 راه اندازی شد و دفتر مرکزی آن در سیاتل است، پایگاه داده ای از بیش از 110 میلیون خانه در ایالات متحده را نگهداری می کند. آنها همچنین مجموعه ای محبوب از بیش از دوجین برنامه املاک و مستغلات تلفن همراه را اجرا می کنند. هنگامی که آنها در جولای 2017 بازنگری اساسی کد خود را در برنامه تلفن همراه اندروید خود آغاز کردند، Zillow می خواست زندگی توسعه دهندگان خود را با خوانایی بیشتر و درک آسان کد برای اعضای جدید تیم ساده کند.
کاری که آنها انجام دادند
Zillow کد خود را با استفاده از اجزای معماری اندروید اصلاح کرد. Aayush Raj، مهندس نرم افزار Zillow می گوید: «ما در حال بررسی انواع مختلف معماری بودیم. اجزای معماری دارای مزیت اضافی آگاهی از چرخه حیات بودند که مدیریت کد را بسیار آسانتر میکرد.
ViewModel به داده ها اجازه می دهد تا از تغییرات پیکربندی (مانند چرخش صفحه) جان سالم به در ببرند، در حالی که LiveData یک کلاس نگهدارنده داده قابل مشاهده است. هر دو توسط Zillow مورد استفاده قرار گرفتند و با هم، یک الگوی قدرتمند برای پیاده سازی Model-View-ViewModel (MVVM) ارائه کردند. راج میگوید: «این به تستپذیرتر شدن کد ما کمک کرد. کتابخانه ماندگاری اتاق نیز ساخت یک لایه حافظه پنهان محلی را آسان کرده است، بنابراین برنامه مجبور نیست به دفعات دادهها را از شبکه بکشد، «بهبود عملکرد و تجربه کاربر».
نتایج
راج اضافه میکند که انتقال تعداد زیادی کد برای بهروزرسانی دادهها از فعالیتها به ViewModels «قطعاً به خوانایی بیشتر پایه کد» کمک کرده است. آنها هنوز کل برنامه را به ViewModel تبدیل نکردهاند، اما اجزایی که از ViewModel استفاده میکنند هیچ باگ مربوط به چرخه حیات نداشتهاند. برقراری ارتباط به روز رسانی داده ها به فعالیت ها و قطعات نیز بسیار خوب عمل می کند.
سومیران پرادهان، مهندس ارشد توسعه نرمافزار Zillow میگوید: «توسعهدهندگان با استفاده از مؤلفههای معماری اندروید کاملاً بهرهورتر هستند. Architecture Components هنگام شروع از ابتدا به آنها راهنمایی می دهد، اما در پایه کد موجود نیز مفید است. پرادان می افزاید: زمانی که توسعه دهندگان جدید بفهمند منطق در ViewModel کجاست، آن را دوست دارند.
شروع کنید
Android Architecture Components به عنوان بخشی از Android Jetpack برای همه توسعه دهندگان باز است. با اجزای معماری Android شروع کنید.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2018-05-03 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2018-05-03 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Zillow builds clear new code with Android Architecture Components\n\nZillow is a top online real estate marketplace that provides consumers with\nthe listings, data, and calculators they need to help them buy, rent, or sell\na home. The site also connects users with local agents, mortgage providers,\nand home designers.\n\nLaunched in 2006 and headquartered in Seattle, Zillow maintains a database\nof more than 110 million U.S. homes. They also operate a popular suite of\nover two dozen mobile real estate apps. When they began a major overhaul of\ntheir code in their Android mobile app in July 2017, Zillow wanted to simplify\ntheir developers' lives by making the code more readable and easier for\nnew team members to understand.\n\nWhat they did\n-------------\n\nZillow revamped their code using\n[Android Architecture Components](/topic/libraries/architecture).\n\"We were investigating different kinds of architecture,\" says Aayush Raj,\nZillow software engineer. \"Architecture Components had the added advantage of\nlifecycle awareness, which made code much easier to manage.\"\n\n[ViewModel](/topic/libraries/architecture/viewmodel) allows data to\nsurvive configuration changes (such as screen rotations), while\n[LiveData](/topic/libraries/architecture/livedata) is an observable\ndata-holder class. Both were used by Zillow, and together, they provided a\npowerful template for implementing Model-View-ViewModel (MVVM). \"It helped make\nour code more testable,\" Raj says. The\n[Room](/topic/libraries/architecture/room) persistency library also\nmade it easy to build a local cache layer, so the app didn't have to pull data\nfrom the network as often, \"improving performance and the user experience.\"\n\nResults\n-------\n\nMoving lots of code for data updates from activities to\n[ViewModels](/topic/libraries/architecture/viewmodel) has\n\"definitely helped\" make the whole code base more readable, Raj adds.\nThey haven't yet converted the whole app to\n[ViewModel](/topic/libraries/architecture/viewmodel),\nbut components that are using\n[ViewModel](/topic/libraries/architecture/viewmodel)\nhaven't had any lifecycle-related bugs. Communicating\ndata updates to activities and fragments also works very well.\n\n\"Developers are absolutely more productive using Android Architecture\nComponents,\" says Sumiran Pradhan, Zillow senior software development engineer.\nArchitecture Components gives them guidance when starting from scratch,\nbut is also useful in the existing code base. \"Once new developers\nunderstand where the logic lives in the\n[ViewModel](/topic/libraries/architecture/viewmodel), they love it,\"\nPradhan adds.\n\nGet started\n-----------\n\nAndroid Architecture Components is open to all developers as part of\n[Android Jetpack](/jetpack). Get\nstarted with [Android Architecture Components](/jetpack/arch)."]]