Lua:
রিফ্যাক্টরিং
কিভাবে:
আসুন একটি সাধারণ Lua ফাংশন নিয়ে রিফ্যাক্টর করি। আমরা একটি ফাংশন দিয়ে শুরু করি যা একটি তালিকায় সংখ্যাগুলির সম্মিলন গণনা করে কিন্তু দক্ষতা বা স্পষ্টতার জন্য অনেক চিন্তা বিনা লিখিত:
function sumList(numbers)
local result = 0
for i=1, #numbers do
for j=1, #numbers do
if i == j then
result = result + numbers[i]
end
end
end
return result
end
print(sumList({1, 2, 3, 4})) -- আউটপুট: 10
রিফ্যাক্টর করে আরো দক্ষ এবং পঠনযোগ্য ভার্সনে:
function sumListRefactored(numbers)
local result = 0
for _, value in ipairs(numbers) do
result = result + value
end
return result
end
print(sumListRefactored({1, 2, 3, 4})) -- এখনো আউটপুট: 10
রিফ্যাক্টরকৃত ভার্সনটি অপ্রয়োজনীয় অভ্যন্তরীণ লুপটি দূর করে, ipairs
ব্যবহার করে পরিষ্কারভাবে তালিকা দ্বারা পুনরাবৃত্তি করে।
গভীর ডুব:
ঐতিহাসিকভাবে, রিফ্যাক্টরিং শব্দটি আসে ৮০ এর দশকের শেষের Smalltalk প্রোগ্রামিং সম্প্রদায় থেকে এবং মার্টিন ফাউলারের বই ‘Refactoring: Improving the Design of Existing Code’ দ্বারা জনপ্রিয় হয়। Lua-তে, রিফ্যাক্টরিং প্রায়ই জটিল শর্তাবলী সরলীকরণ, বড় ফাংশনগুলিকে ছোট ছোট অংশে ভাঙ্গা এবং টেবিল ব্যবহারের অনুকূলন জড়িত।
Lua-তে রিফ্যাক্টরিং এর নিজস্ব সতর্কতাগুলি রয়েছে; Lua-র গতিশীল প্রকৃতি এবং নমনীয় টাইপিং নির্দিষ্ট রিফ্যাক্টরগুলি, যেমন ভেরিয়েবল পুনঃনামকরণ অথবা ফাংশন সিগনেচার পরিবর্তন, যদি সাবধানে না করা হয় তবে ঝুঁকিপূর্ণ করে তুলতে পারে। স্ট্যাটিক কোড বিশ্লেষণের টুলগুলি (যেমন luacheck
) এরকম ঝুঁকিগুলি কমাতে পারে। বিকল্পগুলির মধ্যে টেস্ট-চালিত উন্নয়ন (TDD) অন্তর্ভুক্ত, যেখানে কোড উন্নয়নের প্রক্রিয়ার অভিন্ন অংশ হিসেবে ক্রমাগত রিফ্যাক্টর করা হয়, পৃথক রিফ্যাক্টরিং ধাপের বিপরীতে।
আরো দেখুন
- “Programming in Lua” বইটি রবার্তো ইয়েরুসালিমস্কি দ্বারা, সেরা অনুশীলন এবং উদাহরণের জন্য।
- “Refactoring: Improving the Design of Existing Code” বইটি মার্টিন ফাউলার দ্বারা, ভাষাগুলি জুড়ে প্রযোজ্য নীতিগুলির জন্য।
- LuaRocks ডিরেক্টরি (https://luarocks.org/) Lua কোড বজায় রাখা এবং রিফ্যাক্টর করার উদ্দেশ্যে টুল এবং মডিউলগুলির জন্য।