uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
ToCode
1 419
# ื‘ื•ืื• ื ืžืฆื ืžืกืคืจื™ื ืฉืžื—ื™ื ืขื Elixir ืžืกืคืจ ืฉืžื— ื”ื•ื ืžืกืคืจ ืฉืกื›ื•ื ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ืฉืœื• ื‘ืกื•ืฃ ื™ื•ืฆื 1. ืžืกืคืจ ืขืฆื•ื‘ ื”ื•ื ืžืกืคืจ ืฉืกื›ื•ื ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ืฉืœื• ืœื ื™ื•ืฆื 1, ืœื ืžืฉื ื” ื›ืžื” ืคืขืžื™ื ืžืขืœื™ื ื‘ืจื™ื‘ื•ืข ื•ืžื—ื‘ืจื™ื. ื›ื›ื” ื™ื•ืฆื ืฉ 7 ื”ื•ื ืžืกืคืจ ืฉืžื—, ื›ื™ ื›ืฉืžืขืœื™ื ืื•ืชื• ื‘ืจื™ื‘ื•ืข ืžืงื‘ืœื™ื 49, ื•ื›ืฉืžืขืœื™ื ื‘ืจื™ื‘ื•ืข ืืช ืฉืชื™ ื”ืกืคืจื•ืช ืฉืœ 49 ืžืงื‘ืœื™ื 16 ื• 81 ืฉืกื›ื•ืžื ื™ื•ืฆื 97, ืžืžืฉื™ื›ื™ื ืขื•ื“ ืกื™ื‘ื•ื‘ ื•ืžืงื‘ืœื™ื ืืช 49 ื• 81 ืฉืกื›ื•ืžื ื”ื•ื 130, ื•ืขื›ืฉื™ื• ืื ื—ื ื• ืžืชืงืจื‘ื™ื ืœืžืฉื”ื• ื›ื™ 3 ื‘ืจื™ื‘ื•ืข ื–ื” 9 ื• 1 ื‘ืจื™ื‘ื•ืข ื ืฉืืจ 1, ื™ื—ื“ ื”ื ื ื•ืชื ื™ื 10, ืฉืกื›ื•ื ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ืฉืœื• ื”ื•ื ืคืฉื•ื˜ 1 ื‘ืจื™ื‘ื•ืข ื•ืขื•ื“ ืืคืก ื‘ืจื™ื‘ื•ืข ื›ืœื•ืžืจ ื”ืžืกืคืจ 1. ืœืขื•ืžืชื• 4 ื”ื•ื ืžืกืคืจ ืขืฆื•ื‘ ื›ื™ ื‘ืจื™ื‘ื•ืข ื”ื•ื ื ื•ืชืŸ 16, ื•ื›ืฉืžืขืœื™ื ื‘ืจื™ื‘ื•ืข ืืช 1 ื• 6 ืžืงื‘ืœื™ื 1 ื• 36, ืฉื–ื” ื™ื—ื“ 37, ื”ืกื›ื•ื ื”ื‘ื ื”ื•ื 58, ืื—ืจื™ ื–ื” 89, ื•ืื– 145, 42, 20 ื•ืฉื•ื‘ 4. ื‘ื•ื™ืงื™ืคื“ื™ื” ื™ืฉ ื›ืœ ืžื™ื ื™ ืกื™ืคื•ืจื™ื ืžืขื ื™ื™ื ื™ื ืขืœ ืžืกืคืจื™ื ืฉืžื—ื™ื ื•ื’ื ื“ื•ื’ืžืช ืงื•ื“ ื‘ืคื™ื™ืชื•ืŸ ืฉืžื•ืฆืืช ืื•ืชื, ืื‘ืœ ืื ื™ ื—ืฉื‘ืชื™ ืฉื–ื• ื”ื–ื“ืžื ื•ืช ื˜ื•ื‘ื” ืœื”ื•ืจื™ื“ ื—ืœื•ื“ื” ืžืืœื™ืงืกื™ืจ ื•ืœื™ื”ื ื•ืช ืžื›ืœ ื”ืคื™ื ื•ืงื™ื ืฉืœ ื”ืจืงื•ืจืกื™ื•ืช ื‘ืฉืคื” ืคื•ื ืงืฆื™ื•ื ืืœื™ืช. ## ืื™ืš ืกื•ื›ืžื™ื ืืช ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ื›ื‘ืจ ื‘ืฆืขื“ ื”ืจืืฉื•ืŸ ื‘ื”ืชืžื•ื“ื“ื•ืช ืขื ืชืจื’ื™ืœ ื›ื–ื” ื‘ืจื•ืจ ืฉื ืฆื˜ืจืš ืœืงื—ืช ืžืกืคืจ ื•ืœื—ืฉื‘ ืืช ืกื›ื•ื ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ืฉืœื•. ื‘ืฉืคื” ืคื•ื ืงืฆื™ื•ื ืืœื™ืช ื–ื” ื™ื”ื™ื” ืฉืœื•ืฉ ืคืขื•ืœื•ืช: 1. ืคื™ืฆื•ืœ ืžืกืคืจ ืœืกืคืจื•ืช 2. ื”ืขืœืื” ืฉืœ ื›ืœ ืกื™ืคืจื” ื‘ืจื™ื‘ื•ืข 3. ื—ื™ืฉื•ื‘ ื”ืกื›ื•ื ื‘ืืœื™ืงืกื™ืจ ื›ืฉื™ืฉ ืœื™ ืขืจืš ื™ื—ื™ื“ (ืžืกืคืจ) ื•ืื ื™ ืจื•ืฆื” ืœื”ืคื•ืš ืื•ืชื• ืœืจืฉื™ืžื” ืฉืœ ืกืคืจื•ืช ืื ื™ ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื” Stream.unfold. ื›ืŸ, ืื ื™ ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืขื•ื“ ื”ืจื‘ื” ืฉื™ื˜ื•ืช ื•ืคื•ื ืงืฆื™ื•ืช, ืื‘ืœ ืื ื™ ืื•ื”ื‘ ืืช ื”ื’ืžื™ืฉื•ืช ืฉืœ unfold. ื‘ื’ื“ื•ืœ ื”ื™ื ืœื•ืงื—ืช ืขืจืš ืจืืฉื•ื ื™ ื•ืคื•ื ืงืฆื™ื”, ื•ืื– ืžืคืขื™ืœื” ืืช ื”ืคื•ื ืงืฆื™ื” ืขืœ ื”ืขืจืš. ื”ื™ื ืžืฆืคื” ืœืงื‘ืœ ืฉืชื™ ืชื•ืฆืื•ืช, ื”ืจืืฉื•ื ื” ื”ื™ื "ื”ืขืจืš" ื”ื‘ื ื‘ืกื™ื“ืจื”, ื•ื”ืฉื ื™ื” ื”ื™ื ื”ืงืœื˜ ืœ unfold ื”ื‘ื. ื›ืฉืฆืจื™ื›ื™ื ืœืคืจืง ืžืกืคืจ ืœืกืคืจื•ืช ืืคืฉืจ ืœืงื—ืช ืืช ืฉืืจื™ืช ื”ื—ืœื•ืงื” ื‘ืขืฉืจ ื‘ืชื•ืจ ื”ืขืจืš ื”ื‘ื ืœืกื™ื“ืจื”, ื•ืืช ื—ืœื•ืงืช ื”ืฉืœืžื™ื ื‘ืขืฉืจ ื‘ืชื•ืจ ื”ืงืœื˜ ืœ unfold ื”ื‘ื. ื‘ืžื™ืœื™ื ืื—ืจื•ืช ื–ืืช ื“ืจืš ืื—ืช ืœืคืจืง ืžืกืคืจ ืœืกืคืจื•ืช ืฉืœื• ื‘ืืœื™ืงืกื™ืจ:
Stream.unfold(n, fn 
  0 -> nil
  n -> { rem(n, 10), div(n, 10) }
end)
ืื ื—ื ื• ืœื ืขื•ืฆืจื™ื ื‘ื—ืœื•ืงื” ืœืกืคืจื•ืช ื•ืจื•ืฆื™ื ื’ื ืœื”ืขืœื•ืช ื‘ืจื™ื‘ื•ืข ื›ืœ ืกื™ืคืจื” (map) ื•ืื—ืจื™ ื–ื” ืœืกื›ื•ื ืืช ื”ืชื•ืฆืื•ืช (sum). ืกืš ื”ื›ืœ ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืคื•ื ืงืฆื™ื” ืจืืฉื•ื ื” ื›ื–ืืช:
def sum_squared_digits(n) do
  Stream.unfold(n, fn 
    0 -> nil
    n -> { rem(n, 10), div(n, 10) }
  end)
  |> Enum.map(&(&1 ** 2))
  |> Enum.sum
