Code Refactoring হল একটি সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া যা মূল কোডের কার্যকারিতা পরিবর্তন না করেই কোডের গঠন বা রচনা পরিবর্তন করে। এর উদ্দেশ্য হল কোডের রিডেবিলিটি, রক্ষণাবেক্ষণযোগ্যতা এবং দক্ষতা বৃদ্ধি করা।
Eclipse IDE তে কোড রিফ্যাক্টরিং করতে অনেক সহজ এবং শক্তিশালী টুল রয়েছে, যা ডেভেলপারদের কোডের গঠন উন্নত করতে সাহায্য করে। এখানে Eclipse তে কিছু সাধারণ কোড রিফ্যাক্টরিং অপশন এবং তাদের প্রয়োগের উদাহরণ দেওয়া হলো।
1. Rename (নাম পরিবর্তন করা)
Rename অপশনটি ব্যবহার করে আপনি ক্লাস, মেথড বা ভেরিয়েবল নাম পরিবর্তন করতে পারেন। কোডের অন্যান্য অংশে সেই পরিবর্তন স্বয়ংক্রিয়ভাবে প্রতিফলিত হবে।
কোড উদাহরণ:
ধরা যাক, আপনার একটি ক্লাস আছে যা "StudentInfo" নামে। আপনি এটি "StudentDetails" এ পরিবর্তন করতে চান।
public class StudentInfo {
private String name;
private int age;
public void printDetails() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
এখন, ক্লাসের নাম "StudentInfo" থেকে "StudentDetails" এ পরিবর্তন করতে:
F2টিপুন বা মাউসের ডান ক্লিক করে Refactor > Rename নির্বাচন করুন।- নাম পরিবর্তন করুন এবং
Enterপ্রেস করুন।
পরিবর্তিত কোড:
public class StudentDetails {
private String name;
private int age;
public void printDetails() {
System.out.println("Name: " + name + ", Age: " + age);
}
}
এভাবে, Eclipse স্বয়ংক্রিয়ভাবে সমস্ত সংশ্লিষ্ট রেফারেন্সও আপডেট করবে।
2. Extract Method (মেথড নির্গত করা)
যখন কোডের একটি অংশ একাধিকবার ব্যবহার করা হয় বা কোডটি বড় হয়ে যায়, তখন সেই অংশটি আলাদা একটি মেথডে নিয়ে আসা হয়। এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে।
কোড উদাহরণ:
ধরা যাক, আপনার একটি মেথড calculateTax আছে যা কিছু গণনা করছে:
public class TaxCalculator {
public void calculateTax(int amount) {
int tax = amount * 10 / 100;
System.out.println("Tax: " + tax);
}
}
এখন, আপনি যেহেতু ট্যাক্স হিসাব করার কোডটি বারবার ব্যবহার করতে চান, তাই আপনি এই অংশটুকু একটি নতুন মেথডে extract করতে পারেন।
Extract Method করার জন্য:
Alt + Shift + Mপ্রেস করুন।- নতুন মেথডের নাম দিন, যেমন
calculateTaxAmount।
পরিবর্তিত কোড:
public class TaxCalculator {
public void calculateTax(int amount) {
int tax = calculateTaxAmount(amount);
System.out.println("Tax: " + tax);
}
private int calculateTaxAmount(int amount) {
return amount * 10 / 100;
}
}
এখন calculateTaxAmount মেথডটি আলাদা হয়ে গেছে, এবং কোডটি পরিষ্কার ও পুনঃব্যবহারযোগ্য হয়েছে।
3. Inline Method (মেথড ইনলাইন করা)
যখন আপনি কোনো মেথড আর প্রয়োজন মনে করেন না, বা সেটা খুব ছোট এবং সরাসরি কোডে ব্যবহার করা সম্ভব, তখন সেটি ইনলাইন করা হয়।
কোড উদাহরণ:
ধরা যাক, আপনি calculateTax মেথডটি আর ব্যবহার করতে চান না এবং এটি সরাসরি কোডে ইনলাইন করতে চান।
public class TaxCalculator {
public void calculateTax(int amount) {
int tax = calculateTaxAmount(amount); // মেথড কল
System.out.println("Tax: " + tax);
}
private int calculateTaxAmount(int amount) {
return amount * 10 / 100;
}
}
এখন আপনি calculateTaxAmount মেথডটিকে ইনলাইন করতে চান। Eclipse তে Alt + Shift + I ব্যবহার করে এটি ইনলাইন করা যাবে।
পরিবর্তিত কোড:
public class TaxCalculator {
public void calculateTax(int amount) {
int tax = amount * 10 / 100; // ইনলাইন করা হয়েছে
System.out.println("Tax: " + tax);
}
}
এখন calculateTaxAmount মেথডটি সরাসরি কোডে ইনলাইন করা হয়েছে।
4. Move (স্থানান্তর)
কখনো কখনো আপনার ক্লাস বা ফাইলগুলো অন্য প্যাকেজে স্থানান্তর করা প্রয়োজন হতে পারে। Eclipse এর Move অপশনটি দিয়ে আপনি সহজেই এটি করতে পারেন।
কোড উদাহরণ:
ধরা যাক, আপনার TaxCalculator ক্লাসটি com.example প্যাকেজের মধ্যে রয়েছে এবং আপনি এটি com.finance প্যাকেজে স্থানান্তর করতে চান।
পদ্ধতি:
TaxCalculatorক্লাস সিলেক্ট করুন।- রাইট-ক্লিক করে Refactor > Move নির্বাচন করুন।
- নতুন প্যাকেজ নির্বাচন করুন (
com.finance)।
পরিবর্তিত কোড:
package com.finance; // নতুন প্যাকেজ
public class TaxCalculator {
public void calculateTax(int amount) {
int tax = amount * 10 / 100;
System.out.println("Tax: " + tax);
}
}
এখন TaxCalculator ক্লাসটি com.finance প্যাকেজে স্থানান্তরিত হয়েছে।
5. Encapsulate Field (ফিল্ড এনক্যাপসুলেট করা)
প্রাইভেট ফিল্ডগুলিকে গেটার (getter) এবং সেটার (setter) মেথডের মাধ্যমে অ্যাক্সেস করা হয়, যা ইনক্যাপসুলেশন নিশ্চিত করে।
কোড উদাহরণ:
ধরা যাক, আপনার একটি ক্লাস আছে যা একটি ফিল্ড name রাখে।
public class Person {
public String name; // পাবলিক ফিল্ড
}
এখন আপনি name ফিল্ডটি প্রাইভেট করতে চান এবং এর জন্য গেটার ও সেটার তৈরি করতে চান।
Encapsulate Field করার জন্য:
- ফিল্ড সিলেক্ট করুন (এখানে
nameফিল্ড)। - রাইট-ক্লিক করে Refactor > Encapsulate Field নির্বাচন করুন।
পরিবর্তিত কোড:
public class Person {
private String name; // প্রাইভেট ফিল্ড
// গেটার মেথড
public String getName() {
return name;
}
// সেটার মেথড
public void setName(String name) {
this.name = name;
}
}
এখন name ফিল্ডটি প্রাইভেট এবং এর জন্য গেটার ও সেটার মেথড তৈরি হয়েছে।
সারাংশ:
Eclipse IDE তে Code Refactoring এর মাধ্যমে কোডের গঠন উন্নত করা হয়, যাতে কোডটি পরিষ্কার, সহজ এবং রক্ষণাবেক্ষণযোগ্য হয়। এর মাধ্যমে আপনি কোডের নাম পরিবর্তন, মেথড এক্সট্র্যাক্ট, ইনলাইন, স্থানান্তর এবং ইনক্যাপসুলেশন সহ অনেক উন্নতি করতে পারেন। Eclipse এই প্রক্রিয়াগুলির জন্য শক্তিশালী টুলস সরবরাহ করে, যা কোডের মান এবং পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে, পাশাপাশি কোডের ত্রুটি কমাতে সাহায্য করে।
Read more