রেডাক্স-সাগা কেন রেডাক্স-অবজারভেবল ব্যবহার করবেন?


133

আমি রেডাক্স-সাগা ব্যবহার করেছি । এর সাথে লিখিত কোডটি এখন পর্যন্ত যুক্তি করা সহজ, জেএস জেনারেটরের ফাংশন সময়ে সময়ে আমার মাথা গণ্ডগোল করে except আমার উপলব্ধি থেকে, Redux-Observable অনুরূপ কাজ অর্জন করতে পারে যা পার্শ্ব প্রতিক্রিয়াগুলি পরিচালনা করে তবে জেনারেটর ফাংশনটি ব্যবহার না করেই।

তবে, রেডাক্স-অবজারভেবলের ডক্সগুলি কেন রেডাক্স-সাগার তুলনায় শ্রেষ্ঠতর সে সম্পর্কে অনেক মতামত দেয় না। আমি জানতে চাই যে জেনারেটর ফাংশনটি ব্যবহার না করা কেবল Redux-Observable ব্যবহারের একমাত্র সুবিধা using এবং রেডাক্স-সাগা পরিবর্তে রেডাক্স-অবজারভেবল ব্যবহার থেকে ডাউনসাইডস, গোটচা বা আপস কী হতে পারে? আগাম ধন্যবাদ.


আমি একটি মজাদার কিন্তু বিস্তারিত ব্লগ করেছিলাম যেখানে আমি রেডাক্স-সাগা লোকেদের জন্য রেডাক্স-অবজার্ভেবলের চেয়ে সেরা বলে মনে করি যারা সারা দিন বেঁচে / খাওয়া / নিঃশ্বাস ত্যাগ করে না। আমি নিশ্চিত যদি আপনার পুরো স্ট্যাকটি পর্যবেক্ষণযোগ্য হয় তবে এটি দুর্দান্ত। shift.infinite.red/…
গ্যান্ট

উত্তর:


236

দাবি অস্বীকার: আমি রিডেক্স-পর্যবেক্ষণের অন্যতম লেখক তাই আমার পক্ষে 100% নিরপেক্ষ হওয়া শক্ত।

আমরা বর্তমানে কোনও কারণ দিচ্ছি না যে রিডেক্স-অবজার্ভযোগ্য রিডেক্স-সাগা থেকে ভাল কারণ এটি ... তা নয় not 😆

tl; dr উভয় পক্ষের পক্ষে মতামত রয়েছে। অনেকে অন্যের তুলনায় আরও একটি স্বজ্ঞাত পাবেন তবে আপনি যদি আরএক্সজেএস (রিডুএক্স-পর্যবেক্ষণযোগ্য) বা জেনারেটর / "ডেটা হিসাবে প্রভাবগুলি" (রিডেক্স-সাগা) না জানেন তবে উভয়ই বিভিন্ন উপায়ে শিখতে জটিল।

তারা একই সমস্যাটিকে অত্যন্ত অনুরূপ উপায়ে সমাধান করে, তবে কিছু মৌলিক পার্থক্য রয়েছে যা আপনি যখন তাদের পর্যাপ্ত পরিমাণে ব্যবহার করেন কেবল তখনই তা প্রকট হয়ে উঠতে পারে।

রিডেক্স-পর্যবেক্ষণযোগ্য প্রায় সমস্ত কিছুই মূর্তিমানিক RxJS- এ স্থগিত করে। সুতরাং আপনার যদি আরএক্সজেএস জ্ঞান (বা এটি অর্জন করা) থাকে তবে শিখুন এবং রিডেক্স-পর্যবেক্ষণযোগ্য ব্যবহার করা অতি অতি প্রাকৃতিক। এর অর্থ হ'ল এই জ্ঞানটি রিডুএক্স ব্যতীত অন্যগুলিতে স্থানান্তরযোগ্য। আপনি যদি মবএক্সএক্সে স্যুইচ করার সিদ্ধান্ত নেন, আপনি যদি কৌণিক 2 এ স্যুইচ করার সিদ্ধান্ত নেন, আপনি যদি ভবিষ্যতের কিছু হটনেস এক্সে স্যুইচ করার সিদ্ধান্ত নেন তবে আরএক্সজেএস আপনাকে সহায়তা করতে পারে এমন সম্ভাবনা খুব ভাল। এটি কারণ কারণ RxJS একটি জেনেরিক async গ্রন্থাগার, এবং বিভিন্ন উপায়ে নিজেই একটি প্রোগ্রামিং ভাষার মতো — পুরো "প্রতিক্রিয়াশীল প্রোগ্রামিং" দৃষ্টান্ত m আরএক্সজেএস ২০১২ সাল থেকে অস্তিত্ব নিয়েছে এবং আরএক্স.এনইটি বন্দর হিসাবে শুরু হয়েছিল (প্রায় প্রতিটি বড় ভাষায় "বন্দর" রয়েছে এটি দরকারী )।