end
## ืื™ืš ื‘ื•ื“ืงื™ื ืื ืžืกืคืจ ื”ื•ื ืฉืžื— ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ืืช ื”ื›ืœื™ื ืœื”ืชืงื“ื ืœืฆืขื“ ื”ืฉื ื™ ื•ื”ื•ื ื”ื‘ื“ื™ืงื” ืื ืžืกืคืจ ื”ื•ื ืžืกืคืจ ืฉืžื—. ื”ืคื•ื ืงืฆื™ื” ื”ืจืงื•ืจืกื™ื‘ื™ืช ืžืงื‘ืœืช ืžืกืคืจ ื•ืืช ืจืฉื™ืžืช ื›ืœ ื”ืžืกืคืจื™ื ืฉื›ื‘ืจ ืจืื™ื ื• ื•ืฆืจื™ื›ื” ืœื”ืชื ื”ื’ ื›ื›ื”: 1. ื”ืžืกืคืจ 1 ื”ื•ื ืฉืžื—. 2. ืžืกืคืจ ืฉืื™ื ื• 1 ื•ืฉื ืžืฆื ื‘ืจืฉื™ืžืช ื”ืžืกืคืจื™ื ืฉืจืื™ื ื• ื”ื•ื ืขืฆื•ื‘. 3. ืžืกืคืจ ืฉืื™ื ื• 1 ื•ืฉืื™ื ื• ื ืžืฆื ื‘ืจืฉื™ืžืช ื”ืžืกืคืจื™ื ืฉืจืื™ื ื• ืื•ืœื™ ื™ื”ื™ื” ืฉืžื— ื•ืื•ืœื™ ื™ื”ื™ื” ืขืฆื•ื‘. ืฆืจื™ืš ืœื”ืคืขื™ืœ ืžื—ื“ืฉ ืืช ื”ืคื•ื ืงืฆื™ื” ืขื ืกื›ื•ื ืจื™ื‘ื•ืขื™ ื”ืกืคืจื•ืช ืฉืœื•, ื•ืœื”ื•ืกื™ืฃ ืื•ืชื• ืœืจืฉื™ืžืช ื”ืžืกืคืจื™ื ืฉืจืื™ื ื•. ื‘ืชืจื’ื•ื ืœืืœื™ืงืกื™ืจ ื–ื” ื ืจืื” ื›ืš:
def is_happy(n, seen \\ %{}) do
  cond do
    n == 1 ->
      true

    Map.has_key?(seen, n) ->
      false

    true -> 
      is_happy(
        sum_squared_digits(n),
        Map.put(seen, n, true)
      )
  end
end
## ืื™ืš ืžื•ืฆืื™ื ืืช ื›ืœ ื”ืžืกืคืจื™ื ื”ืฉืžื—ื™ื ืขื“ 100 ื‘ืฉื‘ื™ืœ ืœื”ืชื—ื™ืœ ืœืžืฆื•ื ืžืกืคืจื™ื ืฉืžื—ื™ื ืื ื™ ื™ื›ื•ืœ ืœืจื•ืฅ ื‘ืœื•ืœืื” ืขืœ ืจืฉื™ืžื” ืฉืœ ืžืกืคืจื™ื ื•ืœื”ืคืขื™ืœ ืืช ื”ืคื•ื ืงืฆื™ื” filter, ืฉืžืกื ื ืช ืžื”ืจืฉื™ืžื” ืจืง ืืช ื”ืžืกืคืจื™ื ืฉืžืชืื™ืžื™ื ืœืชื ืื™. ื”ื“ืคืกืช ื”ืžืกืคืจื™ื ื”ืฉืžื—ื™ื ืขื“ 100 ื”ื™ื:
def main() do
  1..100
  |> Enum.filter(&is_happy/1)
  |> IO.inspect
end
ื•ื”ืงื•ื“ ื”ืžืœื ื‘ืืœื™ืงืกื™ืจ ื”ื•ื:
defmodule HappyNumbers do
  def main() do
    1..100
    |> Enum.filter(&is_happy/1)
    |> IO.inspect
  end

  def is_happy(n, seen \\ %{}) do
    cond do
      n == 1 ->
        true

      Map.has_key?(seen, n) ->
        false

      true -> 
        is_happy(
          sum_squared_digits(n),
          Map.put(seen, n, true)
        )
    end
  end

  def sum_squared_digits(n) do
    Stream.unfold(n, fn 
      0 -> nil
      n -> { rem(n, 10), div(n, 10) }
    end)
    |> Enum.map(&(&1 ** 2))
    |> Enum.sum
  end
end

HappyNumbers.main()
ื•ื‘ื’ื™ืจืกื” ืื™ื ื˜ืจืงื˜ื™ื‘ื™ืช ืื ืืชื ืงื•ืจืื™ื ืืช ื”ืคื•ืกื˜ ื‘ื“ืคื“ืคืŸ: <iframe frameborder="0" width="100%" height="500px" src="https://replit.com/@ynonp/ShrillClientsideUsernames?lite=true"></iframe>

ToCode
1 419
# ื›ืฉื”ืงื•ื“ ืฉื›ืชื‘ืช ื™ื•ืฆื ืžืกื•ื‘ืš ื™ื•ืชืจ ืžืžื” ืฉืจืฆื™ืช ืœืคืขืžื™ื ืืชื” ืžืกืชื›ืœ ืขืœ ื‘ืขื™ื” ื•ื—ื•ืฉื‘ "ืื•ืงื™ื™ ืื ื™ ื™ื›ื•ืœ ืœืคืชื•ืจ ืืช ื–ื”, ื–ื” ืœื ื ืจืื” ืžืกื•ื‘ืš", ืื‘ืœ ื›ืฉืžืชื—ื™ืœ ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“ ืคืชืื•ื ืืชื” ืžื’ืœื” ืขื•ื“ ื•ืขื•ื“ ืžืงืจื™ื ืฉืฆืจื™ืš ืœื˜ืคืœ ื‘ื”ื ื•ื”ื“ื‘ืจ ื”ื–ื” ืฉื”ื™ื” ื ืจืื” ืคืฉื•ื˜ ื›ื‘ืจ ื”ื•ืคืš ืœืกืื’ื”. ื–ื” ืœื ืื•ืžืจ ืฉื”ืงื•ื“ ื’ืจื•ืข. ื–ื” ืœื ืื•ืžืจ ืฉื”ื‘ืขื™ื” ืงืฉื” ืžื“ื™ ื•ืฆืจื™ืš ืœืœื›ืช ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืื—ืจื•ืช. ื–ื” ืœื ืื•ืžืจ ืฉืืชื” ืœื ืžืชื›ื ืช ื˜ื•ื‘. ื–ื” ืœื ืื•ืžืจ ืฉืฆืจื™ืš ืœืžืฆื•ื ืกืคืจื™ื” ื—ื™ืฆื•ื ื™ืช ืฉืชืขืฉื” ืืช ื”ื“ื‘ืจ ื”ื–ื”. ื–ื” ื‘ืกืš ื”ื›ืœ ืื•ืžืจ ืฉืชื›ื ื ืช ืœืœื›ืช ื‘ืžืกืœื•ืœ ืžืกื•ื™ื ื•ืœื—ื™ื™ื ื”ื™ื• ืชื•ื›ื ื™ื•ืช ืื—ืจื•ืช. ื‘ืคืขื ื”ื‘ืื” ืืคืฉืจ ืœื“ื‘ืจ ื•ืœื”ื™ืขืจืš ื˜ื•ื‘ ื™ื•ืชืจ (ืื• ืฉืœื). ืื‘ืœ ื›ืจื’ืข, ื”ื™ื•ื, ืขื ื”ื‘ืขื™ื” ื”ื–ืืช ื•ื”ื‘ืื’ื™ื ื”ืืœื” ื”ื“ื‘ืจ ื”ื›ื™ ื˜ื•ื‘ ืœืขืฉื•ืช ื”ื•ื ืžื” ืฉืชืžื™ื“ ืขืฉื™ื ื• - ืœื›ืชื•ื‘ ืงื•ื“, ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช, ืœืชืงืŸ ื•ืœื”ื•ืกื™ืฃ ื˜ื™ืคื•ืœ ื‘ืขื•ื“ ืžืงืจื™ ืงืฆื”. ื’ื ื›ืฉื™ืฉ ื”ืจื‘ื” ืžื”ื.

ToCode
1 419
# ืฉื˜ื— ืžืช ืื ื™ ื›ื•ืชื‘ ื”ืจื‘ื” ืจื™ืืงื˜ ื‘ืชืงื•ืคื” ื”ืื—ืจื•ื ื”, ืื•ืœื™ ืืคื™ืœื• ื™ื•ืชืจ ืžื“ื™. ื›ืš ื™ืฆื ืฉื›ืฉื™ืฉื‘ืชื™ ืœื›ืชื•ื‘ HTML ืจื’ื™ืœ ื”ืงืœื“ืชื™ ื‘ืœื™ ืœืฉื™ื ืœื‘:
<div />
<div />
<div />
<div />
ืคืชื—ืชื™ ืื•ืชื• ื‘ื“ืคื“ืคืŸ, ื” CSS ื›ืžื•ื‘ืŸ ื ืฉื‘ืจ ืœื’ืžืจื™ ื•ืื ื™ ืžืกืชื›ืœ ื•ืœื ืจื•ืื” ืืช ื”ื‘ืขื™ื”. ื›ืื™ืœื• ืฉื˜ื— ืžืช. ื‘ืจื›ื‘ ืืคืฉืจ ืœื›ื•ื•ืŸ ืืช ื”ืžืจืื•ืช ืื• ืœืงื ื•ืช ืžื•ื‘ื™ืœืื™ื™ ื›ื“ื™ ืœื”ื™ืœื—ื ื‘ืฉื˜ื—ื™ื ื”ืžืชื™ื. ื‘ืงื•ื“, ืœื›ืœ ืฉืคืช ืชื›ื ื•ืช ื•ืกื‘ื™ื‘ื” ื™ืฉ ืืช ื”ื“ืจื›ื™ื ืฉืœื” ื•ืขื ื”ื–ืžืŸ ืื ื—ื ื• ืœื•ืžื“ื™ื ืœืฉื™ื ืœื‘ ื•ืœื‘ื ื•ืช ืขื•ื“ ื“ืจื›ื™ื ื›ื“ื™ ืœืจืื•ืช ื˜ื•ื‘ ื™ื•ืชืจ. ื‘ HTML ืฉื•ื•ื” ืœื”ืฉืชืžืฉ ื‘ HTML Hint, ืฉืื•ืžื ื ืœื ื–ื™ื”ื” ืืช ื”ื‘ืขื™ื” ื”ืคืขื ืื‘ืœ ืขื•ื–ืจ ืœื–ื”ื•ืช ืื™ื ืกื•ืฃ ื‘ืขื™ื•ืช ืื—ืจื•ืช. ื“ืจืš ืฉื ื™ื” ื”ื™ื ืœื”ืชืจื’ืœ ืœืคืชื•ื— ืืช ื”ืงื•ื‘ืฅ ื‘ื“ืคื“ืคืŸ ืขื Inspect Element ื›ื“ื™ ืœืจืื•ืช ืื™ืš ื”ื“ืคื“ืคืŸ ืจื•ืื” ืืช ื”ืขืžื•ื“. ื›ืคืชื•ืจ ื–ื” ืžื™ื“ ื”ื™ื” ืžืจืื” ืืช ื”ื‘ืขื™ื” ื›ื™ ื‘ื—ืœื•ืŸ ื” Inspect ืื ื™ ืจื•ืื” ืžื” ื‘ืืžืช ืงื•ืจื” ืฉื:
<div>
    <div>
        <div>
            <div></div>
        </div>
    </div>
