Elm:
রিফ্যাক্টরিং

কিভাবে:

ধরুন, আপনার কাছে অনেক কাজ করা একটি Elm ফাংশন আছে, যেমন UI লজিককে স্টেট আপডেটগুলির সাথে মিশ্রিত করা। এটি রিফ্যাক্টরিংয়ের জন্য একটি আদর্শ প্রার্থী। মূলত:

updateAndFormat : String -> Model -> (Model, Cmd Msg)
updateAndFormat input model =
    let
        updatedModel = { model | userInput = input }
    in
    if String.length input > 5 then
        ( updatedModel, Cmd.none )
    else
        ( model, Cmd.none )

রিফ্যাক্টরিং করার পর, আমরা চিন্তাগুলি আলাদা ফাংশনে টেনে নিয়ে আসি:

-- আপডেট লজিক আলাদা
updateUserInput : String -> Model -> Model
updateUserInput input model = 
    { model | userInput = input }

-- ফরম্যাটিং (ভিউ) লজিক ও আলাদা
formatUserInput : Model -> (Model, Cmd Msg)
formatUserInput model =
    if String.length model.userInput > 5 then
        ( model, Cmd.none )
    else
        ( { model | userInput = "" }, Cmd.none ) -- ইনপুটটি যদি খুব ছোট হয়, তার একটি উদাহরণ হিসাবে ইনপুট পরিষ্কার করে দিন।

-- আপডেট ফাংশন এখন হেল্পার ফাংশনগুলি ব্যবহার করে
updateAndFormat : String -> Model -> (Model, Cmd Msg)
updateAndFormat input model =
    model
    |> updateUserInput input
    |> formatUserInput

এই পরিবর্তনগুলির সাথে, আপনি স্পষ্ট বিচ্ছিন্নতা পেয়েছেন, এবং প্রতিটি ফাংশন বুঝতে এবং পরীক্ষা করতে সহজ হয়ে উঠেছে।

বিস্তারিত আলোচনা

রিফ্যাক্টরিংকে একটি ঔপচারিক অনুশীলন হিসাবে প্রোগ্রামিংয়ের প্রাথমিক দিনগুলিতে ফিরে যেতে পারা যায়, যখন কোড পরিবর্তনের খরচ ইতিমধ্যেই বিকাশ প্রক্রিয়ার একটি সমালোচনামূলক দিক হিসেবে চিহ্নিত করা হয়েছিল। বিশেষ করে, মার্টিন ফাউলারের “Refactoring: Improving the Design of Existing Code,” বইটি ১৯৯০-এর দশকের শেষের দিকে প্রকাশিত হয়, রিফ্যাক্টরিংকে একটি গঠনমূলক পদ্ধতি এবং “কোড স্মেলস” এর ক্যাটালগ সহ চিহ্নিত করার রিফ্যাক্টরিং সুযোগের জন্য সত্যিকারের মঞ্চ তৈরি করে।

Elm এর প্রেক্ষাপটে, রিফ্যাক্টরিং ভাষার শক্তি যেমন এর শক্তিশালী টাইপ সিস্টেমের উপর নির্ভর করে, যা প্রক্রিয়াটির সময় আত্মবিশ্বাস বৃদ্ধি করে। ম্যানুয়াল রিফ্যাক্টরিংয়ের বিকল্পগুলিতে অটোমেটেড কোড ট্রান্সফর্মেশন টুলগুলি অন্তর্ভুক্ত হতে পারে, তবে Elm এর এই এলাকায় টুলিং কিছু পুরানো ভাষাগুলির তুলনায় এখনও পরিণত হচ্ছে। বাস্তবায়নের বিস্তারিত অংশগুলি প্রায়শই ফাংশন এক্সট্র্যাকশন, নামকরণ পরিবর্তন, এবং শর্তাবলীর সরলীকরণের মতো সাধারণ রিফ্যাক্টরিংগুলির চারপাশে ঘুরে বেড়ায়। Elm এর কম্পাইলার রিফ্যাক্টরিংয়ের একটি মুখ্য সহযোগী, কারণ এটি আপনাকে অনেক কিছু নিয়ে পার পেতে দেয় না - কিছু ভুল হলে এটি চিৎকার করে, নিশ্চিত করে যে আপনার রিফ্যাক্টর করা কোড এখনও কাজ করে।

আরও দেখুন