রিডেক্স-সাগা নিজেই তার সময়-ভিত্তিক অপারেটরগুলি সরবরাহ করে, সুতরাং আপনি এই প্রক্রিয়া-পরিচালকের শৈলীতে জেনারেটরগুলি এবং পরিচালনা সম্পর্কিত পার্শ্ব প্রতিক্রিয়া সম্পর্কে যে জ্ঞান অর্জন করেন তা হস্তান্তরযোগ্য, প্রকৃত অপারেটর এবং ব্যবহার অন্য কোনও বড় লাইব্রেরিতে ব্যবহৃত হয় না। সুতরাং এটি একটু দুর্ভাগ্যজনক, তবে অবশ্যই এটি নিজেই একটি চুক্তি-ব্রেকার হওয়া উচিত নয়।

এটি "ডেটা হিসাবে প্রভাবগুলি" ( এখানে বর্ণিত ) ব্যবহার করে, যা প্রথমে আপনার মাথাটি গুটিয়ে রাখা শক্ত হতে পারে তবে এর অর্থ হ'ল আপনার রিডেক্স-সাগা কোডটি নিজেই পার্শ্ব প্রতিক্রিয়াগুলি সম্পাদন করে না। পরিবর্তে, আপনি যে সহায়ক সহায়িকা ব্যবহার করেন সেগুলি তৈরি করে এমন বস্তু তৈরি করে যা পার্শ্ব প্রতিক্রিয়া করার ইচ্ছাকে প্রতিনিধিত্ব করে এবং তারপরে অভ্যন্তরীণ গ্রন্থাগারটি এটি আপনার জন্য সম্পাদন করে। এটি উপহাসের প্রয়োজন ছাড়াই টেস্টিংটিকে অত্যন্ত সহজ করে তোলে এবং কিছু লোকের কাছে এটি খুব আকর্ষণীয়। যাইহোক, আমি ব্যক্তিগতভাবে এটি পেয়েছি এটির অর্থ আপনার ইউনিট পরীক্ষাগুলি আপনার সাগা যুক্তির অনেকগুলি প্রতিপাদন করে - এই পরীক্ষাগুলি খুব কার্যকর আইএমও না করে তোলে (এই মতামত সবার দ্বারা ভাগ করা যায় না)

লোকেরা প্রায়শই জিজ্ঞাসা করে যে আমরা রিডেক্স-পর্যবেক্ষণযোগ্য এর সাথে কেন এমন কিছু করি না: আমার কাছে এটি মূল আইডোমেটিক আরএক্সের সাথে মূলত বেমানান। .debounceTime()আরএক্স-তে , আমরা অপারেটরগুলি ব্যবহার করি যেমন ডেবিউ করার জন্য প্রয়োজনীয় যুক্তিটি encapsulates, তবে এর অর্থ আমরা যদি এর এমন একটি সংস্করণ তৈরি করতে চাই যা প্রকৃতপক্ষে ডিবাউনিং সম্পাদন করে না এবং পরিবর্তে অভিপ্রায় সহ টাস্ক অবজেক্টগুলি নির্গত করে, আপনি এখন হারিয়ে গেছেন আরএক্সের শক্তি কারণ আপনি কেবল অপারেটরগুলিকে আর চেইন করতে পারবেন না কারণ তারা task টাস্ক অবজেক্টে অপারেশন করবেন, অপারেশনের আসল ফলাফল নয়। এটি মার্জিতভাবে ব্যাখ্যা করা সত্যিই কঠিন। পদ্ধতির অসঙ্গতি বুঝতে আবার এটির জন্য আরএক্সের ভারী বোঝা দরকার। আপনি যদি সত্যিই এরকম কিছু চান তবে রিডু-সাইকেলগুলি দেখুনযা চক্র.জেএস ব্যবহার করে এবং বেশিরভাগ ক্ষেত্রে সেই লক্ষ্যগুলি থাকে। আমি দেখতে পাই এটির আমার স্বাদগুলির জন্য খুব বেশি অনুষ্ঠানের প্রয়োজন, তবে আমি আপনাকে আগ্রহী হলে এটি একটি স্পিন দিতে উত্সাহিত করি।