</div>

ToCode
1 419
# ื˜ื™ืค ื˜ื™ื™ืคืกืงืจื™ืคื˜: ืคื™ืฆื•ืœ ืžืžืฉืงื™ื ื‘ื›ืชื™ื‘ืช TypeScript ื”ืจื‘ื” ืคืขืžื™ื ืื ื™ ืืชื—ื™ืœ ื‘ื”ื’ื“ืจืช ืกื•ื’ื™ ื”ืžืฉืชื ื™ื ื‘ื’ื•ืฃ ื”ืคื•ื ืงืฆื™ื” ื‘ืชื•ืจ ืื•ื‘ื™ืงื˜. ื‘ืจื™ืืงื˜ ื–ื” ื™ื”ื™ื” ืžืฉื”ื• ื›ื–ื”:
function Counter(props: { initialValue: number, step: number }) {
}
ืขื ื”ื’ื“ื™ืœื” ืฉืœ ื”ืงื•ืžืคื•ื ื ื˜ื” ื˜ื‘ืขื™ ืœื”ื•ืกื™ืฃ ืขื•ื“ ืžืฉืชื ื™ื ื‘ props. ืœืคืขืžื™ื ื ื•ื— ืœื ื• ื’ื ืœื”ื•ืฆื™ื ืืช ื›ืœ ื”ื”ื’ื“ืจื” ืœืงื•ื‘ืฅ ืื—ืจ ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœื”ืฉืชืžืฉ ื‘ืื•ืชื” ืจืฉื™ืžืช props ื‘ืขื•ื“ ืžืงื•ืžื•ืช. ืœื›ืŸ ืื—ืจื™ ื›ืžื” ืฉื‘ื•ืขื•ืช ืื• ื—ื•ื“ืฉื™ื ืฉืœ ืขื‘ื•ื“ื” ืขืœ ื”ืงื•ื“ ื”ืฉื•ืจื” ื™ื›ื•ืœื” ืœื”ืคื•ืš ืœ:
interface ICounterProps {
  initialValue: number;
  step: number;
  buttonText?: string;
}

function Counter(props: ICounterProps) {
}

ื•ืื– ื›ื›ืœ ืฉื”ืงื•ืžืคื•ื ื ื˜ื” ืžืžืฉื™ื›ื” ืœื’ื“ื•ืœ ืื ื—ื ื• ืขืฉื•ื™ื™ื ืœืจืฆื•ืช ืœื”ื•ืกื™ืฃ ืžืืคื™ื™ื ื™ื ืฉื™ืฉ ื‘ื™ื ื™ื”ื ืงืฉืจ. ืœื“ื•ื’ืžื” ืื•ืœื™ ื ืจืฆื” ืœื”ื•ืกื™ืฃ ื›ืคืชื•ืจ turbo ืฉื™ื’ื“ื™ืœ ืืช ื” Counter ื‘ืžืกืคืจ ื’ื“ื•ืœ ื™ื•ืชืจ ืžื” step ื”ืจื’ื™ืœ. ื‘ืžืฆื‘ ื›ื–ื” ืื ื™ ื™ื›ื•ืœ ืœื”ื’ื™ืข ืœ:
interface ICounterProps {
  initialValue: number;
  step: number;
  buttonText?: string;
  turboButtonText?: string;
  turboStep?: number;
}

function Counter(props: ICounterProps) {
}
ืžื‘ื ื” ื›ื–ื” ืœื ืจืฆื•ื™ ื›ื™ื•ื•ืŸ ืฉื”ื•ื ืœื ื ื•ืชืŸ ืœืงื•ื“ ืฉืžืฉืชืžืฉ ื‘ืงื•ืžืคื•ื ื ื˜ื” ื“ืจืš ืœื“ืขืช ืฉื™ืฉ ืงืฉืจ ื‘ื™ืŸ turboStep ืœ turboButtonText ื•ืฉืื ืžืฆื™ื™ื ื™ื ืื—ื“ ืฆืจื™ืš ื’ื ืœืฆื™ื™ืŸ ืืช ื”ืฉื ื™. ื‘ืžืงื•ื ื–ื” ืขื“ื™ืฃ ืœืคืฆืœ ืืช ื” Interface ืœืฉื ื™ ืžืžืฉืงื™ื ืฉื•ื ื™ื:
interface ICounterProps {
  initialValue: number;
  step: number;
  buttonText?: string;
}

interface ICounterWithTurboProps extends ICounterProps {
  turboButtonText: string;
  turboStep: number;
}
ื‘ืงื•ื“ ื”ืงื•ืžืคื•ื ื ื˜ื” ื ืืคืฉืจ ืœืงื‘ืœ ืคืจืžื˜ืจื™ื ืžืฉื ื™ ื”ืžืžืฉืงื™ื ื‘ืืžืฆืขื•ืช ืื™ื—ื•ื“ ื˜ื™ืคื•ืกื™ื, ื•ื ืฉืชืžืฉ ื‘ Casting ื›ื“ื™ ืœื”ืคื•ืš ืืช ื” props ืœืžืžืฉืง ื”ื›ืœืœื™ ื‘ื™ื•ืชืจ:
function Counter(props: ICounterProps|ICounterWithTurboProps) {
  const {
    initialValue,
    step,
    buttonText = 'Increase',
    turboButtonText,
    turboStep,
  } = props as ICounterWithTurboProps;
}
ื‘ืชื•ืš ื’ื•ืฃ ื”ืงื•ืžืคื•ื ื ื˜ื” ืื turboButtonText ืงื™ื‘ืœ ืขืจืš ืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉื’ื turboStep ืงื™ื‘ืœ ืขืจืš. ื‘ืงื•ื“ ื—ื™ืฆื•ื ื™ ืื ื—ื ื• ื ื•ืชื ื™ื ืœื˜ื™ื™ืคืกืงืจื™ืคื˜ ืœื”ื‘ื™ืŸ ืœื‘ื“ ืืช ื”ื˜ื™ืคื•ืกื™ื ื•ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืžืกืคื™ืง ื—ื›ื ื›ื“ื™ ืœื•ื•ื“ื ืฉื”ืขื‘ืจื ื• ืขืจื›ื™ื ืœืฉื ื™ ื”ืžืืคื™ื™ื ื™ื ืฉืœ ื”ื˜ื•ืจื‘ื• ืื• ืœืืฃ ืื—ื“ ืžื”ื. ื .ื‘. ื”ืกื™ืคื•ืจ ื”ื–ื” ืขื•ื‘ื“ ื›ืฉื™ืฉ ืœื™ ืฉื ื™ ืžืžืฉืงื™ื ืื• ื’ื’ ืฉืœื•ืฉื”. ื›ื›ืœ ืฉื ื•ืกื™ืฃ ื™ื•ืชืจ ืžืฉืชื ื™ื ื•ืชืœื•ื™ื•ืช ื–ื” ื›ื‘ืจ ืžืกืชื‘ืš. ื‘ืขื™ืงืจื•ืŸ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืžืืคืฉืจืช ืœื”ืจื—ื™ื‘ ื›ืžื” interface-ื™ื ืื‘ืœ ื ืฉืžืข ืฉืื ื”ื’ืขืชื ืœืฉื ืขื“ื™ืฃ ืœืคืฆืœ ืืช ื”ืงื•ืžืคื•ื ื ื˜ื”.

