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