অধিবর্ষ

অধিবর্ষ

সহজ

ভূমিকা

গ্রেগরিয়ান ক্যালেন্ডারে একটি অধিবর্ষ হয়:

  • যে বছর ৪ দিয়ে নিঃশেষে বিভাজ্য, সেই প্রতিটি বছরে।
  • তবে বছরটি ১০০ দিয়ে নিঃশেষে বিভাজ্য হলে তা ব্যতিক্রম: সেক্ষেত্রে বছরটি ৪০০ দিয়েও নিঃশেষে বিভাজ্য হলেই কেবল তা অধিবর্ষ হয়।

কয়েকটি উদাহরণ:

  • 1997 সাল অধিবর্ষ ছিল না, কারণ এটি ৪ দিয়ে বিভাজ্য নয়।
  • 1900 সাল অধিবর্ষ ছিল না, কারণ এটি 400 দিয়ে বিভাজ্য নয়।
  • 2000 সাল অধিবর্ষ ছিল!
Note

অধিবর্ষের পুরো ব্যাপারটা নিয়ে মজাদার, চার মিনিটের একটি ব্যাখ্যা দেখতে এই YouTube ভিডিওটি দেখুন।

নির্দেশনা

আপনার কাজ হলো একটি প্রদত্ত বছর অধিবর্ষ কি না, তা নির্ণয় করা।

ইমপ্লিমেন্টেশন

শুরু করার আগে নিশ্চিত হয়ে নিন যে টেস্ট কেসগুলো পাস করতে পারে এমন কোড কীভাবে লিখতে হয়, সেটি আপনি জানেন। আরও প্রেক্ষাপটের জন্য এই টিউটোরিয়ালটি দেখুন।

বেশিরভাগ Java অনুশীলনীতে একাধিক টেস্ট কেস থাকে। এই কেসগুলো এমনভাবে সাজানো, যাতে টেস্ট-ড্রিভেন ডেভেলপমেন্ট (TDD) নামে পরিচিত একটি দরকারি প্রক্রিয়া সমর্থিত হয়। TDD-তে একটি সুগঠিত চক্র বারবার অনুসরণ করতে হয়, যা প্রোগ্রামারদের একবারে সব নয়, বরং ধাপে ধাপে জটিল কার্যকারিতা গড়ে তুলতে সাহায্য করে। চক্রটি এভাবে বর্ণনা করা যায়:

  1. আপনার কোডে এখনো নেই এমন একটি কাঙ্ক্ষিত কার্যকারিতার অংশ বর্ণনা করে এমন একটি টেস্ট যোগ করুন।
  2. টেস্টগুলো রান করে যাচাই করুন যে সদ্য যোগ করা টেস্টটি ব্যর্থ হয়।
  3. আপনার বিদ্যমান কোড আপডেট করুন যতক্ষণ না:
    • পুরোনো সব টেস্ট আগের মতোই পাস করে;
    • নতুন টেস্টটিও পাস করে।
  4. পরিষ্কার করুন আপনার কোড, নিশ্চিত হয়ে নিন যে সব টেস্ট আগের মতোই পাস করে। এতে সাধারণত ভ্যারিয়েবলের নাম বদলানো, একই যুক্তির পুনরাবৃত্ত অংশ সরিয়ে ফেলা, অবশিষ্ট লগিং সরিয়ে ফেলা ইত্যাদি থাকে।
  5. সব কাঙ্ক্ষিত কার্যকারিতা তৈরি না হওয়া পর্যন্ত ১ নম্বর ধাপে ফিরে যান!

এই ট্র্যাকের টেস্ট ফাইলগুলোতে সেই সব টেস্ট থাকে, যা বৈধ বলে গণ্য হতে আপনার সলিউশনকে পাস করতে হবে। শুনতে এটা উপরে বর্ণিত চক্রের সঙ্গে খাপ খায় না, যেখানে টেস্ট লেখা হয় একটির পর একটি করে। তবে আমাদের টেস্ট লেখার টুল JUnit এমন একটি @Disabled অ্যানোটেশন দেয়, যা দিয়ে আগে থেকেই লেখা একটি টেস্ট সাময়িকভাবে স্কিপ করা যায়। এই অ্যানোটেশন ব্যবহার করে আমরা নিশ্চিত করি যে আপনার কাছে দেওয়া টেস্ট ফাইলগুলো নিচের নিয়মগুলো মেনে চলে:

  • যেকোনো টেস্ট ফাইলের প্রথম টেস্টটি ডিফল্টভাবে স্কিপ করা হয় না।
  • যেকোনো টেস্ট ফাইলে প্রথমটি ছাড়া সব টেস্ট ডিফল্টভাবে স্কিপ করা হয়।

এতে আপনি সামান্য পরিবর্তিত এই ধাপগুলো অনুসরণ করে TDD চক্রটি অনুকরণ করতে পারেন:

  1. টেস্টগুলো রান করে যাচাই করুন যে এখন সর্বোচ্চ একটি টেস্ট ব্যর্থ হয়।
  2. আপনার বিদ্যমান কোড আপডেট করুন যতক্ষণ না স্কিপ না করা সব টেস্ট পাস করে।
  3. আপনার কোড পরিষ্কার করুন, নিশ্চিত হয়ে নিন যে স্কিপ না করা সব টেস্ট আগের মতোই পাস করে।
  4. টেস্ট ফাইলের একদম উপরের @Disabled অ্যানোটেশনটি সরিয়ে ফেলুন।
  5. কোনো টেস্ট স্কিপ না থাকা এবং সব টেস্ট পাস হওয়া পর্যন্ত ১ নম্বর ধাপে ফিরে যান!
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Java Exercism

অধিবর্ষ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: অধিবর্ষ!

অধিবর্ষ সমাধানে ব্যবহার করা যায় এমন berbagai অ্যালগরিদম ও পদ্ধতির গভীরে ডুব দিন, যেখানে Jeremy আর Erik Exercism-এ ১০টি ভিন্ন ভাষার মজার কমিউনিটি সল্যুশন ঘেঁটে দেখছেন।