থোরবেনা যেমন উল্লেখ করেছেন, আমি এটা স্বীকার করতে কুঞ্চিত হই না যে রিডুএক্স-সাগা বর্তমানে (10/13/16) রিডুএক্সের জটিল পার্শ্ব প্রতিক্রিয়া পরিচালনার সুস্পষ্ট নেতা। এটি আগে শুরু হয়েছিল এবং আরও শক্তিশালী সম্প্রদায় রয়েছে। তাই ব্লকের নতুন বাচ্চাটির উপরে ডি ফেক্টো স্ট্যান্ডার্ডটি ব্যবহার করার জন্য অনেক আকর্ষণ রয়েছে। আমি মনে করি এটি নিরাপদ যদি আপনি পূর্ববর্তী জ্ঞান ছাড়াই ব্যবহার করেন তবে আপনি কিছু বিভ্রান্তির মধ্যে রয়েছেন। আমরা দুজনেই মোটামুটি উন্নত ধারণা ব্যবহার করি যা একবার আপনি "পাওয়ার" পরে জটিল পার্শ্ব প্রতিক্রিয়া পরিচালনকে আরও সহজ করে তোলে, তবে ততক্ষণে অনেক হোঁচট খায়।

আমি যে সর্বাধিক গুরুত্বপূর্ণ পরামর্শ দিতে পারি তা হ'ল এটি প্রয়োজনের আগে এই লাইব্রেরিগুলির কোনও একটি না নিয়ে আসা। আপনি যদি কেবল সাধারণ এজাক্স কলগুলি করেন তবে আপনার সম্ভবত তাদের প্রয়োজন নেই। রিডেক্স-থাঙ্কটি শেখার জন্য বোকা সহজ এবং বেসিকগুলির জন্য পর্যাপ্ত পরিমাণ সরবরাহ করে - তবে যত বেশি জটিল তত কঠিন (বা এমনকি অসম্ভব) এটি রিডেক্স-থাঙ্কের হয়ে ওঠে। তবে রিডেক্স-অবজারভেবল / সাগা বিভিন্ন উপায়ে এটি অ্যাসিঙ্কটি সবচেয়ে জটিল করে তোলে। একই প্রকল্পে অন্য একটির সাথে (রেডেক্স-অবজারভেবল / সাগা) রিডুক্স-থাঙ্ক ব্যবহার করার ক্ষেত্রেও অনেক যোগ্যতা রয়েছে! আপনার সাধারণ সাধারণ স্টাফের জন্য রিডুক্স-থাঙ্ক এবং তারপরে কেবল জটিল স্টাফগুলির জন্য হ্রাস-পর্যবেক্ষণযোগ্য / সাগা ব্যবহার করুন। এটি উত্পাদনশীল থাকার একটি দুর্দান্ত উপায়, সুতরাং আপনি যে জিনিসগুলি রিডেক্স-থাঙ্কের সাথে তুচ্ছ হতে পারে সেগুলির জন্য রিডেক্স-পর্যবেক্ষণযোগ্য / সাগা লড়াই করছেন না।