ToCode
1 419
# ื–ืžืŸ ืœื™ืžื•ื“ ืžืชื™ ืขื•ืฆืจื™ื? ืžืชื™ ืœืžื“ืชื "ืžืกืคื™ืง ืœื”ื™ื•ื"? ืื•ืœื™... - ื‘ืกื™ื•ื ื”ืฉื™ืขื•ืจ (ื›ืฉื”ืฉืขื•ืŸ ืžืจืื” 12, ื‘ืขื•ื“ 20 ื“ืงื•ืช) - ื‘ืกื•ืฃ ื”ืคืจืง - ืื—ืจื™ ืฉืืกื™ื™ื ืืช ื›ืœ ื”ืชืจื’ื™ืœื™ื - ืื—ืจื™ ืฉืืคืชื•ืจ ืืช ื”ื‘ืื’, ืื• ื›ืฉื”ืงื•ื“ ื™ืขื‘ื•ื“ - ืขื“ ืฉื”ืื•ื›ืœ ื™ื’ื™ืข - ืขื“ ืฉืชื™ื›ื ืก ืฉื™ื—ืช ื˜ืœืคื•ืŸ ืžืขื ื™ื™ื ืช - ืขื“ ืฉืชื’ื™ืข ื”ื•ื“ืขื” ื—ืฉื•ื‘ื” ื‘ื•ื•ื˜ืกืืค - ืขื“ ืฉืื™ืจื“ื ื”ืจื‘ื” ืคืขืžื™ื ืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืชื”ืœื™ืš ืœื™ืžื•ื“ื™ ื‘ืชื•ืจ ืžืฉื”ื• ืœื™ื ืืจื™ - ืื ื™ ืœื•ืžื“ ืคื™ื™ืชื•ืŸ ืขื›ืฉื™ื• ื•ื™ืฉ ืœื™ ืืช ื”ืชืจื’ื™ืœ ื”ื‘ื ืœืขืฉื•ืช, ืื– ื–ื” ืžื” ืฉืื ื™ ืฆืจื™ืš ื›ื“ื™ ืœื”ืชืงื“ื ื‘ืคื™ื™ืชื•ืŸ. ื•ืื ื‘ื“ื™ื•ืง ื”ื–ืžืŸ ื”ืคื ื•ื™ ืฉื™ืฉ ืœื™ ืขื›ืฉื™ื• ื”ื•ื "ืขื“ ืฉื”ืื•ื›ืœ ื™ื’ื™ืข" ืื– ืื ื™ ืœื ื™ื›ื•ืœ ืœืคืชื•ืจ ืืช ื”ืชืจื’ื™ืœ ื”ื–ื” ื‘ืคื™ื™ืชื•ืŸ ื›ื™ ื”ื•ื ืœื•ืงื— ื™ื•ืชืจ ื–ืžืŸ, ื•ืœื›ืŸ ืื ื™ ืœื ื™ื›ื•ืœ ืœื”ืชืงื“ื ื‘ืงื•ืจืก ืคื™ื™ืชื•ืŸ, ื•ื‘ืžืงื•ื ืื ื™ ืžืขื‘ื™ืจ ืจื‘ืข ืฉืขื” ื‘ ynet ืื• ื˜ื•ื•ื™ื˜ืจ. ืžืื•ื“ ืขื•ื–ืจ ื›ืฉืืชื ื™ื•ืฉื‘ื™ื ืœืœืžื•ื“ ื ื•ืฉื ืœืกื“ืจ ื•ืœื›ืชื•ื‘ ืœื›ื ืžืฉื™ืžื•ืช ืœื™ืžื•ื“ื™ื•ืช ืœืคื™ ืงื‘ื•ืขื™ ื”ื–ืžืŸ (ื”"ืžืชื™ ืžืกื™ื™ืžื™ื") ื”ืืคืฉืจื™ื™ื. ื›ืœื•ืžืจ ื™ื”ื™ื• ืžืฉื™ืžื•ืช ืฉื“ื•ืจืฉื•ืช ืฉืขืชื™ื™ื ืขื‘ื•ื“ื”, ืžืฉื™ืžื•ืช ืฉื“ื•ืจืฉื•ืช ื™ื•ื ืฉืœื ื•ืžืฉื™ืžื•ืช ืฉืืคืฉืจ ืœืขืฉื•ืช ื’ื ื‘ืขืฉืจ ืื• 15 ื“ืงื•ืช. ื›ืฉื™ืฉ ืœื›ื ืจืฉื™ืžื” ื›ื–ืืช, ืœื ืžืฉื ื” ืžื” ืžืฉื‘ืฆืช ื”ื–ืžืŸ ื”ืคื ื•ื™ ืฉืงื™ื‘ืœืชื ืชืžื™ื“ ืืคืฉืจ ืœื ืฆืœ ืื•ืชื” ื›ื“ื™ ืœื”ืชืงื“ื ืขื•ื“ ืฆืขื“. ื’ื ืฆืขื“ื™ื ืงื˜ื ื™ื ืขื•ื–ืจื™ื ืœื”ืจื’ืฉื”, ืขื•ื–ืจื™ื ืœืžื•ืžื ื˜ื•ื ื•ืœืคืขืžื™ื ืžื—ื‘ื™ืื™ื ื”ืชืงื“ืžื•ืช ื’ื“ื•ืœื”.

ToCode
1 419
# ื–ืžืŸ ืœื™ืžื•ื“ ืžืชื™ ืขื•ืฆืจื™ื? ืžืชื™ ืœืžื“ืชื "ืžืกืคื™ืง ืœื”ื™ื•ื"? ืื•ืœื™... - ื‘ืกื™ื•ื ื”ืฉื™ืขื•ืจ (ื›ืฉื”ืฉืขื•ืŸ ืžืจืื” 12, ื‘ืขื•ื“ 20 ื“ืงื•ืช) - ื‘ืกื•ืฃ ื”ืคืจืง - ืื—ืจื™ ืฉืืกื™ื™ื ืืช ื›ืœ ื”ืชืจื’ื™ืœื™ื - ืื—ืจื™ ืฉืืคืชื•ืจ ืืช ื”ื‘ืื’, ืื• ื›ืฉื”ืงื•ื“ ื™ืขื‘ื•ื“ - ืขื“ ืฉื”ืื•ื›ืœ ื™ื’ื™ืข - ืขื“ ืฉืชื™ื›ื ืก ืฉื™ื—ืช ื˜ืœืคื•ืŸ ืžืขื ื™ื™ื ืช - ืขื“ ืฉืชื’ื™ืข ื”ื•ื“ืขื” ื—ืฉื•ื‘ื” ื‘ื•ื•ื˜ืกืืค - ืขื“ ืฉืื™ืจื“ื ื”ืจื‘ื” ืคืขืžื™ื ืื ื—ื ื• ืžืกืชื›ืœื™ื ืขืœ ืชื”ืœื™ืš ืœื™ืžื•ื“ื™ ื‘ืชื•ืจ ืžืฉื”ื• ืœื™ื ืืจื™ - ืื ื™ ืœื•ืžื“ ืคื™ื™ืชื•ืŸ ืขื›ืฉื™ื• ื•ื™ืฉ ืœื™ ืืช ื”ืชืจื’ื™ืœ ื”ื‘ื ืœืขืฉื•ืช, ืื– ื–ื” ืžื” ืฉืื ื™ ืฆืจื™ืš ื›ื“ื™ ืœื”ืชืงื“ื ื‘ืคื™ื™ืชื•ืŸ. ื•ืื ื‘ื“ื™ื•ืง ื”ื–ืžืŸ ื”ืคื ื•ื™ ืฉื™ืฉ ืœื™ ืขื›ืฉื™ื• ื”ื•ื "ืขื“ ืฉื”ืื•ื›ืœ ื™ื’ื™ืข" ืื– ืื ื™ ืœื ื™ื›ื•ืœ ืœืคืชื•ืจ ืืช ื”ืชืจื’ื™ืœ ื”ื–ื” ื‘ืคื™ื™ืชื•ืŸ ื›ื™ ื”ื•ื ืœื•ืงื— ื™ื•ืชืจ ื–ืžืŸ, ื•ืœื›ืŸ ืื ื™ ืœื ื™ื›ื•ืœ ืœื”ืชืงื“ื ื‘ืงื•ืจืก ืคื™ื™ืชื•ืŸ, ื•ื‘ืžืงื•ื ืื ื™ ืžืขื‘ื™ืจ ืจื‘ืข ืฉืขื” ื‘ ynet ืื• ื˜ื•ื•ื™ื˜ืจ. ืžืื•ื“ ืขื•ื–ืจ ื›ืฉืืชื ื™ื•ืฉื‘ื™ื ืœืœืžื•ื“ ื ื•ืฉื ืœืกื“ืจ ื•ืœื›ืชื•ื‘ ืœื›ื ืžืฉื™ืžื•ืช ืœื™ืžื•ื“ื™ื•ืช ืœืคื™ ืงื‘ื•ืขื™ ื”ื–ืžืŸ (ื”"ืžืชื™ ืžืกื™ื™ืžื™ื") ื”ืืคืฉืจื™ื™ื. ื›ืœื•ืžืจ ื™ื”ื™ื• ืžืฉื™ืžื•ืช ืฉื“ื•ืจืฉื•ืช ืฉืขืชื™ื™ื ืขื‘ื•ื“ื”, ืžืฉื™ืžื•ืช ืฉื“ื•ืจืฉื•ืช ื™ื•ื ืฉืœื ื•ืžืฉื™ืžื•ืช ืฉืืคืฉืจ ืœืขืฉื•ืช ื’ื ื‘ืขืฉืจ ืื• 15 ื“ืงื•ืช. ื›ืฉื™ืฉ ืœื›ื ืจืฉื™ืžื” ื›ื–ืืช, ืœื ืžืฉื ื” ืžื” ืžืฉื‘ืฆืช ื”ื–ืžืŸ ื”ืคื ื•ื™ ืฉืงื™ื‘ืœืชื ืชืžื™ื“ ืืคืฉืจ ืœื ืฆืœ ืื•ืชื” ื›ื“ื™ ืœื”ืชืงื“ื ืขื•ื“ ืฆืขื“. ื’ื ืฆืขื“ื™ื ืงื˜ื ื™ื ืขื•ื–ืจื™ื ืœื”ืจื’ืฉื”, ืขื•ื–ืจื™ื ืœืžื•ืžื ื˜ื•ื ื•ืœืคืขืžื™ื ืžื—ื‘ื™ืื™ื ื”ืชืงื“ืžื•ืช ื’ื“ื•ืœื”.

