সাম্প্রতিক একটি বাগ ফিক্সের জন্য আমাকে অন্যান্য দলের সদস্যদের দ্বারা লিখিত কোডটি অতিক্রম করতে হবে, যেখানে আমি এটি পেয়েছি (এটি সি #):
return (decimal)CostIn > 0 && CostOut > 0 ? (((decimal)CostOut - (decimal)CostIn) / (decimal)CostOut) * 100 : 0;
এখন, এই সমস্ত ক্যাসেটের জন্য উপযুক্ত কারণ থাকার অনুমতি দেওয়া, এটি অনুসরণ করা এখনও খুব কঠিন বলে মনে হচ্ছে। গণনায় একটি ছোট্ট ত্রুটি ছিল এবং সমস্যাটি সমাধানের জন্য আমাকে এটি আনট্যাগল করতে হয়েছিল।
আমি কোড পর্যালোচনা থেকে এই ব্যক্তির কোডিং শৈলী জানি এবং তার পদ্ধতির সংক্ষিপ্ততা প্রায় সর্বদা আরও ভাল। এবং অবশ্যই এর মূল্য আছে: আমরা সকলেই শর্তাধীন যুক্তির অযৌক্তিক জটিল চেইনগুলি দেখেছি যা কয়েকটি ভাল-বসানো অপারেটরদের সাথে সুসংহত হতে পারে। তবে তিনি অপারেটরগুলির নিম্নলিখিত শৃঙ্খলে একক বিবৃতিতে জড়িত হয়ে আমার চেয়ে স্পষ্টতই পারদর্শী।
এটি অবশ্যই অবশেষে শৈলীর বিষয়। কিন্তু কোড ব্রেভিটির জন্য প্রচেষ্টা করা কার্যকর হওয়া বন্ধ করে বোঝার পথে বাধা হয়ে দাঁড়িয়েছে এমন বিষয়টিকে স্বীকৃতি দেওয়ার জন্য কি কিছু লেখা বা গবেষণা করা হয়েছে?
কাস্টগুলির কারণ হ'ল সত্তা ফ্রেমওয়ার্ক। ডিবিগুলিকে এগুলি nlalable প্রকার হিসাবে সংরক্ষণ করতে হবে। ডেসিমাল? সি # তে দশমিকের সমান নয় এবং কাস্ট করা প্রয়োজন।
CostOut
এর সমান Double.Epsilon
, এবং তাই শূন্যের চেয়ে বড়। তবে (decimal)CostOut
সেই ক্ষেত্রে শূন্য, এবং আমাদের শূন্য ত্রুটির দ্বারা বিভাজন রয়েছে। প্রথম ধাপটি কোডটি সঠিকভাবে পাওয়া উচিত যা আমি মনে করি এটি এটি নয়। এটি সঠিক হয়ে নিন, পরীক্ষার কেসগুলি তৈরি করুন এবং তারপরে এটি মার্জিত করুন । মার্জিত কোড এবং সংক্ষিপ্ত কোডের মধ্যে প্রচুর মিল রয়েছে তবে কখনও কখনও সংক্ষিপ্ততা কমনীয়তার আত্মা হয় না।