3
স্রেফ আপনার আলাপটি (শব্দটি uuhf!) দেখেছেন এবং তাৎক্ষণিকভাবে হিট করুন redu + টি + "রিডেক্স-সাগা বনাম রিডেক্স-পর্যবেক্ষণযোগ্য"। আমি বেশ কিছুদিন ধরে রেডেক্স-সাগা ব্যবহার করেছি (বিশেষত প্রতিক্রিয়া নেটিভ), তবে আপনার আলোচনা এবং এই পোস্টটি দেখার পরে আমি কিছু ব্যবহারের ক্ষেত্রে (আমার জন্য) দেখতে পাচ্ছি যেখানে রিডেক্স-ওবস। আসলে একটি ভাল ফিট হবে। আপনার সম্পর্কে debounceTime()খুব জেনেরিক যুক্তিযুক্ত ধরণের তৈরির নিয়ন্ত্রণ এবং "হারাতে" পারা এটি আমার জন্য হিট। ব্যাখ্যা করার জন্য ধন্যবাদ।
হালভেজ

3
সবেমাত্র আলাপটি দেখেছি এবং আরও কিছুটা গুগল করছেন। ভাল জিনিস @ জাইফেল্পস, ভাগ করে নেওয়ার জন্য ধন্যবাদ। আমি বিশেষ করে হুড়োহুড়ি-পর্যবেক্ষণযোগ্য / সাগা এর সাথে মিলে রডেক্স-থাঙ্ক ব্যবহার করে আপনার মন্তব্য পছন্দ করি। এটি অনেক অর্থবোধ করে, কেন অপ্রয়োজনীয় যখন সাধারণ এজেএক্স অনুরোধগুলি অতিমাত্রায় জড়িত হয়। এটি বলেছিল, অভিন্নতা এবং মানুষকে ধারাবাহিক রাখার জন্য কিছু বলা উচিত। আবার ধন্যবাদ!
Spets

রিডেক্স-সাগা / রিডেক্স-পর্যবেক্ষণযোগ্যতে আপগ্রেড করার আগে আপনি রিডেক্স-প্রেরণ-শ্রোতার চেষ্টা করতে পারেন এবং এটি খুব সহজ এবং ইতিমধ্যে আপনার ব্যবহার সংক্রান্ত কিছু সমাধান করতে পারে: github.com/slorber/redux-dispatch-subscribe
Sebastien Lorber

এটি একটি খুব দরকারী উত্তর ছিল। ধন্যবাদ! আমি অন্য ডোমেন / ফ্রেমওয়ার্কগুলিতে আরএক্সজেএসের জ্ঞান স্থানান্তর করতে সক্ষম হওয়ার বিষয়টিটি পছন্দ করি।
আনসেলান

@Jayphelps "জটিল অ্যাসিঙ্ক" এর উদাহরণ কী হবে। বর্তমানে ওয়েদারকে মূল্যায়নের চেষ্টা করার জন্য আমার একটি প্রকল্পের জন্য থান্ড থেকে সাগা / পর্যবেক্ষণে স্যুইচ করা উচিত। ধন্যবাদ :)
স্যাম বোকাই

64

আমি মনে করি এমন কিছু বিষয় আছে যা আপনার বিবেচনায় নেওয়া উচিত।

  1. জটিলতা
  2. কোডিং স্টাইল
  3. শেখার বক্ররেখা
  4. Testability

বলি আমরা API থেকে ব্যবহারকারী আনতে চাই

// Redux-Saga

import axios from 'axios' 

function* watchSaga(){
  yield takeEvery('fetch_user', fetchUser) // waiting for action (fetch_user)
}

function* fetchUser(action){
    try {
        yield put({type:'fetch_user_ing'})
        const response = yield call(axios.get,'/api/users/1')
        yield put({type:'fetch_user_done',user:response.data})
  } catch (error) {
        yield put({type:'fetch_user_error',error})
  }
}

// Redux-Observable
import axios from 'axios'

const fetchUserEpic = action$ => 
    action$
        .ofType('fetch_user')
        .flatMap(()=>
          Observable.from(axios.get('/api/users/1')) // or use Observable.ajax
            .map(response=>({type:'fetch_user_done', user:response.data}))
            .catch(error => Observable.of({type:'fetch_user_error',error}))
            .startWith({type:'fetch_user_ing'})
        )

