সমস্ত কার্যকরী প্রোগ্রামিং ডিজাইন নিদর্শন কোথায়? [বন্ধ]


75

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


6
এখানে অবশ্যই কার্যকরী নকশার নিদর্শন রয়েছে - উদাহরণস্বরূপ স্মৃতি বা মনড নিন - আমি ভাবছি যে কেউ তাদের এক জায়গায় জড়ো করেছে কিনা ...
FinnNk

2
ফিননক মোনাড ডিজাইনের ধরণ pattern _ ^ এর চেয়ে বেশি ধরণের ক্লাস
বিকল্পটি



1
মানচিত্র হ্রাস এক। আমি হতাশ হয়েছি সেখানে নিদর্শনগুলির একটি ভাল তালিকা নেই
শ্রীধর সারনোবাত

উত্তর:


47

ওও এবং ফাংশনাল প্রোগ্রামিং দুটি খুব আলাদা প্রোগ্রামিং প্যারাডিজম এবং ডিজাইনের প্যাটার্নগুলি (ডিপি) ওও ডিজাইন এবং প্রোগ্রামিংয়ের একটি উল্লেখযোগ্য অংশ। ফাংশনাল প্রোগ্রামিংয়ে ডিপির তেমন ভূমিকা নেই।

কেউ এমনকি বলতে পারেন যে, ফাংশনাল প্রোগ্রামিংয়ে ডিপি দরকার হয় না - এমন কোনও চুলকানি নেই যা ডিপি নিরাময় করছেন।

  • যে কেউ তর্ক করতে পারে যে ডিজাইনের নিদর্শনগুলি একটি প্রোগ্রামিং ভাষায় বৈশিষ্ট্যগুলি হারিয়ে যাওয়ার লক্ষণ ।

  • পিটার নরভিগ আবিষ্কার করেছেন যে ডিজাইন প্যাটার্নস বইয়ের 23 টি প্যাটার্নের মধ্যে 16 লিস্প বা ডিলানের " হয় অদৃশ্য বা সহজ আর"।

  • "অনেকগুলি নিদর্শনগুলি অবজেক্ট-ওরিয়েন্টেশন বা আরও সাধারণভাবে পরিবর্তনযোগ্য স্থির ইঙ্গিত দেয় এবং তাই কার্যকরী প্রোগ্রামিং ভাষাগুলিতে তেমন প্রযোজ্য নাও হতে পারে, যেখানে ডেটা অপরিবর্তনীয় বা এরূপ হিসাবে বিবেচিত হয়।" - http://en.wikedia.org/wiki/Design_ Pattern_ %28 কম্পিউটার_সায়েন্স ১০৯


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

22
ফাংশনাল প্রোগ্রামিংয়ে নকশার প্যাটার্নের অস্তিত্ব নেই তা দাবি করা ভুল তথ্য। সবচেয়ে সহজ পাল্টা উদাহরণ হ'ল মনাদ। ফাংশনাল প্রোগ্রামিংয়ে আপনাকে মোনাড ব্যবহার করার দরকার নেই, তবে খাঁটি ফাংশন প্রোগ্রামিংয়ের প্রয়োগের সুবিধার্থে এটি একটি সাধারণ প্যাটার্ন follow সংক্ষেপে এটি ডিজাইনের প্যাটার্নের সংজ্ঞা।
ভায়োডেভেক্টর

3
ডিজাইন নিদর্শনগুলি সমস্ত নকশা ক্রিয়াকলাপের জন্য প্রযোজ্য, প্রোগ্রামিং বা ঘরের নকশা হোক। প্রকৃতপক্ষে, প্যাটার্ন ভাষার খুব ধারণাগুলি আর্কিটেকচার থেকে আসে: en.wikedia.org/wiki/A_Pattern_Language
ববডালগাইশ

2
হুম। পর্যবেক্ষণযোগ্য স্ট্রিমস, রেলওয়ে বৈধকরণ এবং নরক, প্রায় প্রতিটি মনাদ একটি ডিজাইনের প্যাটার্ন, তাই না?
চেত

2
@ ভয়েডভেক্টর মনডস কেবল কোনও নকশার ধরণ নয়। এফপি-তে মনডগুলি টাইপ সিস্টেমগুলির মধ্যে ফান্ট্যাক্টর হিসাবে ব্যবহৃত হয় এবং ধারণাটি নিজেই গণিতের একটি বিভাগ বিভাগ থিউরি থেকে আসে। এগুলি সাধারণত বীজগণিত কাঠামোর মধ্যে একটি বিশেষ ধরণের সম্পর্ক বর্ণনা করতে ব্যবহৃত হয়। এটি আরও সঠিকভাবে বলতে চাই যে ফাংশনাল প্রোগ্রামিং হ'ল প্রোগ্রামিংয়ে গণিতের ব্যবহারের সুবিধার্থে একটি নকশার মাতাল।
জন ক্র্যামারাস

