জাভা SE 8 তারিখ, উপস্থাপক জন্য একটি নতুন প্রক্রিয়া দিয়ে আসে LocalDate, LocalTimeএবং LocalDateTimeক্লাস সময় instants প্রতিনিধিত্ব করতে। যেমন instants নিপূণভাবে, পদ্ধতি একটি সেট দেওয়া হয়: LocalDate.plusDays(...), LocalDate.minusDays(...)ইত্যাদি।
আমি সর্বদা ভেবেছিলাম যে ভাল অনুশীলন ক্রিয়াপদের নামগুলি তাদের উদ্দেশ্য বর্ণনা করার পরে পদ্ধতিগুলির নামকরণ করে, যেমন পদ্ধতিগুলি প্রকৃতপক্ষে অপারেশনগুলি কার্যকর করতে হবে, যা একটি ক্রিয়া সম্পাদন করবে something শুধু উল্লেখ করতে যদি আপনি চান শ্রেণীর বিবেচনা StringBuilder, উদাহরণস্বরূপ, পদ্ধতি 'নাম append, insert, delete...
এই কেন আমাকে এটা ঠিক লাগছে না একটি পদ্ধতি নামকরণ হয় plusDaysপরিবর্তে sumDays, minusDaysপরিবর্তে subtractDays। এটা আমাকে খুব বিরক্তিকর মনে হচ্ছে? আপনি কি মনে করেন?
আমি একমাত্র কারণ ভাবতে পারি যে তারিখগুলি হ'ল অপরিবর্তনীয় বস্তু, সুতরাং কল করে plusDaysআপনি আসল বস্তুতে দিন যোগ করছেন না তবে নতুন বৈশিষ্ট্য সহ একটি নতুন তৈরি করছেন, তবে এটি খুব সূক্ষ্ম।
sqrtকেবলমাত্র একটি শব্দ যা প্রোগ্রামাররা চিনতে এবং জানতে পারে বলে আশা করা হচ্ছে। ইংলিশ শব্দটি "বর্গমূল" by তবে ইংরেজিতে যা প্রাকৃতিক তা অনুসারে জিনিসগুলির নামকরণ করা ভাল নয়। "অবৈধ" শব্দটি ধরুন, উদাহরণস্বরূপ, পুরোপুরি সূক্ষ্ম ইংরেজি শব্দ। তবে, কেউ যদি তাদের পদ্ধতির নাম রাখেন, বলুন isIllicitআমি মনে করি প্রতিবার আমি যখন এই পদ্ধতির কলটি দেখছি তখন আমার চোখের ছোঁড়া ছিঁড়ে ফেলতে চাই। এটি কেবল ভয়ঙ্কর দেখায় এবং ধারণাটি প্রকাশ করার আরও ভাল উপায় থাকতে হবে।
sumএই প্রসঙ্গে ভুল মনে হচ্ছে। আমি AddDays। নেট এর পছন্দ ।
Math.addExact(1, 2)কারণ আপনি "1 এবং 2 যোগ করুন" বলছেন। tomorrow.plusDays(2)কারণ আপনি "আগামীকাল 2 দিন" বলছেন। যদি কোনওরকম addExactসদস্য Integerহত তবে তা হত 1.plusExact(2)।
plusDaysনতুন তারিখের x সংখ্যক দিনের addDaysপ্রত্যাশা প্রত্যাশা করব , যেখানে আমি আসল অবজেক্টটি পরিবর্তনের আশা করতে পারি। যদিও এটি কেবল আমি, আমি জাভার সাথে এতটা পরিচিত নই।
sqrtযা বলা হয় বর্গমূল। এই পদ্ধতিরtakeSqrtনামকরণটি আপনার বিধি অনুসারে বোধগম্য হতে পারে তবে এটি নামকরণ করার ফলে পদ্ধতিটি আরও পাঠযোগ্য হয় না এবং এটি আরও স্পষ্ট করে তোলে না।