সুতরাং, "ডিজাইনের প্যাটার্নগুলি কী ভাষা বৈশিষ্ট্যগুলি হারিয়েছে"? [বন্ধ]


12

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

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

বা অন্য একটি বাক্য যা জাভাস্ক্রিপ্টে ক্লাস অনুকরণ করার চেষ্টা করা লোকদের সাথে আমি সম্প্রতি যা দেখেছি তা নিশ্চিত করে:

অবশ্যই, কেউ কখনও "ফাংশন" প্যাটার্ন, বা "শ্রেণি" প্যাটার্ন, বা আমরা গ্রহণযোগ্য অনেকগুলি বিষয় নিয়ে কথা বলে না কারণ বেশিরভাগ ভাষা সেগুলি অন্তর্নির্মিত বৈশিষ্ট্য হিসাবে সরবরাহ করে। ওটিওএইচ, একটি সম্পূর্ণরূপে প্রোটোটাইপ ওরিয়েন্টড ভাষাতে প্রোগ্রামাররা? প্রোটোটাইপ সহ ক্লাসগুলি অনুকরণ করা ভাল মনে হতে পারে ...

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

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

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


16
পল গ্রাহাম প্রোগ্রামিং ভাষাগুলির বিষয়ে "অবজেক্টিভ এবং ফ্যাক্টুয়াল" হিসাবে যে কিছু বলেছেন তা মেনে নেওয়া ভুল হবে।
ম্যাসন হুইলার

5
আমি পল গ্রাহামের সাথে দ্বিমত পোষণ করি না, তবে @ মেসনওহিলার ঠিক বলেছেন, সুসমাচার প্রচারকরা অনেক কারণে মহান, তবে তাদের উদ্দেশ্যমূলকতার জন্য নয়।
জিমি হোফা

3
@ জিমিহোফা: এটি সাধারণভাবে "সুসমাচার প্রচারক" নয়। গ্রাহামের হাস্যকর বিষয় পোস্ট করার দীর্ঘ ইতিহাস নিয়ে আমি বিষয়টি নিয়ে থাকি যা প্রায়শই নিজের বা তার উত্সের সাথে বিরোধী হয় এবং পুরো জিনিসটিকে সামঞ্জস্যপূর্ণ হিসাবে দেখাতে বাঁকানোর চেষ্টা করে। আপনি কীসের পক্ষে পরামর্শ দিচ্ছেন তা বিবেচনাধীন নয়, এটি সম্পর্কে ভয়ঙ্কর একটি উপায় এবং এটি আমার কাছে কিছুটা হতবাক করে দেয় যে লোকেরা আসলে তাঁর কথা শুনে।
ম্যাসন হুইলার

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

3
@ ড্যানিয়েলবি, প্রতিটি নির্দিষ্ট দৃষ্টান্ত ব্যর্থ হবে, কারণ বাস্তবতার তুলনায় বাস্তবের তুলনায় অনেক জটিল। সুতরাং, প্রতিটি সমস্যা তার নিজস্ব, ডোমেন নির্দিষ্ট মডেল এবং দৃষ্টান্তের দাবি রাখে।
এস কে-যুক্তি

উত্তর:


10

আমি এমন কোনও গভীরতা আলোচনা বা অধ্যয়ন সম্পর্কে অবগত নই যা এই সমস্ত বিষয় বিবেচনা করে।

এটি বলেছিল যে, "ডিজাইনের ধরণগুলি ওও ভাষাগুলিতে কেবল অনুপস্থিত বৈশিষ্ট্যগুলি প্যাচ করছে" এর সম্পূর্ণ যুক্তিটি কিছুটা পাতলা, আমার মতে। হ্যাঁ, কিছু নকশার ধরণগুলি হুবহু, এগুলি কিছু সাধারণ ব্যবধান পূরণ করে অন্য কোনও ভাষার এক্সেও নেই These এগুলি সাধারণত GoF বইয়ের মূল / অনেকের মতো আপনার নিম্ন-স্তরের, সহজ নকশার নিদর্শন।

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

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

সম্পাদনা:

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

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


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

@ এডওয়ার্ডফ্লোরিয়েন্সু ধন্যবাদ, আমি ডিএসএল-এর জন্য লিঙ্কগুলি আপডেট করেছি।
ড্যানিয়েল বি

আমি এই নিবন্ধটি গ্রোভি আইবিএম
এডওয়ার্ড ফ্লোরাইনস্কু

1
@ এডওয়ার্ডফ্লোরিইনসু এটি অত্যন্ত আকর্ষণীয়, যদিও আমি কেবল বিশেষভাবে দোভাষী প্যাটার্নটির কথা উল্লেখ করছি না; বরং, আমি বোঝাতে চেয়েছিলাম যে অনেকগুলি নিদর্শনগুলি বেশিরভাগ ডোমেন-নির্দিষ্ট হতে পারে এবং সেই ডোমেনের বিকাশকারীদের কাছে প্রায় মুশকিল হয়ে উঠতে পারে। সেই অর্থে, তারা এক ধরণের ডিএসএল হয়ে যায়, এবং বোঝার এবং ব্যবহার করার জন্য খুব বেশি প্রচেষ্টা গ্রহণ করে না। উদাহরণস্বরূপ, যখন আমি একটি কমান্ড প্যাটার্ন (একটি ডোমেনবিহীন নির্দিষ্ট উদাহরণ) পড়ি তখন আমি জানি যে কোন বয়লারপ্লেট কোডটি আমি নিরাপদে উপেক্ষা করতে পারি এবং এটি খুব বেশি চেষ্টা করে না। তবে যাইহোক, আকর্ষণীয় লিঙ্কের জন্য ধন্যবাদ।
ড্যানিয়েল বি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.