এছাড়াও, আমি এই নিবন্ধটি লিখেছি যাতে রেডাক্স-সাগা এবং রেডাক্স-পর্যবেক্ষণযোগ্যগুলির মধ্যে গভীরতার সাথে পার্থক্য তুলনা করতে পারি। পরীক্ষা করে দেখুন এই লিঙ্কে এখানে বা উপস্থাপনা


3
লিঙ্কটি থেকে পাশের সাথে তুলনাটি দুর্দান্ত, ধন্যবাদ
রোফ্রোল

1
আমি তুলনা পছন্দ করি, তবে এটি নিয়ে একটি সমস্যা আছে যা আমি সামনে আনতে চাই। আপনি যখন এপিআই কলগুলি ব্যবহার করে তাদের তুলনা করেন - আপনি রিডেক্স-পর্যবেক্ষণের জন্য আনতে ব্যবহার করছেন। শীতল। কিন্তু, যখন আপনি "বাতিল" পার্থক্য দেখান .. আপনি আনয়ন করেন না - পরিবর্তে আপনি অভ্যন্তরীণ অবজার্ভে.জ্যাক্স ব্যবহার করেন ... কেন? আমি এটি "আনা" বা "অ্যাক্সেস" ব্যবহার করে রাখতে পছন্দ করি। অন্যথায়, সেখানে দুর্দান্ত কাজ।
জেমস ইমানান

5
@ জামেসেমনন আমি ধরে নিয়েছি তিনি আনয়ন করছেন না কারণ আনতে এপিআই-তে এখনও বাতিল করার বিকল্প নেই। (আরও এটির বিষয়ে : github.com/ WHETWG / fetch / issues / 27 )
ড্যানিয়েল আন্দ্রে

বাহ, সমস্ত উদাহরণের সাথে গভীরতার তুলনাটি সেরা। ধন্যবাদ!
রাদেক মাটিজ

22

আমি রেডাক্স-অবজার্ভেবলকে রেডাক্স-সাগা ব্যবহার করি কারণ জেনারেটরের উপর পর্যবেক্ষণের সাথে কাজ করতে পছন্দ করি। আমি এটি আরএক্সজেএস দিয়ে ব্যবহার করি যা ডেটা স্ট্রিমের সাথে কাজ করার জন্য একটি শক্তিশালী গ্রন্থাগার। এ্যাসিঙ্কের জন্য এটি লোডাসের মতো ভাবেন। যে কোনও ডাউনসাইড, গোটচা এবং একে অপরকে বেছে নেওয়ার ক্ষেত্রে আপোষের ক্ষেত্রে, জে ফেল্পস এর উত্তরটি একবার দেখুন :

একটি প্রকল্প হিসাবে রিডেক্স-সাগা হ'ল রিডেক্স-পর্যবেক্ষণযোগ্যের চেয়ে বেশি সময় ধরে বিদ্যমান তাই এটি অবশ্যই একটি প্রধান বিক্রয়কেন্দ্র। আপনি আরও ডকুমেন্টেশন, উদাহরণগুলি পাবেন এবং সম্ভবত সমর্থন পেতে আরও ভাল একটি সম্প্রদায় রয়েছে।

আপনি যে রিডেক্স-সাগায় শিখেন সেই অপারেটর এবং এপিআইগুলি আরএক্সজেএস শেখার মতো স্থানান্তরযোগ্য নয়, যা পুরো জায়গা জুড়ে ব্যবহৃত হয়। অভ্যন্তরীণভাবে রডেক্স-অবজারভেবল সুপার সুপার সুপার সহজ, এটি আপনাকে আরএক্সজেএস ব্যবহার করার জন্য কেবল একটি প্রাকৃতিক উপায় দিচ্ছে। সুতরাং আপনি যদি RxJS (বা করতে চান) জানেন তবে এটি অত্যন্ত প্রাকৃতিক fit

