হ্যাঁ, এফপি এন্টারপ্রাইজ অ্যাপ্লিকেশনগুলিতে ব্যবহার করা যেতে পারে। এন্টারপ্রাইজে সাফল্যের সাথে ক্লোজার একটি এফপি ভাষার একটি উদাহরণ: http://cognitect.com/clojure#successstories
রাষ্ট্রের প্রতিনিধিত্ব করা এফপিতে চ্যালেঞ্জ হতে পারে এবং এফপিতে ফিট করার জন্য প্যারাডিমগুলি পরিবর্তন করা কিছুটা মাইন্ড ওয়ার্প হতে পারে। কিছু এফপি ভাষা সম্পূর্ণরূপে অনুমতি দেয় না পার্শ্ব প্রতিক্রিয়া এবং পরিবর্তনীয় স্থিতি। ক্লোজওর উভয়কেই অনুমতি দেয় তবে সেই দৃষ্টান্তগুলিকে নিরুৎসাহিত করে বা আলাদা করে দেয়।
সংক্ষেপে, রাষ্ট্রের উপস্থাপনা ওওর সাথে খুব মিল থাকতে পারে। এটি রাষ্ট্রীয় পরিবর্তন যা খুব আলাদা। উদাহরণস্বরূপ, এফপি রাজ্যে তালিকা এবং মানচিত্রের দ্বারা প্রতিনিধিত্ব করা যেতে পারে। কর্মীদের একটি তালিকা হতে পারে:
[[name: "James Brown" address: "Barnwell, SC"]
[name: "Elvis Presley" address: "Tupelo, MS"]]
এফপিতে রাষ্ট্রীয় পরিবর্তন পরিচালনা করার জন্য আমি দুটি উপায় জানি। একটি হ'ল কার্যক্ষম প্রতিক্রিয়াশীল প্রোগ্রামিং এর মতো কিছু। এই দৃষ্টান্তে সমস্ত রাজ্য কেবলমাত্র উচ্চ স্তরে পরিচালিত হয় ... উদাহরণস্বরূপ, আপনার অ্যাপ্লিকেশনটির এইচটিএমএল ভিউতে দর্শন রয়েছে (যেমন ব্যক্তির নাম, ঠিকানা ইত্যাদি)। এখন আপনি যখন "আপডেট নাম" ক্লিক করেন তখন একটি ফাংশন বলা হয় যা নাম পরিবর্তন করে নাম পরিবর্তন করা বাদ দিয়ে প্রতিটি নাম পরিচালনা করে thing এটি অদ্ভুত লাগতে পারে ... তবে আমার সাথে সহ্য করুন। পরিবর্তিত নামটি ফাংশন দ্বারা ফিরে আসবে এবং ভিউ (বা ক্রমাগত ডেটা স্টোর ইত্যাদি) নতুন নামটি দেখায়। অথবা, বিকল্প হিসাবে, আপডেট হওয়া নামের একটি সম্পূর্ণ নতুন কাঠামো ফিরে আসবে। সুতরাং ফাংশনটি কি করে? এটি নামটি বৈধ করে এবং নতুন নামটি বৈধ হলে তা ফেরত দেয়, যদি না হয় তবে একটি ত্রুটি, এবং অনুসরণ করতে একটি নতুন ভিউ বা নেভিগেশন লিঙ্ক সম্ভবত। নাম পরিবর্তনের চেয়ে জটিল কিছু করার জন্য এটি আরও অনেক কিছু করতে পারে।
সুতরাং এফআরপি-র জন্য ফাংশনটি দিয়ে ফিরে আসা জিনিসটি হ'ল নতুন রাষ্ট্র এবং এটি সরাসরি দর্শন বা উচ্চ স্তরের যা কিছুতে দেওয়া যেতে পারে। কিছু ক্ষেত্রে এফআরপি পুরো রাজ্যটিকে কার্যক্রমে প্রেরণ করে এবং পুরো রাজ্যকে ফিরিয়ে দেয়।
এই দৃষ্টান্তের সাহায্যে ধারক বা ফ্রেমওয়ার্কের জন্য নতুন স্টেট থেকে ডিসপ্লে, ডাটাবেস বা অন্য যে কোনও কিছু আপডেট করার দরকার হয় handle সুতরাং আপনি এমন একটি কাঠামো কল্পনা করতে পারেন যা অ্যাপ্লিকেশনটিকে স্ক্রিনে আঁকবে। যখন কোনও ব্যবহারকারী ক্লিক করেন তখন কিছু ফাংশন চাওয়া হয় এবং নতুন রাষ্ট্র ফিরে আসে। এর পরে ফ্রেমওয়ার্কটি সমস্ত কিছু পুনরায় আঁকলে বা বুদ্ধিমানভাবে প্রদর্শনের অংশগুলি আবার অঙ্কন করে স্ক্রিন আপডেট করে। দেখা http://blog.getprismatic.com/om-sweet-om-high-functional-frontend-engineering-with-clojurescript-and-react/
ক্লোজুরে দ্বিতীয় দৃষ্টান্ত ব্যবহার করে যা আমি এসে পৌঁছেছি এবং তা হল রাষ্ট্রীয় পরিবর্তনগুলি বিচ্ছিন্ন করা কিন্তু প্রয়োজনীয়ভাবে এগুলি সর্বোচ্চ স্তরে সীমাবদ্ধ করে না। ক্লোজারের সাথে সমস্ত পার্শ্ব পরিবর্তনযোগ্য রাষ্ট্র অবশ্যই একটি পরমাণু, এজেন্ট বা রেফারেন্সের দ্বারা "আটকানো" (আপনি রাষ্ট্রের জন্য জাভা অবজেক্ট ব্যবহার করছেন না) হওয়া উচিত। এটি যেভাবে কাজ করে তা পরমাণু / এজেন্ট / রেফ দ্বারা আটকানো বা নির্দেশিত বা রেফারেন্স করা (তবে আপনি এটি কল করতে চান) অপরিবর্তনীয়, তবে পরমাণু / এজেন্ট / রেফ কোনও নতুন অবজেক্টের দিকে নির্দেশ করতে পারে। এক্ষেত্রে আপনি পরমাণু / এজেন্ট / রেফের উপর বিশেষ পদ্ধতি ব্যবহার করেন যা বলে যে "বস্তুটি এখানে এ জাতীয় কাজ করে আপডেট করুন এবং পরমাণু / এজেন্ট / রেফারেন্সকে একটি নতুন অবজেক্টে পুনরায় নিয়োগ করুন" say
আপনি জিজ্ঞাসা করতে পারেন কেন এটি উপকারী? কারণ এই ক্লোজার কন্সট্রাক্টসগুলির দ্বারা রেফারেন্সযুক্ত অপরিবর্তনীয় বস্তু এমন কোনও ফাংশনে প্রেরণ করা যেতে পারে যা কিছু করে এবং সেই ফাংশনটি যখন অবজেক্টটির সাথে তার রেফারেন্স চালাচ্ছে তখন পরিবর্তন না করার গ্যারান্টিযুক্ত। এটি হল, পরমাণু / এজেন্ট / রেফ ফাংশনে প্রেরণ করা হয় না তবে তাদের দ্বারা নির্দেশিত অপরিবর্তনীয় বস্তুটি পাস হয়ে যায়। পরমাণু, এজেন্টস এবং রেফারগুলিতে বিশেষ বৈশিষ্ট্য রয়েছে যা নিরাপদ এবং ভাষার অংশ হিসাবে আপডেটগুলি এবং একত্রে সামঞ্জস্য করে। দেখাHttp://clojure.org/state
আশা করি এটা কাজে লাগবে. কীভাবে কর্মচারী এবং ব্যক্তিদের এফপিতে প্রতিনিধিত্ব করা যায় সে সম্পর্কে আরও ভাল ধারণা পেতে আমি ক্লোজার রাষ্ট্র এবং এফআরপি সম্পর্কে আরও পড়ার পরামর্শ দিই। যদিও, প্রকৃত উপস্থাপনা অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিংয়ের সাথে সমান হবে ... এটি এমন পরিবর্তনের যা সত্যই আলাদা।