Input Validation এবং Error Handling গাইড ও নোট

Computer Programming - এল্ম (Elm) - Elm এর Forms এবং Input Handling (Forms and Input Handling)
219

Input Validation এবং Error Handling এলেম (Elm) অ্যাপ্লিকেশনে ডেটার সঠিকতা নিশ্চিত করার জন্য গুরুত্বপূর্ণ। Input Validation হল ইউজারের ইনপুটের সঠিকতা যাচাই করা এবং Error Handling হল সিস্টেমের ত্রুটিগুলি পরিচালনা এবং তাদের সম্পর্কে ইউজারকে তথ্য প্রদান করা। Elm এর টাইপ সিস্টেম এবং ফাংশনাল প্যাটার্নগুলির মাধ্যমে এই দুটি বিষয় সুনির্দিষ্টভাবে পরিচালনা করা সম্ভব। এখানে Input Validation এবং Error Handling এর কিছু কৌশল এবং Elm-এ এর প্রয়োগ আলোচনা করা হলো।


১. Input Validation in Elm (ইনপুট ভ্যালিডেশন)

Input Validation হল ইউজারের ইনপুট যাচাই করার একটি প্রক্রিয়া, যাতে ইনপুটটি নির্দিষ্ট নিয়ম বা শর্ত পূরণ করে। Elm এর ফাংশনাল এবং টাইপ সিস্টেমের মাধ্যমে ইনপুট ভ্যালিডেশন খুবই সহজ এবং নিরাপদভাবে করা যায়।

উদাহরণ: ইনপুট ভ্যালিডেশন

ধরা যাক, আমরা একটি ফর্ম তৈরি করছি যেখানে ইউজার একটি ইমেইল ইনপুট করবে এবং আমরা যাচাই করতে চাই যে ইমেইলে একটি @ চিহ্ন রয়েছে কিনা।

import Html exposing (Html, div, input, button, text)
import Html.Events exposing (onClick)
import String exposing (contains)

type Msg = SubmitForm

type alias Model =
    { email : String
    , isValid : Bool
    }

update : Msg -> Model -> Model
update msg model =
    case msg of
        SubmitForm ->
            if contains "@" model.email then
                { model | isValid = True }
            else
                { model | isValid = False }

view : Model -> Html Msg
view model =
    div []
        [ input [ onClick (\_ -> SubmitForm) ] []
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , if model.isValid then
            text "Valid Email"
          else
            text "Invalid Email"
        ]

init : Model
init = { email = "", isValid = False }

main =
    Browser.sandbox { init = init, update = update, view = view }

এখানে:

  • SubmitForm মেসেজটি ব্যবহারকারীর ইনপুট যাচাই করে।
  • contains "@" ফাংশনটি যাচাই করে যে ইমেইলে একটি @ চিহ্ন রয়েছে কিনা।
  • যদি ইমেইল সঠিক হয়, isValid ফিল্ডটি True হবে, আর না হলে False

২. Error Handling in Elm (এরর হ্যান্ডলিং)

Error Handling হল ত্রুটির ঘটনার মোকাবিলা করার প্রক্রিয়া, যাতে অ্যাপ্লিকেশন ক্র্যাশ না করে এবং ব্যবহারকারীর জন্য স্পষ্ট বার্তা প্রদর্শিত হয়। Elm এর টাইপ সিস্টেমের সাহায্যে আমরা সহজে error handling করতে পারি।

Elm এ Result এবং Maybe টাইপ ব্যবহৃত হয় ত্রুটির সাথে মোকাবিলা করতে।

১. Result Type (সফলতা এবং ব্যর্থতা)

Result টাইপ দুটি ভ্যালু ধারণ করে: Ok (সফল) এবং Err (ত্রুটি)। এটি সাধারণত যখন কোনো ফাংশন সফলভাবে কাজ করে বা কোনো ত্রুটি ঘটলে ব্যবহার করা হয়।

উদাহরণ: Result Type ব্যবহার

import Html exposing (Html, div, button, text)
import Html.Events exposing (onClick)

type Msg = SubmitForm

type alias Model =
    { number : String
    , result : String
    }

validateNumber : String -> Result String Int
validateNumber str =
    case String.toInt str of
        Just n -> Ok n
        Nothing -> Err "Invalid number"

update : Msg -> Model -> Model
update msg model =
    case msg of
        SubmitForm ->
            case validateNumber model.number of
                Ok n -> { model | result = "Valid number: " ++ String.fromInt(n) }
                Err err -> { model | result = err }