67

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

পাশাপাশি তাঁর প্রকাশনাগুলি ব্রাউজ করুন । তিনি হাই-অর্ডার ডেটাটাইপ-জেনেরিক প্রোগ্রাম হিসাবে ডিজাইনের প্যাটার্নগুলিতে গ্যাং অফ ফোর প্যাটার্নগুলি কভার করেন এবং অরিগামি প্রোগ্রামিং (ভাঁজ এবং উদ্ঘাটন) এর পুনরাবৃত্ত সমীকরণের সাথে প্রোগ্রামিংয়ের ধরণগুলি বর্ণনা করেন describes


13

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

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

আমি নিশ্চিত যে জিওএফ নিদর্শনগুলির নির্দিষ্টকরণের বাইরেও এমন নকশাগুলি রয়েছে যা কার্যকরী প্রোগ্রামিংয়ের ক্ষেত্রেও প্রযোজ্য। কথা হ'ল ওও হ'ল প্রভাবশালী দৃষ্টান্ত। ক্রিয়ামূলক বিকাশকারীদের লক্ষ্যবস্তু করে এমন একটি প্যাটার্ন বইয়ের লেখা ... খুব স্পষ্টভাবে কোনও প্রকাশকের কাছ থেকে গ্রিনলাইট পাবেন না। এটাই তা ফুটে যায়। বিষয়বস্তুতে উল্লেখযোগ্য সংখ্যক বইয়ের জন্য ফাংশনাল প্যাটার্নগুলির পক্ষে যথেষ্ট বাজার নেই।


9

স্টুয়ার্ট সিয়েরা এই বিষয়ে একটি ভাল কথা (~ 45 মিনিট):

http://www.infoq.com/presentations/Clojure-Design-Patterns

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

ক্লোজুরে লিখিত উদাহরণ, তবে সম্ভবত কোনও এফপি ভাষার ক্ষেত্রে প্রযোজ্য। তিনি যে প্যাটার্নগুলি আবরণ করেন সেগুলিতে যে নামগুলি দেয় সেগুলি হ'ল:

  • রাজ্য / ইভেন্ট
  • ফল
  • সঁচায়ক
  • কমাতে / একত্রিত করুন
  • পুনরাবৃত্তি প্রসারণ
  • পাইপলাইন
  • লেফাফা
  • টোকেন
  • পর্যবেক্ষক
  • কৌশল

6

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

মনদেড়ে এড়িয়ে যাবেন না। সেখানে অনেকগুলি দীর্ঘ-বায়ুযুক্ত ব্যাখ্যা রয়েছে এবং ধারণাগুলি ডুবে যেতে কিছুটা সময় লাগবে, তবে আপনি যদি এটিকে দূরে সরিয়ে রাখেন, অবশেষে এটি আপনার উপর উদয় হবে এবং আপনি কত ডিজাইনের ধরণগুলি হতে পারেন তা দেখে অবাক হয়ে যাবেন এই এক বিমূর্ততা / ইন্টারফেস উপরে তৈরি করুন।

একবার আপনি হাস্কেলকে কুঁচকে ফেললে, আপনার কাছে যথেষ্ট পরিমাণে এফপি অস্ত্রাগার বিপজ্জনক হতে পারে। পয়েন্টটি হল, এটি না পাওয়া পর্যন্ত এটি চালিয়ে যান । এখানে কোন সংক্ষিপ্ত পথ নেই.


-3

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


1
ওকাসাকির বইটি বিভিন্ন ডেটা স্ট্রাকচার এবং অ্যালগরিদম বইয়ের ডেটা স্ট্রাকচার অংশের সমতুল্য যা সাধারণত কেবল পরিবর্তনীয় ডেটা কাঠামো বিবেচনা করে।
এপ্রোগ্রামার

1
আমি মনে করি না যে নকশার নকশাগুলির সাথে ডেটা স্ট্রাকচারকে সমীকরণ করা বিলটির সাথে খাপ খায়। এটি ওও প্রোগ্রামারদের মতো নয় যেমন সঠিক শ্রেণীর সংজ্ঞাগুলি আপ না হওয়া পর্যন্ত কেবল তাদের অস্ত্র সজ্জিত করে।
davidk01

হ্যাঁ, ওকাসাকির বইটি নকশার ধরণগুলির চেয়ে নিম্ন স্তরে is
FinnNk
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.