ToCode
1 419
# ื”ื–ืžื ื” ืœื•ื•ื‘ื™ื ืจ: ืชืงืฉื•ืจืช ื‘ื™ืŸ ืกืจื‘ื™ืกื™ื ืขื RabbitMQ ื”ื›ืœืœ ื”ืจืืฉื•ืŸ ื‘ื‘ื ื™ื™ืช ืืจื›ื™ื˜ืงื˜ื•ืจืช Micro Services ื”ื•ื ืฉื”ืกืจื‘ื™ืกื™ื ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช ืขืฆืžืื™ื™ื. ื”ื›ืœืœ ื”ืฉื ื™ ื‘ื‘ื ื™ื™ืช ืืจื›ื™ื˜ืงื˜ื•ืจืช Micro Services ื”ื•ื ืฉื”ื ืฆืจื™ื›ื™ื ืœืขื‘ื•ื“ ื™ื—ื“. ื•ื‘ืฉื‘ื™ืœ ืฉืฉื ื™ ื—ืœืงื™ื ืขืฆืžืื™ื™ื ื‘ืžืขืจื›ืช ื™ืขื‘ื“ื• ื™ื—ื“ ื”ื ืฆืจื™ื›ื™ื ืœืชืงืฉืจ. ื‘ืขื•ืœื ื”ื™ืฉืŸ ืฉืœ ื”ืžื•ื ื•ืœื™ื˜ ื›ืฉืฉื ื™ ื—ืœืงื™ื ื‘ืžืขืจื›ืช ืฆืจื™ื›ื™ื ืœื“ื‘ืจ ืžืกืคื™ืง ืœืงืจื•ื ืœืคื•ื ืงืฆื™ื”, ืื‘ืœ ื‘ืขื•ืœื ื” Micro Services, ื›ืœ ื—ืœืง ื‘ืžืขืจื›ืช ืจืฅ ื‘ืชื•ืจ ืชื”ืœื™ืš ื ืคืจื“. ืžื” ืฉื™ื•ืชืจ ื’ืจื•ืข, ื”ื•ื ืฉืืคืฉืจ ืœืฉื“ืจื’ ื—ืœืง ืื—ื“ ื‘ืžืขืจื›ืช ื‘ืœื™ ืœื’ืขืช ื‘ื—ืœืง ื”ืฉื ื™ (Deployment ื‘ืœืชื™ ืชืœื•ื™). ื”ืคื•ื ืงืฆื™ื” ืฉืจืฆื™ืช ืœืงืจื•ื ืœื” ื‘ืขื•ืœื ืฉืœ ื”ืžื•ื ื•ืœื™ื˜ ืื•ืœื™ ื›ื‘ืจ ืœื ืชื”ื™ื” ืงื™ื™ืžืช ื‘ื’ื™ืจืกื” ื”ื‘ืื” ืฉืœ ื”ืกืจื‘ื™ืก. ื•ื‘ื“ื™ื•ืง ื‘ื’ืœืœ ื–ื” ืื—ื“ ื”ื—ืœืงื™ื ื”ื›ื™ ื—ืฉื•ื‘ื™ื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช Micro Services ื”ื•ื ื”ืชืงืฉื•ืจืช ื‘ื™ืŸ ื”ืกืจื‘ื™ืกื™ื. ืชืงืฉื•ืจืช ื‘ื™ืŸ ืกืจื‘ื™ืกื™ื ืžื—ื•ืœืงืช ืœืฉื ื™ ืกื•ื’ื™ื: ื™ืฉ ืชืงืฉื•ืจืช ืกื™ื ื›ืจื•ื ื™ืช, ืฉื–ื” ืื•ืžืจ ืฉืกืจื‘ื™ืก ืื—ื“ ืฉื•ืœื— ื”ื•ื“ืขื” ืœืกืจื‘ื™ืก ืื—ืจ ื•ืžื—ื›ื” ืœืชืฉื•ื‘ื” ื›ื“ื™ ืœื”ืžืฉื™ืš; ื•ืชืงืฉื•ืจืช ืืกื™ื ื›ืจื•ื ื™ืช ืฉื–ื” ืื•ืžืจ ืฉืกืจื‘ื™ืก ืื—ื“ ืฉื•ืœื— ื”ื•ื“ืขื” ื•ืžืงื•ื•ื” ืœื˜ื•ื‘. ืžื‘ื™ืŸ ื”ืฉืชื™ื™ื ืชืงืฉื•ืจืช ืืกื™ื ื›ืจื•ื ื™ืช ืชื”ื™ื” ื”ืžื•ืขื“ืคืช ืขืœื™ื ื•, ื›ื™ื•ื•ืŸ ืฉื”ื™ื ื™ื•ืฆืจืช ืชืœื•ืช ื™ื•ืชืจ ืงื˜ื ื” ื‘ื™ืŸ ื”ืกืจื‘ื™ืกื™ื. ื‘ืชืงืฉื•ืจืช ืืกื™ื ื›ืจื•ื ื™ืช ืื ื™ ืฉื•ืœื— ื”ื•ื“ืขื” ื•ืื•ืœื™ ื”ืกืจื‘ื™ืก ื”ืฉื ื™ ืฉื ืขื›ืฉื™ื• ื•ื™ื›ื•ืœ ืœื˜ืคืœ ื‘ื”, ืื‘ืœ ื’ื ืื•ืœื™ ื”ื•ื ืขืžื•ืก ืื• ืฉื‘ื“ื™ื•ืง ืžืขืœื™ื ื’ื™ืจืกื” ื—ื“ืฉื” ืฉืœื•, ื•ืœื›ืŸ ื™ื•ื›ืœ ืœื˜ืคืœ ื‘ื” ืจืง ืขื•ื“ ื›ืžื” ื“ืงื•ืช. ื•ืชื•ืจ ื”ื•ื“ืขื•ืช ื”ื•ื ื”ืžืคืชื— ืœื‘ื ื™ื™ืช ืžืขืจื›ืช ืชืงืฉื•ืจืช ืืกื™ื ื›ืจื•ื ื™ืช ื‘ื™ืŸ ืกืจื‘ื™ืกื™ื ืฉื•ื ื™ื ื‘ืืจื›ื™ื˜ืงื˜ื•ืจืช Micro Services. ื‘ืชื™ืื•ืจ ืžืื•ื“ ื›ืœืœื™, ืืคืฉืจ ืœื”ื’ื™ื“ ืฉืชื•ืจ ื”ื•ื“ืขื•ืช ื”ื•ื ืจื›ื™ื‘ ื‘ืžืขืจื›ืช ืฉืžืชืคืงื“ ื›ืžื• ืžืขืจื›ืช ื“ื•ืืจ ื‘ื™ืŸ ืกืจื‘ื™ืกื™ื. ืกืจื‘ื™ืก ื™ื•ื“ืข ืœืฉืœื•ื— ื”ื•ื“ืขื” ืœืชื•ืจ ื•ื”ืชื•ืจ ืื—ืจืื™ ืœื ืชื‘ ืืช ื”ื”ื•ื“ืขื” ืœืžื™ ืฉืฆืจื™ืš ืœืงื‘ืœ ืื•ืชื” ื•ื‘ื–ืžืŸ ืฉืžืชืื™ื ืœืžืงื‘ืœ. ืฉื ื™ ืชื•ืจื™ ื”ื”ื•ื“ืขื•ืช ื”ืคื•ืคื•ืœืจื™ื™ื ื”ื™ื•ื ื”ื RabbitMQ ื• Kafka, ื›ืืฉืจ ืœื›ืœ ืื—ื“ ืžื”ื›ืœื™ื ื™ื›ื•ืœื•ืช ื™ื™ื—ื•ื“ื™ื•ืช ืžืฉืœื• ื‘ื ื•ืกืฃ ืœืžื ื’ื ื•ืŸ ื”ื‘ืกื™ืกื™ ืฉืœ ื”ืขื‘ืจืช ื”ื•ื“ืขื•ืช. ื‘ื™ื•ื ื—ืžื™ืฉื™ ื”ืงืจื•ื‘ ืื ื™ ืืงื— ืฉืขื” ื›ื“ื™ ืœื“ื‘ืจ ืขื ืืœื” ืžื›ื ืฉื™ืจืฆื• ืœื”ืฆื˜ืจืฃ ืขืœ ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช, ืืจื›ื™ื˜ืงื˜ื•ืจืช Micro Services ื•ื‘ืžื™ื•ื—ื“ ืขืœ ืจื›ื™ื‘ ื”ืชืงืฉื•ืจืช RabbitMQ. ื”ื‘ื—ื™ืจื” ื‘ RabbitMQ ืžืงืจื™ืช ืœื’ืžืจื™ ื•ื™ื•ื ืื—ื“ ื‘ื˜ื— ื ืขืฉื” ืืช ืื•ืชื• ื•ื•ื‘ื™ื ืจ ืขื Kafka. ื‘ืชื—ื™ืœืช ื”ื•ื•ื‘ื™ื ืจ ืืจืื” ืื™ืš ืœื”ืงื™ื ืฉืจืช RabbitMQ ื‘ืชื•ืš ื“ื•ืงืจ, ืื™ืš ืœืงื ืคื’ ืื•ืชื• ื•ืื™ืš ืœื’ืฉืช ืืœื™ื• ืžืงื•ื“ Node.JS ืฉืจืฅ ื‘ืกืจื‘ื™ืกื™ื ืื—ืจื™ื. ืœืื—ืจ ืžื›ืŸ ืืฆื™ื’ ืžืกืคืจ ืชื•ื›ื ื™ื•ืช ื“ื•ื’ืžื” ืฉื™ืžื—ื™ืฉื• ื‘ื ื™ื” ืฉืœ ืฉืœื•ืฉ ืชื‘ื ื™ื•ืช ืžื‘ื•ื–ืจื•ืช ื‘ืคื™ืชื•ื—: 1. ืžืขืจื›ืช ืฉืœ ืฉืจืช ืžืจื›ื–ื™ ืฉืžื•ืฆื™ื ืžืฉื™ืžื•ืช ืœ Workers ื•ืžืงื‘ืœ ืžื”ื ืกื˜ื˜ื•ืกื™ื ืขืœ ื”ืžืฉื™ืžื•ืช. ืœื“ื•ื’ืžื” ืžืขืจื›ืช ื•ื•ื‘ ืฉืžืืคืฉืจืช ืœืœืงื•ื—ื•ืช ืœื”ืขืœื•ืช ืชืžื•ื ื•ืช ื•ืžืฉืชืžืฉืช ื‘ืกืจื‘ื™ืก ื—ื™ืฆื•ื ื™ ื›ื“ื™ ืœื”ืจื™ืฅ ืคื™ืœื˜ืจื™ื ืขืœ ืื•ืชืŸ ืชืžื•ื ื•ืช. 2. ืžืขืจื›ืช ืฉืœ ื˜ื™ืคื•ืœ ืžืงื‘ื™ืœื™ ื‘ืื™ืจื•ืข. ืœื“ื•ื’ืžื” ืžืขืจื›ืช ื•ื•ื‘ ื‘ื” ืœืงื•ื— ืงื•ื ื” ืžื•ืฆืจ ื•ื™ืฉ ืžืกืคืจ ืชื”ืœื™ื›ื™ื ืฉืฆืจื™ื›ื™ื ืœื”ื’ื™ื‘ ืœืงื ื™ื” - ืฆืจื™ืš ืœื”ื•ืกื™ืฃ ืืช ื”ืœืงื•ื— ืœืจืฉื™ืžืช ื“ื™ื•ื•ืจ, ืœื”ื•ืฆื™ื ื—ืฉื‘ื•ื ื™ืช, ืœืฉืœื•ื— ืืช ื”ืžื•ืฆืจ ื•ื›ืŸ ื”ืœืื”. 3. ืžืขืจื›ืช ืฉืœ ื˜ื™ืคื•ืœ ืกื“ืจืชื™ ื‘ืื™ืจื•ืข, ืฉืงื•ืจื™ืช ื›ืฉื™ืฉ ืชืœื•ืช ื‘ื™ืŸ ื”ืกืจื‘ื™ืกื™ื. ื‘ื“ื•ื’ืžื” ืฉืœ ืงื ื™ื™ืช ื”ืžื•ืฆืจ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืกืจื‘ื™ืก ืฉืื—ืจืื™ ืขืœ ื”ื’ื‘ื™ื” ื•ืจืง ืื ื”ื•ื ืžืฆืœื™ื— ืื– ืกืจื‘ื™ืก ืื—ืจ ืฉื•ืœื— ืืช ื”ืžื•ืฆืจ ืœืœืงื•ื—. ื‘ื™ืŸ ืื ืืชื ื‘ืขืกืงื™ ื” Micro Services ื•ืจื•ืฆื™ื ืœืฉืžื•ืข ื™ื•ืชืจ ืขืœ ื”ืชืคืงื™ื“ ืฉืœ ืชื•ืจ ื”ื”ื•ื“ืขื•ืช ื•ืœืงื‘ืœ ื˜ื™ืคื™ื ืœืขื‘ื•ื“ื” ื ื›ื•ื ื” ืื™ืชื•, ืื• ืื ืืชื ืจื•ืฆื™ื ืœื”ื™ื›ื ืก ืœืขืกืงื™ ื” Micro Services ื•ืจื•ืฆื™ื ืœืจืื•ืช ืื™ืš ืžืชื—ื™ืœื™ื ืื ื™ ืžืงื•ื•ื” ืฉื”ืฉืขื” ื”ื–ืืช ืชื”ื™ื” ืจืœื•ื•ื ื˜ื™ืช ืขื‘ื•ืจื›ื. ืœืคืจื˜ื™ื ื ื•ืกืคื™ื ื•ื”ืจืฉืžื” ืฉื•ื•ื” ืœื‘ืงืจ ื‘ื“ืฃ ื”ื•ื•ื‘ื™ื ืจ ื‘ืงื™ืฉื•ืจ: https://www.tocode.co.il/workshops/115

