কিছু পুরানো ভিবি কোডটি পুনরায় লেখার দায়িত্বে আছি। আমি বুঝতে পারি যে এটি কীভাবে কাজ করে তবে আমি মনে করি তারা কী করেছে তা করার জন্য আরও সুদূরপ্রস্তুত উপায় রয়েছে। আমি ঠিক বুঝতে পারি না এটি কী। এখানে একটি স্বল্প উদাহরণ দেওয়া আছে যে ডেটা প্রয়োজনীয়তার ক্ষেত্রে আমার যা করা দরকার তার সাথে সত্যই মিল রয়েছে।
ব্যবহারকারীকে একটি জিইউতে তাদের গাড়ির নির্মাতা, মেক, মডেল এবং রঙ বাছাই করতে হবে। আমার কাছে একটি বিশাল টেক্সট ফাইল রয়েছে যা দেখতে এরকম কিছু দেখাচ্ছে:
Ford Truck F150 red
Ford Truck F150 blue
Ford Truck F150 black
Ford Truck F150 silver
Ford Truck F250 red
Ford Truck F250 green
Ford Sedan Taurus red
Ford Sedan Taurus green
Ford Sedan Taurus white
Ford...
...
Subaru SUV Forester blue
Subaru SUV Forester red
Subaru SUV Outback Black
Subaru SUV Outback Green
Subaru SUV Outback Blue
Subaru SUV Outback Red
Subaru...
...
etc.
তাই আপনি যদি প্রথম নির্বাচন সুবারু হয়, তাহলে দ্বিতীয়টি বাক্স (করতে) উচিত না ট্রাক নির্বাচন করতে কারণ Subarus কেউই ট্রাক হয় একটি অপশন আছে। একইভাবে, যদি তারা ফোর্ড, সেদান এবং বৃষ নির্বাচন করে, তবে শেষ বাক্সে (রঙ) নীল নির্বাচন করার কোনও বিকল্প প্রদর্শন করা উচিত নয় । বা কালো। বা লাল, সবুজ বা সাদা ছাড়া অন্য কিছু।
আমার আগে কোড লিখেছেন এমন লোকেরা এটি নিয়ে এসেছিল (পাইথন-ওয়াই স্যুয়েডোকোডে):
def getValidOptions():
items = []
for i from 0 to numRows:
options = getLine().split()
if selectingManufacturer:
if options[0] not in items:
items.append(options[0])
else if selectingMake:
if selectedManufacturer == options[0] and options[1] not in items:
items.append(options[1])
else if selectingModel:
if selectedManufacturer == options[0] and selectedMake == options[1] and options[2] not in items:
items.append(options[2])
else if selectingColor:
if selectedManufacturer == options[0] and selectedMake == options[1] and selectedModel == options[2] and options[3] not in items:
items.append(options[3])
return items
আমি মনে করি এটি কেবল অ্যালগোরিদম স্তরে এবং একটি বাক্য গঠন স্তরে উভয়ই ঘৃণ্য। একটির জন্য, এটি পুরো ফাইলটি পার্স করে, যখন এটি সঠিকভাবে করা হয় কেবল তখন কয়েকটি লাইন পড়ে। এটিকে আরও অকার্যকর করার জন্য, আমার আসল ডেটাতে কেবল 4 এর পরিবর্তে 6 টি নির্বাচন করার জন্য বিকল্প রয়েছে যা এটি আরও বেশি ডেটা সংরক্ষণ করে তার পরে ডাটা ডুপ্লিকেশনটির পরিমাণের ভিত্তিতে এটি প্রয়োজন।
আমি ফাইলে ডেটা সংরক্ষণ করার একটি আলাদা উপায় বা getValidOptions
ফাংশনটিকে আরও সুন্দর এবং আরও দক্ষ করার জন্য এটি আলাদা করে আলাদা পদ্ধতিতে খুঁজছি । আমি কি এটি করতে পারে কোন উপায় আছে?