ডিজাইন প্যাটার্নটি সঠিকভাবে প্রয়োগ করা হয়েছে কিনা তা কীভাবে নির্ধারণ করবেন?


13

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

ডিজাইন প্যাটার্নস ধারণাটি জটিল এবং বোঝা শক্ত। প্রয়োগ করা হলে, বাস্তবায়নটি সঠিক কিনা এবং অ্যাপ্লিকেশনটির আসল looseিলে ?ালা সংযোগের বিষয়টি কীভাবে নির্ধারণ করবেন?


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

2
@ জোয়াচিমসৌয়ার আপনি যা বলেছিলেন তা হ'ল প্রযুক্তিগত বিশ্ববিদ্যালয়গুলির যে ধরণের স্টাফগুলি শেখানো উচিত ... যেহেতু আমি বর্তমানে একজন শিক্ষার্থী, বর্তমানে এটিই আমাকে সবচেয়ে বেশি আগ্রহী করে তোলে।
রাদু মুর্জিয়া

1
@ জোয়াচিমসৌয়ার আসলে এই ভুল ধারণাটি উত্থাপিত হয়েছে কারণ একই ধাঁচের জন্য বিভিন্ন বাস্তবায়নের কৌশল রয়েছে। উদাহরণস্বরূপ, এমভিসি এবং এমভিপি হিসাবে বিবেচনা করুন, একই ধরণের প্রকল্পগুলির মতো অনেকগুলি প্রকরণ রয়েছে।
পি কে

@ আরপিকে +১, এমভিএক্স প্যাটার্নের অনেকগুলি (এমভিসি, এমভিপি, এমভিএ, এমভিভিএম ইত্যাদি) খুব স্পষ্ট ইঙ্গিত দেওয়া উচিত যে কাজগুলি করার অনেক সমানভাবে কার্যকর উপায় আছে।
ম্যাটড্যাভি

উত্তর:


3

উত্তরটি সংক্ষিপ্ত রাখতে আমি বলব যে নিম্নলিখিত কোডগুলি যদি আপনার কোডটিতে দৃশ্যমান হয় তবে আপনি আত্মবিশ্বাসের সাথে বিশ্বাস রাখতে পারেন যে আপনার দিকে ইচ্ছাকৃত প্রচেষ্টা না করা (যা কোনও সমস্যা নয়) এমনকি নিদর্শনগুলি সেখানে রয়েছে।

পছন্দসই বৈশিষ্ট্য:

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

যদি এখনও আপনার আসল নিদর্শনগুলির নাম সহ আপনার কোডটি সনাক্ত করতে এবং ট্যাগ করতে উত্সাহী হয়, আমি বল রোলিংয়ের জন্য নিম্নলিখিত ক্রিয়াগুলি সম্পাদন করার পরামর্শ দেব।

  1. কিছু ইউএমএল ডায়াগ্রাম উত্পন্ন করতে আপনার কোড বেসটি বিপরীত ইঞ্জিনিয়ার করুন।
  2. নিখুঁত রেফারেন্স উপাদানের যে কোনও প্রস্তুত রেফারেন্সের সাথে চিত্রগুলিকে দৃশ্যত তুলনা করুন ।

এটি আপনাকে একটি ভাল ধারণা দেওয়া উচিত।


আপনি কি তৃতীয়টি সম্পর্কে আরও বিস্তারিত বলতে পারেন?
নিইং

19

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

নকশা নিদর্শন

ডিজাইনের প্যাটার্নগুলির ধারণাটি আসলে বেশ সহজ: তারা বিভিন্ন সাধারণ সমস্যাগুলি কীভাবে মোকাবেলা করতে পারে তার টেম্পলেটগুলির একটি সেট মাত্র। তারা জনপ্রিয় যে 2 প্রধান কারণ আছে:

  1. এগুলি 'প্রমাণিত': এগুলি বহুবার আগে ব্যবহার করা হয়েছে এবং এর প্রতিটিের সুবিধাগুলি / ঘাটতিগুলি সাধারণত জানা যায়, বিশেষত কোনও সূক্ষ্ম সমস্যা যা বড় সমস্যার কারণ হতে পারে তা জানা যায়।
  2. তারা পরিভাষার একটি সাধারণ সেট সরবরাহ করে এবং তাই সহজ যোগাযোগ সক্ষম করে। যদি কেউ বলে যে "দশম শ্রেণি পর্যবেক্ষক প্যাটার্নে পর্যবেক্ষকের ভূমিকা পালন করে" তবে সেই বিকাশকারীদের সাথে পরিচিত বিকাশকারীরা কী ঘটছে তা অবিলম্বে বুঝতে পারবেন।

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

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

সংযোজন

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

এই উইকিপিডিয়া নিবন্ধে তালিকাভুক্ত বিভিন্ন ধরণের সংযোগ রয়েছে ।


2

উত্তরটি হ'ল সেই উদ্দেশ্য যা আপনি শুরু থেকেই ডিজাইনের ধরণগুলি লিখতে চান। আপনি কেন নমনীয়তা চান?

এটাই পরিবর্তন; প্রয়োজনীয়তা পরিবর্তন। আপনার প্রয়োজনীয়তার মধ্যে এমন কিছু পরিবর্তন করার চেষ্টা করুন যা কোড পরিবর্তনকে প্রতিফলিত করে এবং এটি করা কতটা সহজ / কঠিন see


-1

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

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


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