কোনও উর্ধ্বতন বিকাশকারী জানেন যে ওওপি ডিজাইনের ধরণগুলি কী তা জেনে রাখা কি যুক্তিসঙ্গত? [বন্ধ]


26

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

সুতরাং আমার প্রশ্নটি: এই প্রশ্নগুলি জিজ্ঞাসা করা কি বোধগম্য? বা এটি কি এমন একটি অস্পষ্ট বিষয় যে আপনি নতুন ভাড়াগুলি ইতিমধ্যে তা জানতে পারবেন না?

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

যোগ করুন এখন পর্যন্ত উত্তর পড়ার পরে, আমার কয়েকটি স্পষ্টতা দেওয়া উচিত:

  • কাজটি ওওপি / ওওডির অভিজ্ঞতার সাথে নেট নেট বিকাশকারীদের জন্য
  • বিদ্যমান কোডের মত বর্গ নাম ব্যবহার করে IParameterGraphVisitorএবং IStorageFactoryঅনেক জায়গায়
  • লোকেরা তাদের তৈরি করা ওও ডিজাইনগুলির সাথে তাদের অতীত অভিজ্ঞতা সম্পর্কে কীভাবে জিজ্ঞাসা করবেন, যদি তাদের নকশাগুলির ব্যাখ্যা দেওয়ার শব্দভাণ্ডার না থাকে? এটিই আমি করতে চাই এবং আমি যা করতে পারি তা হ'ল "দয়া করে আপনি আপনার শেষ প্রকল্পের ডিজাইন / অবজেক্ট ক্রমবর্ধমানটি হোয়াইটবোর্ডে আঁকুন"।

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

6
@ মিশেল: একমত নামগুলি জানার এবং প্যাটার্নটি ব্যবহারে সক্ষম হওয়ার মধ্যে পার্থক্য রয়েছে। আমি ওও-তে উত্থাপিত হয়েছি, তবে আপনি যদি আমাকে কিছু নিদর্শনগুলির নাম লেখাতে এবং সেগুলি বর্ণনা করতে বলেন তবে আমি ভাল করব না। কোন শিল্প এটি কল করার সিদ্ধান্ত নিয়েছে তা আমি বিশেষভাবে যত্ন করি না, তবে আমি বাজি ধরেছি যে আপনি তালিকাভুক্ত হওয়ার প্রত্যাশা করেছিলেন বেশিরভাগ নিদর্শনগুলি বাস্তবে আমি বাস্তবায়ন করেছি।
আনহোলিসম্প্লার

15
@ মিশেল: আমি সর্বদা যোগাযোগের সাহায্যে নকশার নিদর্শন দেখেছি। "এটি গাছের দর্শনার্থী" বলার চেয়ে অনেক বেশি দক্ষ এটি "এটি একটি বিমূর্ত ইন্টারফেস যা কোনও ফাংশনে পৌঁছে যাবে যা একটি গাছ হাঁটবে এবং সেই ইন্টারফেসের মাধ্যমে কোনও পদ্ধতি কল করবে যাতে আমি কোড থেকে গাছের হাঁটা আলাদা করতে পারি যে প্রকৃত কাজ করে "। তবে আপনি যদি কোনও সাক্ষাত্কারে নকশা দক্ষতা পরিমাপ করার আরও ভাল উপায়গুলি জানেন তবে দয়া করে প্রশ্নের উত্তর দিন! এটাই আমি খুঁজছি
নিকি

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

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

উত্তর:


67

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

বিষয়টি আপনার অভিজ্ঞ বিকাশকারীদের জিনিসগুলির জন্য পাঠ্য-পুস্তকের শর্তাদি জেনে নিচ্ছে না; পরিবর্তে, তাদের জিজ্ঞাসা করুন তারা কীভাবে ক্লাস গঠন করবে বা কীভাবে তারা কোনও কার্যের কাছে যাবে approach


2
+1 আমি এই কাঠামোটি কিছু সময়ের জন্য গ্যাং অফ ফোর বের হওয়ার আগে ব্যবহার করছিলাম তাই তাদের দেওয়া নামগুলি মনে রাখতে আমার সর্বদা সমস্যা হয়।
ডায়েটবুদ্ধা

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

5
+1 টি। আমার সাথে সর্বদা এমন হয়। কিছুক্ষণ আগে আমি কেন "জনপ্রিয়তা ইনজেকশন" এর উপর উইকি নিবন্ধটি পড়লাম কেন এটি এত জনপ্রিয় বলে মনে হচ্ছে, এটি কেবল বছরের পর বছর ধরে আমি ব্যবহার করে আসছি এমন কৌশলটি খুঁজে বের করার জন্য, তবে এটি কখনও নাম দেয়নি। "রাজ্য মেশিন" একই।
হোয়াটসামনেম