বেশিরভাগ লোকের জন্য এই মুহুর্তে আমার পরামর্শ হ'ল আপনার যদি কোনটি ব্যবহার করা উচিত তা যদি আপনাকে জিজ্ঞাসা করতে হয় তবে আপনার সম্ভবত রিডাক্স-সাগা বেছে নেওয়া উচিত।


9

রেডাক্স-অবজারভেবল একটি আশ্চর্যজনক গ্রন্থাগার, আমরা এটিকে 1.5 বছর ধরে প্রযোজনায় কোনও সমস্যা ছাড়াই ব্যবহার করি এটি নিখুঁতভাবে পরীক্ষামূলক এবং কোনও কাঠামোর সাথে সহজেই সংহত করা যায়। আমাদের অতিমাত্রায় ভারসাম্যযুক্ত সমান্তরাল সকেট চ্যানেল রয়েছে এবং কেবলমাত্র আমাদের জমাট থেকে রক্ষা করছে তা হ'ল রেডাক্স-পর্যবেক্ষণযোগ্য

আমার এখানে তিনটি বিষয় উল্লেখ করতে চাই to

1. জটিলতা এবং শেখার বক্ররেখা

রেডাক্স-সাগা এখানে সহজেই রেডুক্স-পর্যবেক্ষণযোগ্যকে প্রহার করে। অনুমোদনের কাজটি সম্পন্ন করার জন্য যদি আপনার কেবল একটি সহজ অনুরোধের প্রয়োজন হয় এবং আপনি কোনও কারণে রিডেক্স-থাঙ্ক ব্যবহার করতে চান না, আপনার রিডুএক্স-সাগা ব্যবহার করা উচিত, এটি বোঝা সহজ।

যদি আপনার পর্যবেক্ষণযোগ্য সম্পর্কে পূর্বের জ্ঞান না থাকে তবে এটি আপনার পক্ষে ব্যথা হবে এবং আপনার দলটি অবশ্যই পাঠ করবে :)

২. অবজারেবল এবং আরএক্সজেএস আমাকে কী অফার করতে পারে?

এটি যখন অ্যাসিঙ্ক যুক্তির দিকে আসে তখন পর্যবেক্ষণযোগ্য হ'ল আপনার সুইস ছুরি, পর্যবেক্ষণযোগ্য আক্ষরিকভাবে আপনার জন্য প্রায় সবকিছু করতে পারে। আপনি কখনই তাদের প্রতিশ্রুতি বা জেনারেটরের সাথে তুলনা করবেন না এটি অনেক বেশি শক্তিশালী, এটি শেভ্রোলেটের সাথে অপটিমাস প্রাইমের তুলনা করার মতো।

আর আরএক্সজেএস সম্পর্কে কী? এটি লোডাএস.জেসের মতো তবে অ্যাসিঙ্ক যুক্তির জন্য, আপনি একবারে প্রবেশ করলে কখনও আলাদা কিছুতে স্যুইচ হবে না।

3. প্রতিক্রিয়াশীল এক্সটেনশন

শুধু এই লিঙ্কটি পরীক্ষা করুন

http://reactivex.io/languages.html

প্রতিক্রিয়াশীল এক্সটেনশনটি সমস্ত আধুনিক প্রোগ্রামিং ভাষার জন্য প্রয়োগ করা হয়, এটি কার্যকরী প্রোগ্রামিংয়ের কেবলমাত্র আপনার চাবি।

সুতরাং আপনার সময়টি বুদ্ধিমানের সাথে আরএক্সজেএস শিখুন এবং রিডেক্স-পর্যবেক্ষণযোগ্য ব্যবহার করুন :)


7

আমি আরএক্সের ভাষা ও রানটাইমগুলিতে স্থানান্তরযোগ্যতার মূল্যায়ন করি। এমনকি যদি আপনার অ্যাপ্লিকেশন ভাষা পরিবর্তন না করে তবে আপনার কেরিয়ারটি হতে পারে। আপনার শেখার ক্ষেত্রে আপনি যে সর্বোত্তম উপার্জন করতে পারেন তা পান, তবে আপনি নিজের আকারটি এটি আকার ধারণ করেন। এটি বিশেষত নেট লিনকিউ-এর দুর্দান্ত গেটওয়ে।


2
স্মার্ট পছন্দ, যদিও জেনারেটরগুলি ভাষা-অজ্ঞাতদৃষ্টিতেও।
গ্রেগ হার্বোইয়েজিক

3

যেহেতু এখানে রিডেক্স-পর্যবেক্ষণযোগ্য আলোচনার পুরো গুচ্ছ রয়েছে, তাই আমি ভেবেছিলাম যুক্তির সাগা দিক দিয়ে দেব। আমি রিডেক্স-অবজারভেবল বা আরএক্সজেএস ব্যবহার করি না, তাই আমি পাশাপাশি তুলনা করতে পারি না, তবে আমি সাগা ব্যবহার করে দুর্দান্ত প্রভাব ফেলেছি।

এর মূল্য কী, তার জন্য আমি একটি ওয়েব অ্যাপ্লিকেশনে উত্পাদনে সাগা ব্যবহার করছি।

সাগাস বনাম থঙ্ক

সাগা হাত ধরে জিতল। আমার অ্যাকশন নির্মাতাদের মধ্যে কীভাবে যুক্তি যুক্ত হয়েছিল তা আমি পছন্দ করি না। এটি একপর্যায়ে কয়েকবার অনুরোধ করে ঝামেলা করে। আমি এই কাজের জন্য সংক্ষিপ্তভাবে রেডেক্স-অবজারভের দিকে তাকিয়েছিলাম, তবে সাগাসে স্থির হয়েছি।

সাগসের জন্য বক্ররেখা শেখা

জেনারেটর কি এবং তারা কেন গুরুত্বপূর্ণ তা বোঝা সাগাগুলি বোঝার মূল চাবিকাঠি। কিন্তু আমি জোর হবে যে আপনি না ভিতরে এবং বাইরে জেনারেটর জানা প্রয়োজন। আপনার কেবল এটি জানতে হবে যে আপনি ফলন বিবৃতি দিয়ে নিয়ন্ত্রণ ছাড়িয়ে চলেছেন, এবং আপনার অ্যাসিঙ্ক কোডটি সমাধান হওয়ার পরে সাগা নিয়ন্ত্রণ ফিরে পাবে। এই বিট পরে, একটি কাহিনীতে কি চলছে তা বোঝা খুব কঠিন নয়।

মূল সাগা পদ্ধতিগুলি (আমার অভিজ্ঞতায়):

  • call- কোডের যে কোনও বিট কল করুন এবং ফেরতের মান পান। প্রতিশ্রুতি সমর্থন করে। অ্যাসিঙ্ক প্রসেসিং এবং সাগাসের মধ্যে দুর্দান্ত সমন্বয়।
  • select- একজন নির্বাচককে কল করুন। এই বিট বরং উজ্জ্বল। নির্বাচকরা রিডেক্সের মূল, এবং তারা 100% সমর্থিত!
  • put- ওরফে dispatchঅ্যাকশন আসলে আপনি যতটা প্রেরণ করুন!

অন্যান্য ফাংশন রয়েছে, তবে আপনি যদি এই তিনটি আয়ত্ত করতে পারেন তবে আপনি সত্যিই খুব ভাল জায়গা পাবেন in

উপসংহার

আমি সাগাস বেছে নেওয়ার কারণটি ছিল সহজ ব্যবহার। রিডেক্স-পর্যবেক্ষণযোগ্য একটি চ্যালেঞ্জের মতো লাগছিল। আমি সাগাসে 100% সন্তুষ্ট আমার প্রত্যাশার চেয়েও বেশি খুশি।

আমার অভিজ্ঞতায় সাগাস থাঙ্কসের চেয়ে ভাল (উপায়) এবং তুলনামূলকভাবে সহজ। আরএক্স সবার চায়ের কাপ নয়। আপনি যদি সেই বাস্তুসংস্থান থেকে না এসে থাকেন এবং / অথবা ভবিষ্যতে আরএক্স ব্যবহারের পরিকল্পনা না করেন তবে আমি রেডক্স-অবজারভেবলের পরিবর্তে সাগাসগুলিকে দৃ strongly়তার সাথে বিবেচনা করব।


