برنامه ریزی واکنشی چیست؟

برنامه ریزی واکنشی چیست؟Reviewed by صبا شادروز on Jun 19Rating: 5.0برنامه ریزی واکنشی چیست و چگونه کار میکند؟! | طراحی سایت تهران در این مقاله شما را با برنامه ریزی واکنشی و مفاهیم اساسی برنامه نویسی واکنشی و چگونگی کار با آن آشنا خواهیم کرد امیدواریم که مفید باشد

برنامه ریزی واکنشی

امروزه همه در مورد برنامه ریزی واکنشی صحبت می کنند و شما در یادگیری این چیز جدید به نام برنامه ریزی واکنشی علاقه مند هستید. شاید شما دیده باشید از چند مکان استفاده می کنید اما هنوز کمی گیج شده اید و برخی توضیحات را می خواهید.

در این مقاله، ما می خواهیم مفاهیم اساسی برنامه نویسی واکنشی را بیاموزیم. بنابراین، ابتدا بیایید درک کنیم که چرا ما نیازمند برنامه ریزی واکنشی هستیم؟ از آنجا که اگر مشکلی وجود نداشته باشد، ما به یک راه حل نیاز نداریم

چرا ما نیاز به کار ناهمزمان داریم؟

پاسخ ساده ما می خواهیم تجربه کاربر را بهبود بخشیم. ما می خواهیم برنامه ما پاسخگو تر باشد. ما می خواهیم یک تجربه کاربری صحیح را به کاربران خود ارائه دهیم بدون تغییر دادن موضوع اصلی،  آن را کاهش می دهد و ما نمی خواهیم عملکرد جنیکی را برای کاربرانمان فراهم کنیم.

برای حفظ موضوع اصلی رایگان ما باید کارهای سنگین و وقت گیر زیادی را که می خواهیم در پس زمینه انجام دهیم . ما همچنین می خواهیم کارهای سنگین و محاسبات پیچیده ای را در سرورهای ما انجام دهیم زیرا دستگاه های تلفن همراه برای انجام کارهای سنگین آسان نیستند. بنابراین ما نیازمند کار غیر همزمان برای عملیات شبکه هستیم.

ماتریس ارزیابی:

بیایید ببینیم چه چیزی از کتابخانه ای که تمام کارهای ناهمزمان را انجام می دهد، نیاز داریم. شما می توانید کمتر از 4 امتیاز را به عنوان ماتریس ارزیابی کتابخانه ناهمزمان تصور کنید.

  • اجرا صریح: اگر ما شروع به اجرای یک دسته از کارها در یک موضوع جدید کنیم، باید بتوانیم آن را کنترل کنیم. اگر قصد دارید تا برخی از کارهای پس زمینه را انجام دهید، اطلاعات را جمع آوری می کنید و آنها را آماده می کنید. به محض آماده شدن، می توانید کار زمینه را شروع کنید.

 

  • مدیریت آسان موضوع: در کار ناهمزمان، مدیریت موضوع کلید است. ما اغلب نیاز به UI را بر روی موضوع اصلی از موضوع پس زمینه در وسط کار یا در انتهای کار به روز می کنیم. برای این کار، ما باید کار خود را از یک موضوع (موضوع پس زمینه) به موضوع دیگری (در اینجا موضوع اصلی) منتقل کنیم. بنابراین شما باید بتوانید موضوع را به سادگی تغییر دهید و در صورت نیاز به کار دیگری بروید.

  • به راحتی قابل ساختن است: در حالت ایده آل، اگر می توانیم یک کار غیر همزمان انجام دهیم و وقتی شروع به چرخش موضوع پس زمینه می کنیم عالی می شود، بدون اینکه از هر موضوع دیگر (به خصوص در موضوع UI) بستگی داشته باشد، کار خوبی نخواهد بود و تا زمانی که پایان یابد مستقل از موضوع دیگر شغلش اما در دنیای واقعی، ما باید UI را بهروز کنیم، تغییرات پایگاه داده و بسیاری چیزهای دیگر را ایجاد می کنیم که وابسته به موضوع هستند. بنابراین کتابخانه ناهمزمان باید به راحتی قابل ساخت باشد و فضای کمتری برای خطا فراهم می کند.

 

  • حداقل عوارض جانبی: در حالی که با چندین thread کار می کند، موضوع دیگر باید عوارض جانبی کمتری از موضوع دیگر داشته باشد. این باعث می شود که کد شما به راحتی قابل خواندن و قابل فهم شدن برای یک فرد جدید باشد و همچنین باعث می شود خطا به راحتی قابل ردیابی باشد

برنامه ریزی واکنشی چیست؟

با توجه به Wikipedia:

برنامه نویسی واکنشی یک پارادایم برنامه نویسی است که در اطراف جریان داده ها و انتشار تغییرات قرار دارد. این بدان معنی است که باید به راحتی در زبان های برنامه نویسی مورد استفاده قرار گیرد که جریان های داده ای استاتیک و پویا را بیان کنند و مدل اجرایی پایه به طور خودکار تغییرات را از طریق جریان داده ها پخش کند.

به عبارت ساده، در برنامه Rx برنامه ریزی داده ها جریان های منتشر شده توسط یک جزء و ساختار زیر را فراهم می کند توسط کتابخانه های Rx این تغییرات را به یکی دیگر از مولفه های که برای دریافت این تغییرات داده ثبت می شود. داستان طولانی کوتاه: Rx از سه نقطه اصلی ساخته شده است.