ToCode
1 419
ื”ื›ื ืกื” ื™ื•ืชืจ ืžื•ืจื›ื‘ืช ืชื”ื™ื” ืœื˜ื‘ืœืช ื”ืกืคืจื™ื: ืฉื ืื ื™ ืฆืจื™ืš ืœื”ืฉืชืžืฉ ื‘ืชืช-ืฉืื™ืœืชื” ื›ื“ื™ ืœื“ืขืช ืžื” ื” id ืฉืœ ื”ืกื•ืคืจ ืฉื›ืชื‘ ืืช ื”ืกืคืจ. ืื ื™ ืœื ื™ื•ื“ืข ืืช ื” id ื›ื™ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื™ืฆืจ ืื•ืชื• ืื•ื˜ื•ืžื˜ื™ืช ื‘ืขืช ื”ื”ื›ื ืกื” ื•ืœื›ืŸ ืฆืจื™ืš ืœืชืฉืืœ. ืื ื™ ื™ื•ืฆืจ ืื•ื‘ื™ืงื˜ ืฉืื™ืœืชื”, ืฉื’ื ื”ื•ื ืคืงื•ื“ื”, ืขื ื”ืคืงื•ื“ื”:
    author_subquery = (
            select(authors_table.c.id).
            where(authors_table.c.name == bindparam('author_name')).
            scalar_subquery())
ื•ืžืฉืœื‘ ืื•ืชื• ื‘ืคืงื•ื“ืช ื”ื”ื›ื ืกื” ื‘ืื•ืคืŸ ื”ื‘ื:
    conn.execute(insert(books_table).values(author_id=author_subquery), [
        { "ISBN": "9781982134488", "name": "Think Like a Monk", "author_name": "Jay Shetty" },
        { "ISBN": "9780316066525", "name": "Infinite Jest", "author_name": "David Foster Wallace" },
        { "ISBN": "9781515208563", "name": "Meditations", "author_name": "Marcus Aurelius" },
        ])
## ืฉืœื™ืคืช ืžื™ื“ืข ื• Join ื•ืื ื›ื‘ืจ ืจืื™ื ื• ืืช select ื‘ื•ืื• ื ืจื—ื™ื‘ ืขืœื™ื• ื•ื ื›ืชื•ื‘ ืฉืื™ืœืชื” ืฉืžื•ืฉื›ืช ืืช ื›ืœ ื”ืกืคืจื™ื ื•ื”ืžื—ื‘ืจื™ื ืฉืœื”ื. ื”ืคืงื•ื“ื” select ืžืงื‘ืœืช ืจืฉื™ืžื” ืฉืœ ืขืžื•ื“ื•ืช ื•ืžื—ื–ื™ืจื” "ืคืงื•ื“ืช" ืฉืœื™ืคื”. ื”ืคืขืœืช ืคืงื•ื“ื•ืช ื›ืžื• where ืขืœ ืคืงื•ื“ืช ื”ืฉืœื™ืคื” ืžื•ืกื™ืคื” ืžื™ื“ืข ืœืฉืœื™ืคื” ืขื“ ืฉื™ืฉ ืœื ื• ืคืงื•ื“ื” ืฉืœืžื” ื•ืื•ืชื” ืžืขื‘ื™ืจื™ื ืœ execute. ื›ื“ื™ ืœืงื‘ืœ ืืช ื›ืœ ื”ืกืคืจื™ื ืฉืœ ื›ืœ ื”ืžื—ื‘ืจื™ื ืื ื™ ืจื•ืฆื” ืœื”ืคืขื™ืœ ืคืงื•ื“ืช ืฉืœื™ืคื” ืขื join ื•ื”ืงื•ื“ ื ืจืื” ื›ืš:
with engine.begin() as conn:
## Part 3 - Join Select
    books = conn.execute(select(books_table.c.name, books_table.c.ISBN, authors_table.c.name).join_from(books_table, authors_table))
    for book in books:
        book_name, isbn, author = book
        print(f"Book: {book_name}; ISBN: {isbn}; author: {author}")
ื”ืคืงื•ื“ื” select ืœื•ืงื—ืช ืจืฉื™ืžื” ืฉืœ ืขืžื•ื“ื•ืช, ืขืœื™ื” ืื ื™ ืžืคืขื™ืœ ืืช ื”ืคืงื•ื“ื” join_from ื›ื“ื™ ืœื”ื’ื™ื“ ืœื” ืžื” ืกื“ืจ ื” Join-ื™ื ื•ื”ื™ื ื›ื‘ืจ ืžื—ืฉื‘ืช ืืช ืคืงื•ื“ืช ื” SQL ืื•ื˜ื•ืžื˜ื™ืช. ## ื”ืงื•ื“ ื”ืžืœื ื•ืœืืŸ ืžืžืฉื™ื›ื™ื ืกืš ื”ื›ืœ ื”ืงื•ื“ ืฉืจืื™ื ื• ื‘ื›ืœ ื”ืคื•ืกื˜ ื”ื•ื:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, ForeignKey, insert, select, bindparam

## Part 1 - Create the tables
engine = create_engine("sqlite+pysqlite:///db.sql", echo=True, future=True)
metadata_obj = MetaData()

authors_table = Table(
        "authors",
        metadata_obj,
        Column('id', Integer, primary_key=True),
        Column('name', String()))

books_table = Table(
        "books",
        metadata_obj,
        Column('ISBN', String(13), primary_key=True),
        Column('name', String()),
        Column('author_id', ForeignKey('authors.id'), nullable=False))


metadata_obj.create_all(engine)

## Part 2 - Insert some data
with engine.begin() as conn:
    conn.execute(insert(authors_table), [
        { "name": "Jay Shetty" },
        { "name": "David Foster Wallace" },
        { "name": "Marcus Aurelius" },
        ])

    author_subquery = (
            select(authors_table.c.id).
            where(authors_table.c.name == bindparam('author_name')).
            scalar_subquery())

    conn.execute(insert(books_table).values(author_id=author_subquery), [
        { "ISBN": "9781982134488", "name": "Think Like a Monk", "author_name": "Jay Shetty" },
        { "ISBN": "9780316066525", "name": "Infinite Jest", "author_name": "David Foster Wallace" },
        { "ISBN": "9781515208563", "name": "Meditations", "author_name": "Marcus Aurelius" },
        ])


with engine.begin() as conn:
## Part 3 - Join Select
    books = conn.execute(select(books_table.c.name, books_table.c.ISBN, authors_table.c.name).join_from(books_table, authors_table))
    for book in books:
        book_name, isbn, author = book
        print(f"Book: {book_name}; ISBN: {isbn}; author: {author}")

ืื ื™ ืžืงื•ื•ื” ืฉื”ื•ื ืขื–ืจ ืœื›ื ืœืงื‘ืœ ืชืžื•ื ื” ืžื’ื‘ื•ื” ืขืœ SQL Alchemy. ืื ืื”ื‘ืชื ืืช ื”ืžืžืฉืง ื•ืชืจืฆื• ืœืœืžื•ื“ ืขื•ื“ ืขืœ ื”ืกืคืจื™ื” ืื ื™ ืžืžืœื™ืฅ ืขืœ ื”ืชื™ืขื•ื“ ืฉืœื”ื ื•ื‘ืžื™ื•ื—ื“ ืขืœ ื” Tutorial, ืฉื”ืจื‘ื” ืžื”ื“ื•ื’ืžืื•ืช ื‘ืคื•ืกื˜ ืžื‘ื•ืกืกื•ืช ืขืœื™ื•. ื–ื” ื”ืงื™ืฉื•ืจ: https://docs.sqlalchemy.org/en/14/tutorial/engine.html

