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 কোড বজায় রাখা এবং রিফ্যাক্টর করার উদ্দেশ্যে টুল এবং মডিউলগুলির জন্য।