4
সিনিয়র বিকাশকারী ক্ষেত্রে মাঠে কী চলছে তা অনুসরণ করা এবং বহুল ব্যবহৃত ব্যবহৃত পরিভাষা অবলম্বন করা কি যুক্তিসঙ্গত প্রত্যাশা নয়? প্যাটার্নগুলি প্রায় 15 বছরেরও বেশি সময় ধরে
চলেছে

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

25

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

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

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

তাদের ডিজাইনের দক্ষতাটি পরীক্ষা করার পরিবর্তে আপনি কোন প্রশ্ন জিজ্ঞাসা করবেন?

উপরোক্ত সংগীতানুষ্ঠানে, আমি কেবলমাত্র এই প্রশ্নগুলি আপনার তালিকায় যুক্ত করব:

  • নকশার নিদর্শনগুলির অসুবিধাগুলি কী (সাধারণভাবে এবং এগুলির মধ্যে তারা স্পষ্টভাবে উল্লেখ করে)?
  • কখন তাদের ব্যবহার করবেন না এবং কেন?

হালনাগাদ

@ গ্র্যান্ডমাস্টারবি এর একটি ভাল বিষয় রয়েছে যে কিছু বিকাশকারী তাদের নাম না জেনে নির্দিষ্ট নকশার নিদর্শনগুলি ব্যবহার করতে পারে। একটি উপায়ে তিনি ঠিক বলেছেন যে এটি একটি পরিভাষা / যোগাযোগের প্রশ্ন। তবে মুদ্রার অন্য দিকটি হ'ল এটি প্রকৃতপক্ষে একটি পরিভাষা / যোগাযোগের প্রশ্ন :-) অর্থাৎ ডিজাইন প্যাটার্নসের অন্যতম প্রধান সুবিধা হ'ল বিকাশকারীদের একটি সাধারণ শব্দভাণ্ডার দেওয়া, যোগাযোগের ব্যাপক উন্নতি করা । ( অ্যাডাপ্টারের মূল ধারণাটি নিজে শব্দটি ব্যবহার না করে বা এর প্রতিশব্দ "মোড়ক" ইত্যাদি ব্যবহার করার চেষ্টা করার চেষ্টা করুন !) তবে কোনও প্রতিভাধর এবং জ্ঞানবান প্রার্থী হতে পারে, বহুলভাবে গৃহীত পরিভাষা (গুলি) না জেনে তিনি যোগাযোগের সমস্যাটি প্রবর্তন করবেন আপনার দলে


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

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

1
+1, যে কেউ নিজেকে প্রবীণ .NET দেব বলছেন, তাদের কমপক্ষে কয়েকটি স্বতন্ত্র প্যাটার্নের নাম এবং তাদের ব্যবহারের নাম রাখতে সক্ষম হবেন। এটি যোগাযোগ এবং সরঞ্জামবাক্সের বিষয়, অন্য কিছু না হলে।
টেকফোরিয়া 414

আমি এটি 3 বার পড়েছি এবং এখনও এখনও বলতে পারছি না যে প্রথম অনুচ্ছেদটি
ব্যঙ্গাত্মক কিনা

@ ব্রিডমস, আপনি কী ভাবেন যে এটি ব্যঙ্গাত্মক?
পিটার তারেক

10

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


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

2
@ অনহোলিস্যাম্পলার: অবশ্যই, তবে আমি মনে করি এটি একটি ওওপি অবস্থান যা নিয়ে কথা হচ্ছে
এন্টো

1
@ অনহোলিস্যাম্পলার: আমার ইচ্ছা যদি আমি সেই সময়েই বেঁচে থাকতাম .. আমি জাভা ছাড়া আর কিছুই দেখতে পারতাম না ইউনিতে <_ <
পোকে

10

একটি সাক্ষাত্কারে আপনার জিজ্ঞাসা করা উচিত যে কাজটি করার জন্য প্রার্থীর পক্ষে জানতে কী সমালোচনামূলক।

তাদের যদি গ্যাং অফ ফোর থেকে আসা নিদর্শনগুলির নামগুলি জানতে হয় তবে এটি একটি বৈধ প্রয়োজন।

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

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


4

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


2
ডিজাইন প্যাটারগুলির সাথে খুব বেশি দূরে সরে না যাওয়ার জন্য +1 :)
জাকি জার্মান

ভাল যুক্তি. প্রশ্নে একটি ব্যাখ্যা যুক্ত করা হয়েছে। এটি নেট। বিকাশকারীদের জন্য, কমপক্ষে ওও প্রোগ্রামিং ভাষায় প্রকল্পের অভিজ্ঞতা সহ।
নিকি

4