ToCode
1 419
# ืฆืขื“ื™ื ืจืืฉื•ื ื™ื ืขื SQL Alchemy ืกืคืจื™ื™ืช SQL Alchemy ื”ื™ื ืื—ืช ื”ืกืคืจื™ื•ืช ื”ืคื•ืคื•ืœืจื™ื•ืช ื‘ืคื™ื™ืชื•ืŸ ืœืขื‘ื•ื“ื” ืขื ื‘ืกื™ืกื™ ื ืชื•ื ื™ื. ื”ื™ื ืืžื™ื ื” ื•ื‘ืขืœืช ืชื™ืขื•ื“ ืžืขื•ืœื” ื•ืืคื™ืœื• ืชื•ืžื›ืช ื‘ืขื‘ื•ื“ื” ืขื asyncio. ื‘ืคื•ืกื˜ ื–ื” ื ื™ืงื— ืฉืœื•ืฉื” ืฆืขื“ื™ื ืจืืฉื•ื ื™ื ื›ื“ื™ ืฉื™ื”ื™ื” ืœื›ื ืงืœ ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืขื ื”ืกืคืจื™ื” ื•ืืฉืชื“ืœ ืœื›ืกื•ืช ื›ืžื” ืฉื™ื•ืชืจ ืžื•ืฉื’ื™ื ื‘ืกื™ืกื™ื™ื ืฉืœื”. ## ื”ืชืงื ื” ื•ื—ื™ื‘ื•ืจ ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืฆืขื“ ืจืืฉื•ืŸ ื‘ืขื‘ื•ื“ื” ืขื SQL Alchemy ื”ื•ื ืœื”ืชืงื™ืŸ ืืช ื”ืกืคืจื™ื”. ื‘ืคื™ื™ืชื•ืŸ ื–ื” ืคืฉื•ื˜ ืื•ืžืจ ืœื”ืคืขื™ืœ:
$ pip install sqlalchemy
ืฉื•ื•ื” ืœืฆื™ื™ืŸ ืฉืœื™ ื–ื” ืœื ื”ืฆืœื™ื— ืžื”ืคืขื ื”ืจืืฉื•ื ื” ื‘ื’ืœืœ ืฉื™ื“ืจื•ื’ื™ ื’ื™ืจืกืื•ืช. ืื ืืชื ืžืงื‘ืœื™ื ื”ื•ื“ืขื•ืช ืฉื’ื™ืื” ืžื•ื–ืจื•ืช ืฉื•ื•ื” ืœื”ืคืขื™ืœ ืฉื™ื“ืจื•ื’ ืœื’ื™ืจืกื” ื”ื—ื“ืฉื” ื‘ื™ื•ืชืจ ืฉืœ pip ื•ืฉืœ setuptools ืขื:
pip install -U pip setuptools
ื•ืื—ืจื™ ื–ื” ื”ื›ืœ ื™ืชื—ื™ืœ ืœืขื‘ื•ื“. ื›ื“ื™ ืœื•ื•ื“ื ืฉืืชื ืžื•ืชืงื ื™ื ืืคืฉืจ ืœื”ื™ื›ื ืก ืœืžืกื•ืฃ ืคื™ื™ืชื•ืŸ ื•ืฉื ืœื›ืชื•ื‘:
Python 3.10.0 (default, Nov  3 2021, 23:29:09) [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> print(sqlalchemy.__version__)
1.4.36
>>>
ื›ืœ ื”ืขื‘ื•ื“ื” ืžื•ืœ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื‘ SQL Alchemy ืžื‘ื•ืฆืขืช ื“ืจืš ืื•ื‘ื™ืงื˜ ืฉื ืงืจื Engine. ื”ื“ื‘ืจ ื”ืžืจื›ื–ื™ ืฉื ืขืฉื” ืื™ืชื• ื–ื” ืœื™ืฆื•ืจ ื—ื™ื‘ื•ืจ, ื•ืœื›ืŸ ื›ืฉื™ื•ืฆืจื™ื ืืช ื” Engine ืฆืจื™ืš ืœื”ื’ื™ื“ ืœื• ืœืื™ื–ื” ื‘ืกื™ืก ื ืชื•ื ื™ื ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืชื—ื‘ืจ. ืื ื™ ืžืคืขื™ืœ ืืช ื”ื“ื•ื’ืžื” ืขื SQLite ืฉื ืฉืžืจ ื‘ืงื•ื‘ืฅ ื•ืœื›ืŸ ืžืคืขื™ืœ:
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, ForeignKey, insert, select, bindparam

engine = create_engine("sqlite+pysqlite:///db.sql", echo=True, future=True)
ืฉื ื”ืงื•ื‘ืฅ ื™ื”ื™ื” db.sql ื•ื–ื” ื ื•ื— ืœืฉืžื•ืจ ื‘ืกื™ืก ื ืชื•ื ื™ื ืฉืœื ื‘ืงื•ื‘ืฅ ื›ืฉืžืฉื—ืงื™ื ืขื ืกืคืจื™ื” ื—ื“ืฉื” ื›ื™ ืœื ืฆืจื™ืš ืœื”ืชืงื™ืŸ ื›ืœื•ื ื•ืงืœ ืœื”ืกืชื›ืœ ื‘ืงื•ื‘ืฅ (ื‘ืืžืฆืขื•ืช SQLite CLI ืื• ื›ืœ ื›ืœื™ ื’ืจืคื™ ืื—ืจ) ื•ืœืจืื•ืช ืฉื“ื‘ืจื™ื ื ื•ืฆืจื• ื›ืžื• ืฉื—ืฉื‘ื ื• ืฉื”ื ืฆืจื™ื›ื™ื ืœื”ื™ื•ืช. ## ื™ืฆื™ืจืช ื˜ื‘ืœืื•ืช ืคืขื•ืœื” ืจืืฉื•ื ื” ืฉื ืจืฆื” ืœืขืฉื•ืช ื‘ืขื‘ื•ื“ื” ืขื ื‘ืกื™ืก ื ืชื•ื ื™ื ื”ื™ื ืœืืชื—ืœ ืื•ืชื•, ื›ืœื•ืžืจ ืœื™ืฆื•ืจ ืืช ื”ื˜ื‘ืœืื•ืช ืื ื”ืŸ ืœื ืงื™ื™ืžื•ืช. ื‘ืจื•ื‘ ื”ืžืงืจื™ื ืœื ื‘ืืžืช ื ืฆื˜ืจืš ืœื™ืฆื•ืจ ื˜ื‘ืœืื•ืช ื›ื™ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื›ื‘ืจ ื™ื”ื™ื” ืงื™ื™ื, ืื‘ืœ ืื ื—ื ื• ืจืง ืžืฉื—ืงื™ื ืขื ื”ืกืคืจื™ื”. ื‘ืฉื‘ื™ืœ ืœื™ืฆื•ืจ ืืช ื”ื˜ื‘ืœืื•ืช ืื ื—ื ื• ืฆืจื™ื›ื™ื ืงื•ื“ื ืœื”ื’ื“ื™ืจ ืžื” ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ื”ืŸ, ื›ืœื•ืžืจ ืžื” ื”ืขืžื•ื“ื•ืช ื‘ื›ืœ ื˜ื‘ืœื” ื•ืžื” ื”ื™ื—ืกื™ื ื‘ื™ืŸ ื”ื˜ื‘ืœืื•ืช. ืกืคืจื™ื™ืช SQL Alchemy ืžืกืคืงืช ืืช ื”ืžื—ืœืงื•ืช Table ื• Column ื›ื“ื™ ืœื”ื’ื“ื™ืจ ื˜ื‘ืœืื•ืช ื•ืขื•ื“ ื›ืžื” ืžื—ืœืงื•ืช ืœืกื•ื’ื™ ื ืชื•ื ื™ื. ื‘ื•ืื• ื ื™ืงื— ื“ื•ื’ืžื” ื•ื ื’ื“ื™ืจ ืฉืชื™ ื˜ื‘ืœืื•ืช ืื—ืช ืขื‘ื•ืจ ืกืคืจื™ื ื•ื”ืฉื ื™ื” ืขื‘ื•ืจ ืกื•ืคืจื™ื, ื•ื ืงื‘ืœ:
metadata_obj = MetaData()

authors_table = Table(
        "authors",
        metadata_obj,
        Column('id', Integer, primary_key=True),
        Column('name', String()))

books_table = Table(
        "books",
        metadata_obj,
        Column('ISBN', String(13), primary_key=True),
        Column('name', String()),
        Column('author_id', ForeignKey('authors.id'), nullable=False))
ื”ืื•ื‘ื™ืงื˜ metadata ืžืจื›ื– ืืช ื›ืœ ื ืชื•ื ื™ ื”ื˜ื‘ืœืื•ืช, ืื•ื‘ื™ืงื˜ Table ืžื™ื™ืฆื’ ื˜ื‘ืœื” ื• Column ืžื™ื™ืฆื’ ืขืžื•ื“ื”. ื‘ื™ืฆื™ืจื” ืฉืœ ืขืžื•ื“ื•ืช ืืคืฉืจ ืœื”ืขื‘ื™ืจ ืืช ืกื•ื’ื™ ื”ื ืชื•ื ื™ื ื•ืžืืคื™ื™ื ื™ื ืฉืœ ื”ืขืžื•ื“ื” ื›ืžื• primary_key ืื• nullable. ืื—ืจ ื›ืš ืžื’ื™ืขื” ื”ืฉื•ืจื” ื”ืื•ืคืฆื™ื•ื ืืœื™ืช:
metadata_obj.create_all(engine)
ืฉื™ื•ืฆืจืช ืืช ื›ืœ ื”ื˜ื‘ืœืื•ืช. ืขืœื™ื” ื ื•ื›ืœ ืœื•ื•ืชืจ ื›ืฉื ืขื‘ื•ื“ ืžื•ืœ ื‘ืกื™ืก ื ืชื•ื ื™ื ืงื™ื™ื. ## ื”ื›ื ืกืช ืžื™ื“ืข ื‘ืขื‘ื•ื“ื” ืขื SQL Alchemy ื™ืฉ ืœื™ ื‘ื™ื“ ืžื ื•ืข (engine) ื•ื‘ืขื–ืจืชื• ืื ื™ ืžืชื—ื‘ืจ ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื. ื”ื—ื™ื‘ื•ืจ ืชืžื™ื“ ื›ื•ืœืœ ื˜ืจื ื–ืืงืฆื™ื”, ืžื‘ื•ืฆืข ื‘ืชื•ืš ื‘ืœื•ืง with ื•ื‘ืกื•ืฃ ื”ื‘ืœื•ืง, ืื ื”ื›ืœ ืขื‘ื“ ื›ืžื• ืฉืฆืจื™ืš, ื™ื”ื™ื” commit. ืื ื™ ืžืฉืชืžืฉ ื‘ืคืงื•ื“ื” engine.begin ื›ื“ื™ ืœื”ืชื—ื™ืœ ืืช ื”ื—ื™ื‘ื•ืจ ื•ืœื‘ืฆืข ืื•ื˜ื•ืžื˜ื™ืช ืืช ื” commit ื‘ืกื•ืฃ ื”ื‘ืœื•ืง. ื‘ืชื•ืš ื”ื‘ืœื•ืง ืฉื™ื˜ืช ื”ืขื‘ื•ื“ื” ื”ื™ื ืœืคื™ ืชื‘ื ื™ืช ืฉื ืงืจืืช Command Pattern. ื–ื” ืื•ืžืจ ืฉื™ืฉ ืคื•ื ืงืฆื™ื•ืช ืฉืœ SQL Alchemy ืฉืžื™ื™ืฆื’ื•ืช ืคืงื•ื“ื•ืช ืฉื™ื›ื•ืœื•ืช ืœื”ื™ืฉืœื— ืœื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ื•ืื•ื‘ื™ืงื˜ ื”ื—ื™ื‘ื•ืจ ื™ื•ื“ืข ืœื”ืคืขื™ืœ ืื•ืชืŸ ืขื ื”ืคื•ื ืงืฆื™ื” execute ืฉืœื•. ืื– ื‘ืฉื‘ื™ืœ ืœื”ืคืขื™ืœ ื”ื›ื ืกื” ืœื˜ื‘ืœืช ื”ืžื—ื‘ืจื™ื ืื ื™ ืืคืขื™ืœ:
## Part 2 - Insert some data
with engine.begin() as conn:
    conn.execute(insert(authors_table), [
        { "name": "Jay Shetty" },
        { "name": "David Foster Wallace" },
        { "name": "Marcus Aurelius" },
        ])
ื”ืคื•ื ืงืฆื™ื” insert ื™ื•ืฆืจืช ืคืงื•ื“ืช ื”ื›ื ืกื”, ื•ื”ืคื•ื ืงืฆื™ื” conn.execute ืžืงื‘ืœืช ืืช ืคืงื•ื“ืช ื”ื”ื›ื ืกื” ื•ืื•ืกืฃ ืฉืœ ืคืจืžื˜ืจื™ื ืœืคืงื•ื“ื” ื•ืžืคืขื™ืœื” ืื•ืชื” ื›ื“ื™ ืœื”ื›ื ื™ืก ืืช ืฉืœื•ืฉืช ื”ืฉื•ืจื•ืช.

ToCode
1 419
# ืžืจื’ื™ืฉ ืœื™ ืžืกื•ื›ืŸ ื™ืฉ ืฉืชื™ ื“ืจื›ื™ื ืžืจื›ื–ื™ื•ืช ืœื”ืชืžื•ื“ื“ ืขื ื”ืขื•ื‘ื“ื” ืฉืžื”ืœืš ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœืขืฉื•ืช ืžืจื’ื™ืฉ ืžืกื•ื›ืŸ: 1. ืœื”ื•ืจื™ื“ ืืช ืชื—ื•ืฉืช ื”ืกื™ื›ื•ืŸ. 2. ืœืขื‘ื•ืจ ืœื”ืกืชื›ืœ ืขืœ ื”ืกื™ื›ื•ื™. ืื– ืื ื™ืฉ ืœื ื• ื‘ืŸ ืื“ื ืฉืžืชืœื‘ื˜ ืื ืœืงื ื•ืช ื›ืจื˜ื™ืก ืœื•ื˜ื• ื›ื™ ื–ื” ืžืจื’ื™ืฉ ืžืกื•ื›ืŸ (ื•ื–ื” ื‘ืืžืช ืžืกื•ื›ืŸ ื•ื˜ืคืฉื™. ืืœ ืชื‘ื–ื‘ื–ื• ื›ืกืฃ ืขืœ ื›ืจื˜ื™ืกื™ ืœื•ื˜ื•), ืืคืฉืจ ืœืขื•ื“ื“ ืื•ืชื• ืœืงื ื•ืช ื›ืจื˜ื™ืก ื‘ืฉืชื™ ื“ืจื›ื™ื: 1. ืืคืฉืจ ืœื”ืกื‘ื™ืจ ืฉื›ืจื˜ื™ืก ืขื•ืœื” ืžืžืฉ ืงืฆืช, ื•ืื™ืŸ ื‘ืืžืช ืžื” ืœื”ืคืกื™ื“ ื•ืžืžื™ืœื ื”ื•ื ื™ื”ื ื” ืžื”ืชื—ื•ืฉื” ืฉืœ ื”ืงื ื™ื” ื•ื”ื—ืœื•ื. 2. ืืคืฉืจ ืœืกืคืจ ืขืœ ื”ื”ื•ื ืฉื–ื›ื” ื•ื”ื—ื™ื™ื ืฉืœื• ืขื›ืฉื™ื• ื”ืฉืชื ื• ืžืงืฆื” ืœืงืฆื”. ืืช ืื•ืชืŸ ืžื ื™ืคื•ืœืฆื™ื•ืช ืฉื’ื•ืจืžื™ื ืื™ื ื˜ืจืกื ื˜ื™ื™ื ืžืคืขื™ืœื™ื ืขืœื™ื ื•, ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืคืขื™ืœ ืขืœ ืขืฆืžื ื• ื›ื“ื™ ืœื”ืชืงื“ื ืœื›ื™ื•ื•ืŸ ืืœื™ื• ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ื’ื™ืข, ืื‘ืœ ื‘ืฉื™ืœื•ื‘ ื•ื‘ืžื™ื ื•ืŸ ื ื›ื•ืŸ ืฉืœ ืฉื ื™ ื”ืจืขื™ื•ื ื•ืช. ืœื“ื•ื’ืžื” ืžืชื›ื ืชืช ืฉืขื“ื™ื™ืŸ ืขื•ื‘ื“ืช ื‘ื™ื•ื ื™ื•ื ื‘ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื™ืฉื ื•ืช ื•ืจื•ืฆื” ืœื”ืชืงื“ื ืœื˜ื›ื ื•ืœื•ื’ื™ื” ืžื•ื“ืจื ื™ืช ื™ื•ืชืจ ืื‘ืœ ืœื ืžื•ืฆืืช ื–ืžืŸ ืœืœืžื•ื“ ื‘ื’ืœืœ ื”ืขื‘ื•ื“ื”, ื™ื›ื•ืœื” ืœืงื—ืช ืื—ื“ ืžืฉื ื™ ื›ื™ื•ื•ื ื™ื ืื• ืฉื™ืœื•ื‘: 1. ืืคืฉืจ ืœืจื“ืช ืœืžืฉืจื” ื—ืœืงื™ืช ื•ืœื”ืชื—ื™ืœ ืœืœืžื•ื“ ื‘ื”ื™ืงืฃ ืงื˜ืŸ (ื—ืฆื™ ืฉืขื” ื‘ื™ื•ื ื‘ืžืงื•ื ืงื•ืจืก ืžืœื). 2. ืืคืฉืจ ืœืœื›ืช ืœืžื™ื˜ืืคื™ื, ืคื•ืจื•ืžื™ื ื•ืœื™ืฆื•ืจ ืงืฉืจื™ื ืขื ืื ืฉื™ื ืžื”ืชืขืฉื™ื” ืฉืขื•ื‘ื“ื™ื ื‘ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืืช ืจื•ืฆื” ืœื”ื™ื›ื ืก ืืœื™ื”, ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื’ื•ื“ืœ ื”ืคืขืจ ื‘ื™ืŸ ืื™ืคื” ืฉืืช ื ืžืฆืืช ื”ื™ื•ื ืœื‘ื™ืŸ ื”ืžืงื•ื ืืœื™ื• ืืช ืจื•ืฆื” ืœื”ื’ื™ืข (ืžื‘ื—ื™ื ืช ืžืฉื›ื•ืจืช, ื”ื ืื”, ืชื ืื™ื), ื•ืœืจืื•ืช ืฉื–ื” ื›ืŸ ืืคืฉืจื™ ื›ื“ื™ ืœืงื‘ืœ ืžื•ื˜ื™ื‘ืฆื™ื” ืœื”ืชืงื“ื. ืฉื™ืœื•ื‘ ื˜ื•ื‘ ืฉืœ ื”ืฉื ื™ื™ื, ื‘ืœื™ ืœืงื—ืช ืกื™ื›ื•ื ื™ื ืžื™ื•ืชืจื™ื ื•ื‘ืœื™ ืœื•ื•ืชืจ ืขืœ ื”ืžื•ื˜ื™ื‘ืฆื™ื”, ื”ื•ื ื”ืžืคืชื— ืœื”ืชืงื“ืžื•ืช ื•ืœื‘ื™ืฆื•ืข ืงืคื™ืฆื•ืช ืžืงืฆื•ืขื™ื•ืช, ื’ื ื›ืืœื” ืฉืžืจื’ื™ืฉื•ืช ื”ื™ื•ื ืžืกื•ื›ื ื•ืช ืื• ืžืกื•ื›ื ื•ืช ืžื“ื™.