RX = OBSERVABLE + OBSERVER + SCHEDULERS
ما قصد داریم این نکات را به طور یکنواخت بحث کنیم.

  • مشاهدات: قابل مشاهده هستند چیزی جز جریان داده ها نیستند. قابل مشاهده است داده هایی را که می توان از یک موضوع به موضوع دیگر منتقل کرد. آنها اساسا داده ها را بصورت دوره ای یا فقط یکبار در طول عمر خود بر اساس تنظیماتشان منتشر می کنند. اپراتورهای مختلفی که می توانند ناظر را به انتشار برخی اطلاعات خاص بر اساس حوادث خاص کمک کنند، اما ما در بخش های آینده آنها را بررسی خواهیم کرد. در حال حاضر شما می توانید مشاهده کنندگان را به عنوان تامین کنندگان فکر کنید. آنها داده ها را به اجزای دیگر پردازش و عرضه می کنند.
  • ناظران: ناظران جریان داده ای که توسط قابل مشاهده است، مصرف می کنند. مشاهدات با استفاده از روش subscribeOn () برای مشاهده داده های قابل مشاهده ، مشترک می شوند. هر زمان مشاهده شده داده ها را منتشر می کند، تمام ناظر ثبت شده اطلاعات را در callback دریافت می کنند. در اینجا آنها می توانند عملیات مختلفی مانند تجزیه پاسخ JSON یا به روز رسانی UI انجام دهند. اگر یک خطا از دید قابل مشاهده است، ناظر آن را در onError () دریافت می کند.
  • برنامه ریزان: به یاد داشته باشید که Rx برای برنامه نویسی ناهمزمان است و ما نیاز به یک مدیریت موضوع داریم. برنامه هایی که در تصویر قرار دارند وجود دارد. برنامه ریزان جزء در Rx است که نشان می دهد قابل مشاهده و ناظران، که در آن موضوع آنها باید اجرا شود. شما می توانید روش observeOn () را به ناظران بگویید که کدام موضوع باید مورد توجه قرار گیرد. همچنین، شما می توانید scheduleOn () را برای نمایش قابل مشاهده، که در آن موضوع باید اجرا کنید. موضوعات پیش فرض پیش فرض در RxJava مانند Schedulers.newThread () ایجاد پس زمینه جدید ایجاد می کنند. Schedulers.io () کد را در thread IO اجرا خواهد کرد.

3 مرحله ساده برای استفاده از Rx در برنامه خود

بیایید به مثال اصلی نگاه کنیم. این 3 مرحله ساده را برای استفاده از برنامه نویسی Reactive در برنامه شما توضیح می دهد.

Observable<String> database = Observable      //Observable. This will emit the data
                .just(new String[]{"1", "2", "3", "4"});    //Operator

 Observer<String> observer = new Observer<String>() {
           @Override
            public void onCompleted() {
                //...
            }

            @Override
            public void onError(Throwable e) {
                //...
            }

            @Override
            public void onNext(String s) {
                //...
            }
        };

database.subscribeOn(Schedulers.newThread())          //Observable runs on new background thread.
        .observeOn(AndroidSchedulers.mainThread())    //Observer will run on main UI thread.
        .subscribe(observer);                         //Subscribe the observer

مرحله 1 ایجاد قابل مشاهده است که داده ها را منتشر می کند:

در اینجا پایگاه داده قابل مشاهده است که اطلاعات را منتشر می کند. در مورد ما، رشته ها را منتشر می کند. فقط () اپراتور است. کدام اساسا اطلاعاتی را که در استدلال ارائه شده است، به صورت یک به یک منتشر می کند. (ما در مورد مقالات آینده خود به جزئیات اپراتورها نگاه خواهیم کرد. پس نگران نباشید.)

گام -2 ایجاد ناظر که اطلاعات را مصرف می کند:

در ناحیه فوق کد یک ناظر است که اطلاعاتی را که توسط پایگاه داده مشاهده می شود مصرف می کند. این داده ها را دریافت می کند و خطا را نیز در داخل آن پردازش می کند.

گام سوم مدیریت همزمان:

در آخرین مرحله، ما برنامه ریزانمان را مدیریت می کنیم که همزمان هستند.( subscribeOn Schedulers.newThread ()) به پایگاه داده قابل مشاهده برای اجرا در زمینه پس زمینه می گوید.( observeOn AndroidSchedulers.mainThread ()) به ناظر می گوید که در موضوع اصلی اجرا شود. این کد اصلی برنامه نویسی واکنشی است.

بنابراین در حال حاضر شما باید قادر به درک، چرا ما نیاز به برنامه نویسی واکنشی، چرا ما به آنها نیاز داریم و چگونه می توان آنها را پیاده سازی کرد. در مقالات آینده، ما در حال یادگیری نحوه استفاده از RxJava و اپراتورها در جزئیات است.

منبع : طراحی سایت تهران

در صورت تمایل برای شرکت در دوره آموزشی صفر تا صد برنامه نویسی میتوانید از این قسمت اقدام بفرمایید ، همچنین برای کسب اطلاعات بیشتر درباره دوره به این آدرس مراجعه نمایید.


دیگر مقالات مفید:

 

نوشتن نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *