আমি ClojureScript দিয়ে ফিডিং শুরু করতে চাই, তবে আমি কিছু বিষয় নিয়ে অবাক হয়েছি। আমার সমস্যাটি হ'ল যখন আপনি কার্যকরীভাবে কাজ করার চেষ্টা করছেন তখন ব্যবহারকারীর ইন্টারঅ্যাকশন থেকে রাষ্ট্রীয় পরিবর্তনগুলি মোকাবিলা করার একটি ভাল উপায়।
আমাকে কয়েকটি উদাহরণ দিতে দিন। ব্রাউজারে চলমান অ্যাপ্লিকেশনগুলি আমার মনে রয়েছে তবে আমি মনে করি সমস্যাটি আরও সাধারণ। অবশ্যই কিছু পরিবর্তন হবে - কমপক্ষে DOM। তবে আমি কীভাবে অপ্রয়োজনীয় ডেটা স্ট্রাকচারের সাথে কাজ করতে বাকি কোডটি সংগঠিত করতে পারি তা জানতে চাই।
1) বলুন আমি কিছু ইভেন্ট কিছু ডিওএম অবজেক্টের সাথে সংযুক্ত করতে চাই। বেশিরভাগ কার্যকরী উপায়ে এটি করা শক্ত নয়: আপনি নোডটি তৈরি করার সময় আপনি বিভিন্ন ইভেন্ট হ্যান্ডলারের সাথে একটি হ্যাশ মানচিত্র সংযুক্ত করেন। তবে আপনি ইভেন্টের প্রতিনিধি যেখানে ব্যবহার করছেন সে ক্ষেত্রে বিবেচনা করুন। তারপরে আপনি যখন একটি নতুন নোড তৈরি করবেন, আপনি কিছু প্যারেন্ট নোডের সাথে ইভেন্ট হ্যান্ডলার সংযুক্ত করতে পারেন যা সম্ভবত ইতিমধ্যে বিদ্যমান। সুতরাং আপনাকে ইতিমধ্যে বিদ্যমান নোডের সাথে সম্পর্কিত হ্যাশটি পরিবর্তন করতে হবে।
2) বলুন আমি কোনও ইনপুট ফিল্ডের জন্য একটি স্ব-পরিপূর্ণ মডিউল ডিজাইন করছি। প্রতিবার ব্যবহারকারী কোনও কী চাপলে আমি পরামর্শগুলি পেতে কোনও সার্ভারে কল করতে পারি। এটা সহজ. তবে এখন ধরুন আমি এটি কিছুটা অনুকূল করতে চাই। যদি আমি সমস্ত ফলাফলের সাথে মিল খুঁজে পাই তবে সব ফলাফলের সাথে মিলে foo
আবার জিজ্ঞাসা করার কোনও মানে নেই foobar
; আমি শুধু প্রাক্তন ফিল্টার করতে পারেন। সুতরাং আমার একধরনের ক্যাশে তৈরি করা দরকার। এই ক্যাশে প্রতিবার ব্যবহারকারী নতুন শব্দ প্রবেশ করানো হবে যা পূর্বে প্রবেশ করা শব্দের সুপারস্টেট নয়। আবার: আমি কীভাবে মডেল করব? সর্বাধিক যুক্তিযুক্ত উপায়টি হ্যাশ ম্যাপের ফলাফলগুলিতে ম্যাপিংয়ের শব্দ বলে মনে হচ্ছে তবে এটি পরিবর্তনযোগ্য হওয়া উচিত।
আপনি কি এমন কিছু নিদর্শন প্রস্তাব করতে পারেন যা ব্যবহারকারীর ডিজাইনের সাথে ব্যবহারকারীর ইন্টারঅ্যাক্টের কারণে পরিবর্তনগুলি অন্তর্ভুক্ত করা আরও সহজ করে তুলবে?