কোন ধরণের অন্তর্দৃষ্টি বা প্রশ্ন আপনাকে একজন ব্যক্তির OOAD দক্ষতা নির্ধারণ করতে পরিচালিত করবে।
কোন ধরণের অন্তর্দৃষ্টি বা প্রশ্ন আপনাকে একজন ব্যক্তির OOAD দক্ষতা নির্ধারণ করতে পরিচালিত করবে।
উত্তর:
আপনি একটি সাধারণ সমস্যার কিছু অর্ধ-অ্যাসিডড ওও ডিজাইন প্রদর্শন করতে পারেন এবং এটি কী করে তা নিয়ে আলোচনা করতে পারে, এটি সম্পর্কে ভাল এবং খারাপ কী, এটি যথেষ্ট নমনীয় কিনা, কী উন্নত হতে পারে এবং কীভাবে।
আপনার যদি আলোচনাটি চালিয়ে যাওয়ার প্রয়োজন হয়, তবে কোডটির কিছু দিক সম্পর্কে ব্যক্তি কী ভাবছেন তা জিজ্ঞাসা করুন, তবে শীর্ষস্থানীয় কোনও প্রশ্ন নয়।
গুরুত্বপূর্ণটি মনে রাখতে হবে যে আলোচনাটি গুরুত্বপূর্ণ, আপনি উত্তরগুলি আগেই জানতেন তা নয়। যে কোনও শালীন বিকাশকারী কোড সম্পর্কে এমন কিছু উল্লেখ করতে সক্ষম হবেন যা আপনি আগে ভাবেননি।
ব্যক্তির সাথে একটি ওপেন এন্ডেড ডিজাইন সমস্যা নিয়ে আলোচনা করুন। তিনি কীভাবে সিস্টেমের একটি মডেল তৈরি করতে এগিয়ে যান, কী ধরণের প্রশ্ন জিজ্ঞাসা করা হয়, নতুন তথ্যের প্রতিক্রিয়াতে কীভাবে নকশা পরিবর্তন হয় তা দেখুন।
একটি দুর্দান্ত উদাহরণ - স্টিভ ইয়েজ তার ব্লগ পোস্টগুলির মধ্যে একটিতে উল্লেখ করেছেন - হ'ল এক্সএমএলের জন্য কোনও ব্যক্তিকে একটি বস্তু মডেল নিয়ে আসতে বলুন।
সর্বাধিক জনপ্রিয় নকশার নিদর্শনগুলির একটি ভাল জ্ঞান থাকা প্রমাণিত করতে পারে যে প্রার্থী তার নকশা সমস্যার সমাধানের জন্য আসলে অনুসন্ধান করেছিলেন।
সেগুলি নিয়ে আলোচনা করতে এবং কখন সেগুলি প্রয়োগ করতে হবে বা না তা জানতে সক্ষম হওয়াই একটি ভাল ইঙ্গিত যা তিনি তাদের বোঝেন।
তার অতীতের অভিজ্ঞতাগুলিতে ব্যবহারের জন্য উদাহরণস্বরূপ তাকে জিজ্ঞাসা করাও সহায়তা করতে পারে।
একটি শব্দভান্ডার কুইজ দেবেন না । "উত্তরাধিকার সংজ্ঞায়িত করুন" বা "ওও ডিজাইনের 3 বৈশিষ্ট্যগুলির নাম" এমন প্রশ্নগুলি যা কোনও ব্যক্তির দক্ষতা সম্পর্কে আপনাকে কিছুই জানায় না, কেবলমাত্র তিনি কতক্ষণ পাঠ্যপুস্তক পড়েছিলেন। আমি বেশ কয়েকজন দুর্দান্ত প্রোগ্রামারদের সাথে দেখা করেছি যারা এই দক্ষতাগুলি প্রতিদিন ব্যবহার করে, তবে আনুষ্ঠানিক সংজ্ঞা দিতে বললে তারা দম বন্ধ করে দেবে।
যদি সম্ভব হয়, স্যাম্পল কোডের জন্য জিজ্ঞাসা করুন।
অন্যথায়, উদাহরণ হিসাবে ব্যবহার করার জন্য কিছু পদ্ধতিগত কোড সন্ধান করুন (বা কিছু খারাপ নকশাকৃত ওও কোড) এবং তারপরে তারা কীভাবে এটি পুনরায় ডিজাইন করবেন, সাধারণীকরণ করবেন এবং উন্নত করবেন তা জিজ্ঞাসা করুন। নিশ্চিত হয়ে নিন যে প্রোগ্রামটির অতিরিক্ত প্রসঙ্গ রয়েছে, যাতে পুনরায় নকশাটি অর্থবহ হতে পারে।
শেষ পর্যন্ত আপনি যা পরীক্ষা করছেন - ডিজাইন - বিষয়গত। সুতরাং, কেবলমাত্র একটিও নয়, বেশ কয়েকটি সম্ভাব্য ভাল সমাধানের জন্য আপনার মূল্যায়ন ওপেন-এন্ড হওয়া উচিত। তারপরে, প্রয়োজনীয়তার সম্ভাব্য পরিবর্তনগুলি সম্পর্কে ভাবুন যা কোনও ইন্টারফেস পরিবর্তনের জন্য বাধ্য করবে: তারা কীভাবে এটি পরিচালনা করে?
হেড ফার্স্ট ডিজাইন প্যাটার্নস বইটি পড়ুন। বইয়ের সমস্ত উদাহরণ একটি অবজেক্ট ওরিয়েন্টেড সমস্যা দিয়ে শুরু হয় এবং নকশার ধরণে শেষ পর্যন্ত। তারা আরও জানায় যে নির্দিষ্ট ওওপির ধারণাগুলি কেন সীমাবদ্ধ ফলাফল অর্জন করবে এবং কেন কিছু নির্দিষ্টর চেয়ে অন্যদের চেয়ে ভাল।
যদিও ডিজাইন প্যাটার্ন বইটি এই বইটি ওওপির সমস্যাগুলি পূর্ণ :-)
সহজ শুরু করুন: ওওপি সব কিসের?
আপনি ওওপির প্রাথমিক চত্বরের বিষয়ে জিজ্ঞাসা করে শুরু করতে পারেন: বিমূর্ততা, পলিমারফিজম, উত্তরাধিকার এবং এনক্যাপসুলেশন। তাদের উষ্ণতর করার জন্য চিন্তার জন্য ভাল খাবার।
তাদের একটি সমস্যা দিন
এরপরে, তাদের এমন একটি সমস্যা উপস্থিত করুন যা নিদর্শনগুলিতে জড়িত হতে পারে। নাম বা প্যাটার্ন ব্যবহার করা প্রয়োজন হয় না, তবে তারা যদি ক্ষেত্রের অভিজ্ঞতা পেয়ে থাকেন তবে তাদের ব্যবহারের ফলে কিছুটা পাওয়া যাবে।
সম্ভবত গতিশীল পাঠ্য ইনপুট বৈধতা। আপনি ISO8601 ফর্ম্যাটে কোনও বৈধ তারিখ, সময় বা তারিখ এবং সময় আছে কিনা তা দেখতে আপনি অক্ষর অনুসারে ইনপুট চরিত্রটিকে বৈধতা দিতে সক্ষম হতে চাই। প্রতিবার কী টিপলে আপনি ইনপুট স্ট্রিংয়ের একটি অনুলিপি পাবেন এবং কমপক্ষে কোনও একটি বিন্যাসে পাঠ্য ভাল থেকে যায় কিনা তা বোঝাতে আপনি বুলিয়ান ফিরিয়ে দিতে পারেন। ওও ডিজাইনের নীতিগুলি ব্যবহার করে তাদের সাথে কথা বলতে এবং কোনও নকশার স্কেচ তৈরি করতে বলুন।
আপনি চ্যাটিং সমাপ্ত সময় দ্বারা
যদি তারা OOD বুঝতে পারে তবে আপনার কাছে খুব ভাল ধারণা হবে।
তাদের আবার একই সমস্যা দিন, তবে এবার আলাদা ডিজাইনের জন্য জিজ্ঞাসা করুন
এখন, তাদের পর্যবেক্ষণের ধরণটি ব্যবহার না করেই সিস্টেমটিকে নতুন করে ডিজাইন করতে বলুন (যদি তারা এটি উল্লেখ করেছেন) - তারা দায়বদ্ধতার চেইন বা সম্ভবত কোনও কমান্ড প্যাটার্নের জন্য যেতে পছন্দ করতে পারে। কোনটি আপনি সত্যই তা চিন্তা করেন না, আপনি জানেন যে জড়িত নীতিগুলি সম্পর্কে তাদের যুক্তিসঙ্গত উপলব্ধি রয়েছে।
এমনকি যদি তারা কোনও প্যাটার্ন ভিত্তিক পদ্ধতির দিকে না যায়, কেবল সমস্যা সম্পর্কিত সমস্যাটি ভেঙে দেওয়ার চেষ্টা করার উপায়টি শুনে তা আপনার ফলাফল অর্জন করবে।
আমি একটি বাস্তব বিশ্বের পরিস্থিতি বেছে নেওয়ার প্রবণতা করি, যা কারও কাছে সুপরিচিত † এবং সত্তাগুলি সনাক্ত করতে তাদের বলি; অভিনেতা জড়িত; তাদের মধ্যে কি মিথস্ক্রিয়া আছে; যেখানে সাধারণ বৈশিষ্ট্যগুলি বিমূর্ত করা যেতে পারে; কি বৈশিষ্ট্য বিবেচনা করা প্রয়োজন।
হ্যাঁ, আপনি তাদের বসতে এবং ইউএমএল আঁকতে বলতে পারেন, হ্যাঁ আপনি কিছু ওওপি বাস্তবায়ন বিশদগুলিতে তারা অনুসন্ধানের প্রশ্ন জিজ্ঞাসা করতে পারেন তারা "গ্রাউন্ডে চলমান" আঘাত করতে পারে কিনা তা দেখতে।
কিন্তু কোনও নিয়োগকর্তা তাদের টিমের মধ্যে যা প্রয়োজন তা হ'ল একটি মন যা জড়িত ধারণাগুলি বুঝতে পারে এবং যা কিছু পরিবর্তন ঘটায় সেগুলিতে প্রয়োগ করতে পারে। ধারণাগুলি এম্বেড করা হলে স্পেসিফিক্সগুলি দ্রুত শিখতে পারে।
† গভীর পরিচিতি এবং কোড সহায়তার সাথে সংযোগের অনুপস্থিতি: একটি পরিবার সকালে বাথরুম ব্যবহার করে; রাতের খাবার রান্না; কাজ করার জন্য একটি বাস রুট; একটি গাড়ী সমাবেশ।
এটি এমনটি যা বেশ ভালভাবে কাজ করছে বলে মনে হচ্ছে এবং বাস্তবে কেবল কয়েক সেকেন্ড সময় লাগে: তাদের কোনও বস্তুর মডেল ডিজাইন করতে বলুন। কিসের জন্য কিছু আসে যায় না। এটি একেবারে তুচ্ছ হতে পারে। বাস্তবে, পরীক্ষাটি অযথা টেনে না নেওয়ার জন্য এটি সম্ভবত তুচ্ছ হওয়া উচিত।
যদি তারা লিখতে প্রথম জিনিসটি কোনও অবজেক্ট হয় তবে ওও বোঝার জন্য তারা ইতিমধ্যে তাদের 99% সহকর্মীর চেয়ে এগিয়ে। যদি তারা প্রথম লেখেন তারা একটি শ্রেণি হয়, দয়া করে তাদের বাইরে গিয়ে পরবর্তী প্রার্থীকে প্রেরণ করতে বলুন এবং কেন এটি ওওপি বলা হয় এবং সিওপি নয় কেন তা নিয়ে চিন্তা করুন।