view : Model -> Html Msg
view model =
    div []
        [ button [ onClick SubmitForm ] [ text "Submit" ]
        , div [] [ text model.result ]
        ]

init : Model
init = { number = "", result = "" }

main =
    Browser.sandbox { init = init, update = update, view = view }

এখানে:

  • validateNumber ফাংশনটি String থেকে Int তে রূপান্তর করার চেষ্টা করে এবং সফল হলে Ok রিটার্ন করে, অন্যথায় Err রিটার্ন করে।
  • Result টাইপটি ব্যবহার করে আমরা সফলতা এবং ত্রুটি মোকাবিলা করছি।

২. Maybe Type (ডেটা থাকতে পারে বা না-ও থাকতে পারে)

Maybe টাইপটি ব্যবহৃত হয় যখন কোনো মান থাকতে পারে অথবা নাও থাকতে পারে, যেমন একটি অনুসন্ধান বা অ্যাক্সেস যেখানে ফলাফল অনিশ্চিত থাকে। এটি দুটি ভ্যালু ধারণ করে: Just (কিছু মান আছে) এবং Nothing (কোনো মান নেই)।

উদাহরণ: Maybe Type ব্যবহার

import Html exposing (Html, div, input, button, text)
import Html.Events exposing (onClick)
import String exposing (contains)

type Msg = SubmitForm

type alias Model =
    { email : String
    , message : String
    }

validateEmail : String -> Maybe String
validateEmail email =
    if contains "@" email then
        Just "Valid Email"
    else
        Nothing

update : Msg -> Model -> Model
update msg model =
    case msg of
        SubmitForm ->
            case validateEmail model.email of
                Just msg -> { model | message = msg }
                Nothing -> { model | message = "Invalid Email" }

view : Model -> Html Msg
view model =
    div []
        [ input [ onClick (\_ -> SubmitForm) ] []
        , button [ onClick SubmitForm ] [ text "Submit" ]
        , div [] [ text model.message ]
        ]

init : Model
init = { email = "", message = "" }

main =
    Browser.sandbox { init = init, update = update, view = view }

এখানে:

  • validateEmail ফাংশনটি চেক করে যে ইনপুটted ইমেইলে @ রয়েছে কিনা এবং তার ভিত্তিতে Just অথবা Nothing রিটার্ন করে।
  • Maybe টাইপ ব্যবহার করে সফলতা এবং ত্রুটি প্রক্রিয়া করা হচ্ছে।

৩. Error Handling with Custom Types

Custom Types এবং Union Types ব্যবহার করে আমরা আরো বিস্তারিত ত্রুটি হ্যান্ডলিং ব্যবস্থা তৈরি করতে পারি। এভাবে আমরা আরো স্পষ্ট বার্তা বা ত্রুটি ধরণ যুক্ত করতে পারি।

উদাহরণ: কাস্টম এরর টাইপ

type Error
    = InvalidInput
    | NotFound
    | ServerError String

handleError : Error -> String
handleError error =
    case error of
        InvalidInput -> "The input is invalid."
        NotFound -> "The resource was not found."
        ServerError msg -> "Server error: " ++ msg

এখানে, Error নামে একটি কাস্টম টাইপ তৈরি করা হয়েছে যা বিভিন্ন ধরনের ত্রুটি নির্দেশ করে এবং handleError ফাংশনটি সেই ত্রুটি অনুযায়ী বার্তা প্রদান করে।


উপসংহার

Input Validation এবং Error Handling Elm এ একটি শক্তিশালী ব্যবস্থা তৈরি করতে সহায়তা করে, যা অ্যাপ্লিকেশনকে আরও নির্ভরযোগ্য এবং ইউজার-ফ্রেন্ডলি করে তোলে। Elm এর টাইপ সিস্টেম, Result এবং Maybe টাইপস, এবং কাস্টম টাইপ ডিফিনিশন ব্যবহার করে আপনি ত্রুটি এবং ইনপুট যাচাইয়ের প্রক্রিয়াকে নিরাপদ ও সহজভাবে পরিচালনা করতে পারেন। Input Validation নিশ্চিত করে যে ইউজারের ইনপুট সঠিক এবং Error Handling ব্যবহারকারীদের কাছে স্পষ্ট ত্রুটি বার্তা পৌঁছানোর মাধ্যমে অ্যাপ্লিকেশনটির ব্যবহারযোগ্যতা বাড়ায়।

Content added By
Promotion

Are you sure to start over?

Loading...