এটি একটি খুব ভাল প্রশ্ন। দুটি পৃথিবীর তুলনা করা খুব শক্ত। আরএক্স সি #, জাভা বা জেএস এর মতো অন্যান্য ভাষায় প্রতিক্রিয়াশীল এক্সটেনশনগুলি কীসের একটি বন্দর।
প্রতিক্রিয়াশীল কোকো ফাংশনাল রিঅ্যাকটিভ প্রোগ্রামিং দ্বারা অনুপ্রাণিত হয়েছিল , তবে গত কয়েক মাসগুলিতে প্রতিক্রিয়াশীল এক্সটেনশনগুলি দ্বারাও অনুপ্রাণিত হিসাবে চিহ্নিত করা হয়েছে । ফলাফলটি এমন একটি কাঠামো যা আরএক্সের সাথে কিছু জিনিস ভাগ করে, তবে এফআরপিতে মূলগুলির নাম রয়েছে।
প্রথম কথাটি হ'ল আরএসি এবং আরএক্সএসউইফ্ট উভয়ই ফাংশনাল রিঅ্যাকটিভ প্রোগ্রামিং বাস্তবায়ন নয়, ধারণাটির সংজ্ঞাটির সংজ্ঞা অনুসারে । এই বিন্দু থেকে প্রতিটি ফ্রেমওয়ার্ক কীভাবে পার্শ্ব প্রতিক্রিয়া এবং কয়েকটি অন্যান্য উপাদান পরিচালনা করে তা হ্রাস করা যেতে পারে।
আসুন সম্প্রদায় এবং মেটা-টেক স্টাফ সম্পর্কে কথা বলি :
- আরএসি হ'ল একটি 3 বছরের পুরনো প্রকল্প, অবজেক্টিভ-সি-তে জন্মগ্রহণ করে পরে 3.0.০ রিলিজের জন্য সুইফটে (ব্রিজ সহ) পোর্ট করা হয়েছিল, অবজেক্টিভ-সি-তে চলমান কাজ পুরোপুরি বাদ দিয়ে ping
- আরএক্সসুইফ্ট কয়েক মাস পুরানো প্রকল্প এবং এই মুহুর্তে সম্প্রদায়ের একটি গতি আছে বলে মনে হচ্ছে। আরএক্সসুইফ্টের জন্য একটি বিষয় গুরুত্বপূর্ণ যেটি রিঅ্যাকটিভএক্স সংস্থার অধীনে এবং অন্যান্য সমস্ত বাস্তবায়ন একই পদ্ধতিতে কাজ করছে, আরএক্সস্পিফটকে কীভাবে মোকাবেলা করতে হবে তা শিখতে Rx.Net, RxJava বা RxJS এর সাথে কাজ করা সহজ কাজ এবং কেবল একটি বিষয় ভাষা বাক্য গঠন। আমি বলতে পারি যে দর্শনের উপর ভিত্তি করে একবার শিখুন, সর্বত্র প্রয়োগ করুন ।
টেক স্টাফের এখন সময়।
সত্তা উত্পাদন / পর্যবেক্ষণ
আরএসি 3.0 এর 2 টি প্রধান সত্ত্বা রয়েছে Signalএবং SignalProducerগ্রাহক সংযুক্ত থাকুক বা না থাকুক না কেন প্রথমটি ইভেন্ট প্রকাশ করে, দ্বিতীয়টির startআসলে সংকেত / ইভেন্ট উত্পন্ন হওয়ার প্রয়োজন হয় requires গরম এবং ঠান্ডা পর্যবেক্ষণযোগ্যদের ক্লান্তিকর ধারণাটি পৃথক করতে এই নকশা তৈরি করা হয়েছে, এটি অনেক বিকাশকারীদের বিভ্রান্তির কারণ হয়ে দাঁড়িয়েছে। এই কারণেই পার্থক্যগুলি কীভাবে তারা পার্শ্ব প্রতিক্রিয়া পরিচালনা করে তা হ্রাস করা যায় ।
আরএক্সসুইফ্টে Signalএবং SignalProducerঅনুবাদ করে Observableএটি বিভ্রান্তিকর লাগতে পারে তবে এই 2 টি সত্তা আসলে আরএক্স বিশ্বের একই জিনিস। সঙ্গে একটি নকশা ObservableRxSwift মধ্যে গুলি যদি তারা গরম বা ঠান্ডা হয়, এটা অপ্রয়োজনীয় জটিলতা যেমন শব্দ হতে পারে বিবেচনা তৈরি করা আছে, কিন্তু একবার আপনি বুঝতে কিভাবে তারা কাজ (এবং আবার গরম / ঠান্ডা / গরম মাত্র পার্শ্ব প্রতিক্রিয়া যখন সাবস্ক্রাইব / দেখে সম্পর্কে ) তারা কৃত্রিম হতে পারে।
উভয় দুনিয়ায়, সাবস্ক্রিপশন ধারণাটি মূলত একই, আরএসি যে সামান্য পার্থক্যটি চালু করেছিল তা হল এবং এটি interruptionযখন Signalইভেন্টটি প্রেরণের ইভেন্ট প্রেরণের আগে নিষ্পত্তি করা হয়। উভয়কেই পুনরায় কাটাতে নিম্নলিখিত ধরণের ইভেন্ট রয়েছে:
Next, নতুন প্রাপ্ত মান গণনা করতে
Error, একটি ত্রুটি গণনা এবং স্ট্রিম সম্পূর্ণ করতে, সমস্ত পর্যবেক্ষককে সদস্যতা ছাড়াই
Complete, সমস্ত পর্যবেক্ষককে সদস্যতা বাতিল করে সম্পূর্ণ হিসাবে চিহ্নিত করা
আরএসি ছাড়াও এটি interruptedপ্রেরণ করা হয় যখন Signalকোনওটি সঠিকভাবে বা ত্রুটির সাথে সম্পন্ন করার আগে নিষ্পত্তি করা হয়।
ম্যানুয়ালি লিখন
আরএসি-তে, Signal/ SignalProducerকেবল পঠনযোগ্য সত্তা, সেগুলি বাইরে থেকে পরিচালনা করা যায় না, একই জিনিসটি Observableআরএক্সউইফ্টে রয়েছে। একটি Signal/ SignalProducerলেখার যোগ্য সত্তায় রূপান্তর করতে, আপনাকে pipe()ম্যানুয়ালি নিয়ন্ত্রিত আইটেমটি ফিরিয়ে দিতে ফাংশনটি ব্যবহার করতে হবে। আরএক্স স্পেসে, এটি একটি আলাদা ধরণের বলে Subject।
যদি পঠন / লেখার ধারণাটি অপরিচিত মনে হয় তবে Future/ এর সাথে একটি দুর্দান্ত উপমা Promiseতৈরি করা যায়। এ Futureহ'ল কেবল পঠিত স্থানধারক, যেমন Signal/ SignalProducerএবং Observable, অন্যদিকে, এPromise নিজে পূর্ণ করা যেতে পারে, মত pipe()এবং Subject।
নির্ধারণ
এই সত্তা উভয় বিশ্বের একই ধারণা, একই ধারণা, কিন্তু আরএসি কেবলমাত্র সিরিয়াল-এর পরিবর্তে, আরএক্সসুইফ্টের বৈশিষ্ট্যগুলি একই সাথে একসাথে শিডিয়ুলারও রাখে।
গঠন
কম্পোজিশন রিঅ্যাকটিভ প্রোগ্রামিংয়ের মূল বৈশিষ্ট্য। স্ট্রোকগুলি রচনা হ'ল উভয় ফ্রেমের কাঠামোর সংমিশ্রণ, আরএক্সউইফ্টে এগুলিকে সিকোয়েন্সও বলা হয় ।
RxSwift সকল পর্যবেক্ষণযোগ্য সত্ত্বা ধরনের ObservableType, তাই আমরা দৃষ্টান্ত রচনা SubjectএবংObservable একই অপারেটার সঙ্গে, কোনো অতিরিক্ত উদ্বেগ ছাড়া।
RAC স্থান তারিখে, Signalএবং SignalProducer2 টি পৃথক সত্ত্বা এবং আমরা আছে liftউপর SignalProducerরচনা করতে কি দৃষ্টান্ত সঙ্গে উত্পাদিত হয় পাবে Signal। দুটি সত্তার নিজস্ব অপারেটর রয়েছে, সুতরাং যখন আপনাকে জিনিসগুলি মিশ্রিত করা দরকার তখন আপনাকে অবশ্যই নিশ্চিত করতে হবে যে কোনও নির্দিষ্ট অপারেটর উপলব্ধ রয়েছে, অন্যদিকে আপনি গরম / ঠান্ডা পর্যবেক্ষণগুলি ভুলে যাবেন।
এই অংশটি সম্পর্কে, কলিন ইবারহার্ট এটিকে সুন্দরভাবে সংক্ষেপে বলেছিলেন:
বর্তমান এপিআইয়ের দিকে নজর রেখে সিগন্যাল ক্রিয়াকলাপগুলি মূলত 'পরবর্তী' ইভেন্টের দিকে নিবদ্ধ থাকে, আপনাকে মানগুলি রূপান্তর করতে, এড়িয়ে যেতে, বিলম্ব করতে, একত্রিত করতে এবং বিভিন্ন থ্রেডে পর্যবেক্ষণ করতে দেয়। যেখানে সিগন্যাল প্রযোজক এপিআই বেশিরভাগ ক্ষেত্রে তত্কালীন ফ্ল্যাটম্যাপ, টেকঅন্টিল এবং ক্যাচ সহ ক্রিয়াকলাপগুলির সাথে সিগন্যাল জীবনচক্র ইভেন্টগুলি (সম্পূর্ণ, ত্রুটি) নিয়ে উদ্বিগ্ন।
অতিরিক্ত
আরএসি-র ধারণাও রয়েছে Action এবং Propertyপ্রাক্তনটি এক ধরণের পার্শ্ব প্রতিক্রিয়া গণনা করার জন্য যা মূলত ব্যবহারকারীর মিথস্ক্রিয়া সম্পর্কিত, পরে মানটি পরিবর্তনের সাথে সাথে কোনও কার্য সম্পাদন করার জন্য একটি মান পর্যবেক্ষণ করার সময় আকর্ষণীয়। আরএক্সউইফ্টে Actionআবার অনুবাদ করে একটিতে, এটি আইওএস এবং ম্যাক উভয়ের জন্য আরএক্স আদিমদের একীকরণের Observableসুন্দরভাবে দেখানো হয়েছে RxCocoa। আরএসি এর Propertyঅনুবাদ করা যেতে পারে Variable(বাBehaviourSubject RxSwift মধ্যে)।
এটা বুঝতে গুরুত্বপূর্ণ যে Property/Variable আমাদের যেভাবে অপ্রয়োজনীয় বিশ্বকে প্রতিক্রিয়াশীল প্রোগ্রামিংয়ের ঘোষণামূলক প্রকৃতির সাথে সংযুক্ত করতে হবে, তাই তৃতীয় পক্ষের লাইব্রেরিগুলি বা আইওএস / ম্যাক স্পেসের মূল কার্যকারিতা নিয়ে কাজ করার সময় কখনও কখনও এটি একটি মৌলিক উপাদান হয়।
উপসংহার
আরএসি এবং আরএক্সসুইফ্ট দুটি সম্পূর্ণ ভিন্ন ভিন্ন জন্তু, প্রাক্তনটির কোকো জায়গার দীর্ঘ ইতিহাস এবং প্রচুর অবদানকারী রয়েছে, পরেরটি মোটামুটি তরুণ, তবে জাভা, জেএস বা অন্যান্য ভাষায় কার্যকর হিসাবে প্রমাণিত হয়েছে এমন ধারণাগুলির উপর নির্ভর করে or .NET। যে বিষয়ে সিদ্ধান্ত ভাল তা অগ্রাধিকারের। আরএসি জানিয়েছে যে গরম / ঠাণ্ডা পর্যবেক্ষণযোগ্য পৃথকীকরণের প্রয়োজনীয়তা ছিল এবং এটি কাঠামোর মূল বৈশিষ্ট্য, আরএক্সউইফ্ট বলেছেন যে তাদের একীকরণ বিচ্ছিন্নতার চেয়ে ভাল, আবার এটি কীভাবে পার্শ্ব প্রতিক্রিয়াগুলি পরিচালনা করা / সম্পাদন করা যায় তা নিয়েই।
আরএসি .০ হ'ল গরম / ঠান্ডা পর্যবেক্ষণযোগ্যদের পৃথকীকরণের মূল লক্ষ্যটির শীর্ষে কিছুটা অপ্রত্যাশিত জটিলতার পরিচয় দিয়েছে, যেমন বাধা ধারণার ধারণা, অপারেটরগুলিকে 2 টি প্রতিষ্ঠানের মধ্যে বিভক্ত করা এবং কিছু অপরিহার্য আচরণ প্রবর্তন করার মতো start করা এবং সংকেত উত্পাদন শুরু করার । কিছু লোকের জন্য এই জিনিসগুলি হ'ল একটি খুনি বৈশিষ্ট্য বা এমনকি একটি ঘাতক বৈশিষ্ট্য থাকতে পারে, কারও কারও কাছে এগুলি কেবল অপ্রয়োজনীয় বা বিপজ্জনকও হতে পারে। আর একটি বিষয় মনে রাখবেন যে আরএসি যথাসম্ভব কোকো কনভেনশনগুলি চালিয়ে যাওয়ার চেষ্টা করছে, তাই আপনি যদি অভিজ্ঞ কোকো দেব হন তবে আপনার উচিত আরএক্সসুইফ্টের চেয়ে এটির সাথে কাজ করতে আরও স্বাচ্ছন্দ্য বোধ করা ।
অন্যদিকে আরএক্সসুইফ্ট গরম / ঠান্ডা পর্যবেক্ষণযোগ্যগুলির মতো সমস্ত ডাউনসাইডের সাথেই বাস করে তবে প্রতিক্রিয়াশীল এক্সটেনশনের ভাল জিনিসগুলিও। আরএক্সজেএস, আরএক্সজাভা বা আরএক্স. নেট থেকে আরএক্সএসউফ্টে স্থানান্তরিত করা একটি সাধারণ বিষয়, সমস্ত ধারণাগুলি একই রকম, সুতরাং এটি উপাদানটিকে বেশ আকর্ষণীয় করে তোলে, সম্ভবত আপনি এখন একই সমস্যার মুখোমুখি হয়েছিলেন, আরএক্সজেভা এবং সমাধানের কেউ সমাধান করেছেন প্ল্যাটফর্ম বিবেচনায় নিয়ে পুনরায় আবেদন করা যেতে পারে।
কোনটি বেছে নিতে হবে তা অবশ্যই পছন্দসই বিষয়, বস্তুনিষ্ঠ দৃষ্টিভঙ্গি থেকে কোনটি ভাল তা বলা অসম্ভব। একমাত্র উপায় হ'ল এক্সকোড থেকে গুলি চালানো এবং তাদের উভয়কেই চেষ্টা করা এবং এটির সাথে কাজ করতে আরও স্বাচ্ছন্দ্য বোধ করে এমন একটি বাছাই। এগুলি একই ধরণের ধারণাগুলির 2 বাস্তবায়ন, একই লক্ষ্য অর্জনের চেষ্টা করছে: সফ্টওয়্যার বিকাশকে সহজ করে তুলছে।