"আপনি এই ওয়েবসাইটটি / অ্যাপ্লিকেশনটি কীভাবে তৈরি করবেন" সাক্ষাত্কার প্রশ্নগুলির জন্য সাধারণ চিন্তা প্রক্রিয়া [বন্ধ]


14

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

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

এই সিস্টেমগুলি ডিজাইন করার সময় কি কোনও সাধারণ পদ্ধতির বা চিন্তার প্রক্রিয়া রয়েছে? এবং সাধারণ সমস্যা / সমস্যাগুলি মনে হয় যে ডিজাইনে আমার এড়ানো উচিত? কেউ হয়ত এগুলির মধ্যে একটির (বা সর্বোপরি সকলের প্রয়োজনের তুলনা করার মাধ্যমে) আমাকে হাঁটাতে এবং ব্যাখ্যা করতে পারেন:

1) আপনি কীভাবে সত্ত্বাগুলির প্রয়োজনীয়তার সাথে আসবেন? 2) আপনি কীভাবে সিদ্ধান্ত নেবেন যে সমস্ত কিছুর সম্পর্ক থাকবে? 3) আপনি কীভাবে আপনার নকশায় পারফরম্যান্স অপটিমাইজেশন যুক্ত করবেন? 4) আমি কি ক্লাস বা ডাটাবেস ব্যবহার করে এটি করি? এটির কি কোনও পার্থক্য রয়েছে (উদাহরণস্বরূপ, আমার কাছে এমন কোনও শ্রেণি রয়েছে যা উদাহরণস্বরূপ একটি ডাটাবেস টেবিলটিতে অনুবাদ করা যায় না?)

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

আমার মনোযোগ: ফটো ভাগ করে নেওয়ার অ্যাপ্লিকেশনটির সাথে আমার ক্লাস / টেবিল থাকবে: নিশ্চিতভাবে ফটো এবং ব্যবহারকারী।

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

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

আমি কেবল কয়েকটি সাধারণ নিয়মাবলী / নির্দেশিকা অনুসরণ করার জন্য আশা করছি কারণ এই মুহূর্তে আমার কোনও ধারণা নেই যে একটি বৃহত সিস্টেমের জন্য একটি ভাল আর্কিটেকচার কেমন লাগে তা কীভাবে বলতে হয়।


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

উত্তর:


19

এই জাতীয় প্রশ্নের মূল বিষয় হ'ল কোনও সফ্টওয়্যার অ্যাপ্লিকেশন লেখার ক্ষেত্রে আপনার বাস্তব-বিশ্ব দক্ষতা আছে কিনা তা যাচাই করা। আপনি কিছু তত্ত্ব শিখেছেন, তবে তাত্ত্বিক জ্ঞান কেবল এতদূর যেতে পারে। সফটওয়্যার বিকাশকে সত্যিকারের বোঝার একমাত্র উপায় হ'ল এটি করা।

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

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

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


8

দেখে মনে হচ্ছে এটি কোনও ডাটাবেস স্কিমা বা শ্রেণি সংজ্ঞা (বা উভয়?) এর গুচ্ছ আশা করছে

আমি মনে করি আপনি এখানে বিশদ বিবরণ উপর খুব মনোনিবেশিত। এই প্রশ্নের সাথে, নিয়োগকারী আপনার লেখা সমস্ত শ্রেণীর সম্পূর্ণ বিবরণ আশা করছে না (অন্যথায় তারা আপনাকে এটি কোড করতে বলেছে, এটি সম্পর্কে কথা বলবে না)।

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

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

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

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


2

আমি ভেবেছিলাম আপনার প্রথম প্রশ্নটিতে আমি একটি দ্রুত মন্তব্য করব:

1) আপনি কীভাবে সত্ত্বাগুলির প্রয়োজনীয়তার সাথে আসবেন?

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

বিশেষ্যগুলি বস্তু হতে থাকে, ক্রিয়াগুলি ব্যবহারের ক্ষেত্রে বা পদ্ধতিতে থাকে।

শারীরিক: ফটো (স্পষ্ট!), ডিসপ্লে টাইপ, সিস্টেম, ফটো ফাইল, ফাইল ফর্ম্যাট, ব্যবহারকারী, তারিখ ....
ধারণাগত: যোগ করুন, মুছুন, সংরক্ষণ করুন / সংরক্ষণ করুন, পুনরুদ্ধার করুন, সাজান, পরিবর্তন করুন, দেখুন ফটো / প্রদর্শন ....

বিশেষ্য এবং ক্রিয়াগুলির মধ্যে সংযোগ তৈরি করুন। ব্যবহারকারী ছবি যোগ করে। (ভাল - একটি ব্যবহারের কেস আছে!)

আমি ইউএমএল এবং ডিজাইন প্যাটার্নগুলি এবং সেগুলি কীভাবে জেনেরিক ওওডে ব্যবহার করা যেতে পারে তা দেখার পরামর্শ দেব। (বিজ্ঞপ্তি - আমি উপরে কোথাও কোনও ভাষা বা একটি ডেটাবেস উল্লেখ করি নি a কোন ভাষা বাছাই না করে আপনার OOD করুন your

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