Swift:
রিফ্যাক্টরিং
কিভাবে:
চলুন একটি সাধারণ Swift উদাহরণ দিয়ে শুরু করি যেখানে আমাদের কিছু পুনরাবৃত্তিমূলক কোড রয়েছে:
func printUserDetails(firstName: String, lastName: String, age: Int) {
print("First Name: \(firstName)")
print("Last Name: \(lastName)")
print("Age: \(age)")
}
func printUserJob(title: String, company: String) {
print("Job Title: \(title)")
print("Company: \(company)")
}
এটি রিফ্যাক্টরিং করা অন্তর্ভুক্তি থাকবে একটি User
স্ট্রাক্চার তৈরি করে ইউজারের গুণাবলী একত্রিত করা এবং বিস্তারিত প্রিন্ট করার জন্য একটি মেথড যোগ করা:
struct User {
let firstName: String
let lastName: String
let age: Int
let jobTitle: String
let company: String
func printDetails() {
print("First Name: \(firstName)")
print("Last Name: \(lastName)")
print("Age: \(age)")
print("Job Title: \(jobTitle)")
print("Company: \(company)")
}
}
let user = User(firstName: "John", lastName: "Doe", age: 30, jobTitle: "Software Developer", company: "Tech Solutions")
user.printDetails()
নমুনা আউটপুট:
First Name: John
Last Name: Doe
Age: 30
Job Title: Software Developer
Company: Tech Solutions
গভীর ডুব
রিফ্যাক্টরিং এর মূল সফটওয়্যার প্রকৌশলে প্রারম্ভিক দিনগুলিতে সন্ধান করা যায়, কিন্তু মার্টিন ফাউলারের “রিফ্যাক্টরিং: বিদ্যমান কোডের ডিজাইন উন্নতি” নামক গ্রন্থের মাধ্যমে ১৯৯০র শেষে এই শব্দটি জনপ্রিয় হয়। বইটি এই নীতি প্রতিষ্ঠা করেছিল যে কোডকে পৃথক ফেজের জন্য অপেক্ষা না করে ছোট ছোট ধাপে অবিরাম পরিষ্কার করা উচিত।
ম্যানুয়াল রিফ্যাক্টরিংয়ের বিকল্প হিসেবে অটোমেটেড টুলস এবং আইডিইগুলি (ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্টস) অন্তর্ভুক্ত থাকতে পারে যা ডুপ্লিকেট কোড সনাক্ত করতে, সহজীকরণের পরামর্শ দিতে এবং কোডের অংশ স্বয়ংক্রিয়ভাবে জেনারেট করতে সাহায্য করতে পারে। Swift ডেভেলপমেন্টের জন্য Xcode বিভিন্ন রিফ্যাক্টরিং টুলস অফার করে, যেমন রিনেইম এবং মেথড ফাংশনালিটি এক্সট্রাক্ট করা যা প্রক্রিয়াটিতে মানবিক ত্রুটির সম্ভাবনা হ্রাস করতে পারে।
রিফ্যাক্টরিং বাস্তবায়নের সময়, একটি দৃঢ় টেস্ট স্যুট থাকা গুরুত্বপূর্ণ। টেস্টগুলি একটি নিরাপত্তা জাল হিসেবে কাজ করে, নিশ্চিত করে যে আপনি যে পরিবর্তনগুলি করছেন তা বাগগুলি চালু না করে। এটি জরুরি কারণ রিফ্যাক্টরিংয়ের মূল লক্ষ্য হল বাহ্যিক আচরণকে প্রভাবিত না করে অভ্যন্তরীণ কাঠামো পরিবর্তন করা।