ধরে নিই যে আপনি ওওপিতে সিনিয়রিটির সন্ধান করছেন উত্তরটি অবশ্যই হ্যাঁ। নকশার নিদর্শনগুলি ওওপি ভাষার লিক্সন।

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

এখন বহু বছর হয়ে গেছে আমি সাক্ষাত্কারের সময় এই প্রশ্নটি জিজ্ঞাসা করেছি এবং প্রার্থী যখন বিষয়টিতে সন্তোষজনক উত্তর সরবরাহ না করে তবে এটি একটি শোস্টোপার।


3

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

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

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

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


3

যুক্তিসঙ্গত। Definitly। প্রয়োজনীয়। না

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

হ্যাঁ, অনেক বিকাশকারী অজান্তেই কিছু ডিজাইনের ধরণগুলি ব্যবহার করেন, সন্দেহ নেই।

এজন্যই আমি প্রশ্ন করি না।

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

তারা রিফ্যাক্টরিং প্রক্রিয়ায় সহায়তা করে। কোডের মাধ্যমে দৃষ্টিনন্দন করা কোনও কারখানার নিদর্শনটির কোনও রূপকে অলসভাবে কার্যকর করতে পারে তবে জিওএফ কারখানার প্যাটার্ন সময়ের পরীক্ষাকে সহ্য করেছে। এটা কেন তার হলো কারখানা প্যাটার্ন, এখনো অন্য FP (চাকা reinventing বাঞ্ছনীয় নয়, জোএল সফটওয়্যারের উপর এমনটি অসুবিধেও উপর প্রচুর আছে)।

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


2

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

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


2

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


1

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


1

হ্যাঁ প্রকৃতপক্ষে তাদের এই শব্দটির সাথে পরিচিত হওয়া উচিত এবং এমনকী কয়েকটি নিদর্শনগুলির নাম রাখতে সক্ষম হওয়া উচিত - তবে তাত্ত্বিক জ্ঞানকে অভিজ্ঞতার সাথে বিভ্রান্ত করার ভুল করবেন না।

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

চেক করার সর্বোত্তম উপায় হ'ল তাদের আপনার সামনে কিছু নকশা করা উচিত এবং তদন্তকারী প্রশ্ন জিজ্ঞাসা করা উচিত .. একজন প্রবীণ বিকাশকারী এমন ব্যক্তি যিনি বিমূর্ত স্তরে স্বাভাবিকভাবে ভাবতে পারেন। এই লোকেরা যারা নকশার নিদর্শনগুলি "তৈরি" করে।

ক্লাস পিপলওয়্যারের মতো যা কোনও জগলারকে জাগল না জিজ্ঞাসা করে নিয়োগের বিষয়ে কথা বলে - কেবল কারণ তারা বলে যে তাদের বেশি অর্থ হতে পারে না .. তাদের চেষ্টা করে দেখুন।


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

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

0

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


0

অবশ্যই তাদের নিদর্শনগুলি জানা উচিত, তবে অগত্যা বুজওয়ার্ডগুলি নয়।

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


0

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

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


0

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

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

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


0

আমি একজন প্রবীণ বিকাশকারী সম্পর্কে ভাবতে পারি যিনি নিম্নলিখিত পরিস্থিতিতে নকশার ধরণগুলি সম্পর্কে জানেন না:

  1. নকশার নিদর্শন সম্পর্কে কেবল একটি বই রয়েছে। এটি সেই বই যা তাদের প্রথম স্থানে জনপ্রিয় করেছে। যদি ব্যক্তি এই একটি বই না পড়ে থাকে তবে সম্ভবত তারা নকশার ধরণগুলি সম্পর্কে জানেন না, বা তাদের সম্পর্কে শুনে থাকতে পারেন, তবে তারা কীসের জন্য তা সঠিকভাবে জানেন না
  2. পরিবর্তে, তারা ইউএমএল জাতীয় কিছু জানতে হবে ....
  3. ইন্টারনেট থেকে নকশা নিদর্শন সম্পর্কে ভাল তথ্য সন্ধান করা সহজ নয়। আপনি যদি খুব ভাল ভাগ্যবান হন তবে আপনি যদি সঠিক ওয়েব পৃষ্ঠায় ভাল ডিজাইন নিদর্শন জ্ঞান রাখেন hit 1995 এর পরে কেবল সফ্টওয়্যারটিতে আসা কোনও ব্যক্তিকে নকশার প্যাটার্ন বইয়ের বিষয়ে জানতে না পারে, কারণ বইটি পুরানো।

-2

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

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


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

ইউনিক্স / লিনাক্স 'সি' তে লেখা আছে, এটি ওও প্যাটার্নসে পূর্ণ, এবং আরও অনেক কিছু গোফ বইতে।
ctrl-alt-delor

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

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