2

আপনি যদি টাইপস্ক্রিপ্টে আপনার আবেদনটি লিখে থাকেন তবে আমি টাইপলেস যাচাই করার পরামর্শ দিই । এটি রেডাক্স-পর্যবেক্ষণযোগ্য দ্বারা অনুপ্রাণিত, এবং এটি আরএক্সজেএসের উপর নির্ভর করে, তবে অ্যাপটি তৈরির জন্য পুরো বাস্তুতন্ত্র রয়েছে।

রিডেক্স-অবজারভেবল / রিডেক্স-সাগা এর বৃহত্তম বিরাট কনস হ'ল গাইডলাইনের অভাব। কীভাবে অলস লোড হ্রাসকারী, সাগা বা মহাকাব্যগুলি সম্পর্কে কোনও অফিসিয়াল নির্দেশিকা নেই। বড় অ্যাপ্লিকেশনগুলিকে স্কেল করার সময় কোড বিভাজন গুরুতর। অলস লোডিংয়ের কাস্টম সমাধানগুলি সাধারণত এইচএমআরের সাথে দুর্বল বিকাশকারীদের অভিজ্ঞতার কারণে কাজ করে না।

টাইপলেস পেশাদার:

  1. টাইপস্ক্রিপ্টের জন্য ডিজাইন করা
    সমস্ত API গুলি টাইপস্ক্রিপ্ট এবং টাইপ-সুরক্ষার জন্য ডিজাইন করা হয়েছে:
    • টাইপস্ক্রিপ্ট আপনার উত্পাদনশীলতা বাড়িয়ে তুলবে, আপনাকে কমিয়ে দেয় না।
    • কেবলমাত্র প্রয়োজনীয় টিকা প্রয়োজন: রাষ্ট্র, ক্রিয়া যুক্তি।
    • টাইপকাস্টিং নেই। সবকিছু স্বয়ংক্রিয়ভাবে অনুমান করা হয়। কোডটির 95% খাঁটি জাভাস্ক্রিপ্টের মতো দেখাচ্ছে।
    • কোনও রুট অ্যাকশন, রুটপিক, রুটস্টেট বা অন্যান্য সহায়ক প্রকার নেই।
  2. সমস্ত বিল্ডিং ব্লক সরবরাহ করুন
    • টাইপলেস মাঝারি আকারের বা এন্টারপ্রাইজ স্তর অ্যাপ্লিকেশনগুলি তৈরি করার জন্য সমস্ত কিছুই অন্তর্ভুক্ত করে।
    • আপনার একাধিক ছোট গ্রন্থাগারের উপর নির্ভর করার দরকার নেই।
  3. modularity
    • স্কেলযোগ্য অ্যাপ্লিকেশন তৈরির জন্য যথাযথ মডুলারালিটি গুরুত্বপূর্ণ।
    • মহাকাব্য, হ্রাসকারী, প্রকার ইত্যাদির জন্য রুট ফাইলগুলি তৈরি করার দরকার নেই যখন আপনি একটি নতুন মডিউল তৈরি করেন, আপনি এটিকে যে কোনও জায়গা থেকে সংযুক্ত করতে পারেন। স্ট্যান্ডার্ড রিএ্যাক্ট উপাদানগুলির মতো।
  4. একগুঁয়ে
    • সমস্ত সাধারণ ব্যবহারের কেস এবং সমস্যাগুলি ডিফল্টরূপে সমাধান করা হয়। তুচ্ছ সমস্যাগুলি কীভাবে ঠিক করবেন তা অতিরিক্ত চিন্তা করার দরকার নেই।
    • সমস্ত সুপারিশ এবং সেরা অনুশীলন সরবরাহ করা হয়!

পরীক্ষা করে দেখুন https://typeless.js.org/


1
আপনি যে সফ্টওয়্যারটির জন্য প্রাথমিক অবদানকারী তা প্রস্তাব দেওয়ার সময় আপনার একটি দাবি অস্বীকার করা উচিত।
হেগল্ট 18
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.