আমি এমন এক ডিভাইসের জন্য একটি অবজেক্ট মডেল তৈরি করছি যার একাধিক চ্যানেল রয়েছে। ক্লায়েন্ট এবং আমি মধ্যে ব্যবহার বিশেষ্য হয় Channel
এবং ChannelSet
। ("সেট" শব্দার্থগতভাবে সঠিক নয়, কারণ এটি অর্ডার করা হয়েছে এবং একটি সঠিক সেট নয় But তবে এটি অন্য সময়ের জন্য সমস্যা))
আমি সি # ব্যবহার করছি। এখানে এর ব্যবহারের উদাহরণ রয়েছে ChannelSet
:
// load a 5-channel ChannelSet
ChannelSet channels = ChannelSetFactory.FromFile("some_5_channel_set.json");
Console.Write(channels.Count);
// -> 5
foreach (Channel channel in channels) {
Console.Write(channel.Average);
Console.Write(", ");
}
// -> 0.3, 0.3, 0.9, 0.1, 0.2
সবই ড্যান্ডি। তবে, ক্লায়েন্টরা প্রোগ্রামার নয় এবং তারা একেবারে শূন্য সূচক দ্বারা বিভ্রান্ত হবে - প্রথম চ্যানেলটি তাদের কাছে চ্যানেল 1। তবে, সি # এর সাথে ধারাবাহিকতার জন্য, আমি ChannelSet
শূন্য থেকে সূচকে রাখতে চাই ।
এটি আমার ডেভ টিম এবং ক্লায়েন্টদের মধ্যে ইন্টারঅ্যাক্ট করার সময় কিছু সংযোগ স্থাপনের কারণ নিশ্চিত। তবে আরও খারাপ, কোডবেসের মধ্যে কীভাবে এটি পরিচালনা করা হয় তার কোনও অসঙ্গতি একটি সম্ভাব্য সমস্যা। উদাহরণস্বরূপ, এখানে একটি ইউআই স্ক্রিন রয়েছে যেখানে শেষ ব্যবহারকারী ( যিনি 1 ইনডেক্সিংয়ের শর্তে ভাবেন ) চ্যানেল 13 সম্পাদনা করছেন:
যে Save
বোতামটি শেষ পর্যন্ত কিছু কোডের ফলাফল হতে চলেছে। যদি ChannelSet
1 সূচকযুক্ত হয়:
channels.GetChannel(13).SomeProperty = newValue; // notice: 13
বা এটি যদি শূন্য সূচকযুক্ত হয়:
channels.GetChannel(12).SomeProperty = newValue; // notice: 12
আমি কীভাবে এটি পরিচালনা করব তা নিশ্চিত নয়। আমি মনে করি যে অর্ডার করা, পূর্ণসংখ্যার-সূচকযুক্ত জিনিসগুলি ( ChannelSet
# ChannelSet
) সি # মহাবিশ্বের সমস্ত অ্যারে এবং তালিকা ইন্টারফেসের সাথে সামঞ্জস্য রাখার জন্য এটি ভাল অনুশীলন (শূন্য সূচক দ্বারা )। তবে তারপরে ইউআই এবং ব্যাকএন্ডের মধ্যে প্রতিটি কোডের জন্য একটি অনুবাদের প্রয়োজন হবে (1 দ্বারা বিয়োগ) এবং আমরা সবাই জানি ইতিমধ্যে কতটা কুখ্যাত এবং সাধারণ একের পর এক ত্রুটি।
তো, এমন কোনও সিদ্ধান্ত কি কখনও আপনাকে কামড় দিয়েছে? আমার কি শূন্য সূচক বা একটি সূচক হওয়া উচিত?