uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

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

Ko'proq ko'rsatish
1 418
Obunachilar
+124 soatlar
-27 kunlar
-530 kunlar
Postlar arxiv
ToCode
1 418
ื ื™ืกื•ื™ Next - ื˜ืขื™ื ืช ืžื™ื“ืข ืื—ืจื™ ืขืœื™ื™ืช ื”ืขืžื•ื“ ืขื use ืงืฉื” ืžืื•ื“ ืœื”ื‘ื™ืŸ ืืช ืจื™ืืงื˜ ื”ื™ื•ื ืžื—ื•ืฅ ืœืงื•ื ื˜ืงืกื˜ ืฉืœ next. ื›ืชื‘ืชื™ ื›ืืŸ ืขืœ ื”ืกื™ืจื‘ื•ืœ ื‘ืคื•ื ืงืฆื™ื” use ื‘ื’ืœืœ ื”ืฆื•ืจืš ืœื”ืขื‘ื™ืจ ืืช ื” Promise ืžื‘ื—ื•ืฅ ื•ื”ื‘ืขื™ื” ื‘ื™ืฆื™ืจืช Promise ืžืชื•ืš ืงื•ืžืคื•ื ื ื˜ื•ืช. ืขื›ืฉื™ื• ื‘ื•ืื• ื ืจืื” ืืช ื”ืกื™ืคื•ืจ ื‘ืžืฉืงืคื™ื™ื ื”ื ื›ื•ื ื•ืช ืฉืœ next ื•ื ืจืื” ืœืžื” ื‘ืฉื™ืžื•ืฉ ืžืœื ืฉืœ ื”ืคื™ืฆ'ืจ ืื™ืŸ ืฉื•ื ื‘ืขื™ื”. ื”ื‘ืขื™ื” ืขื ืงื•ืžืคื•ื ื ื˜ื•ืช ืืกื™ื ื›ืจื•ื ื™ื•ืช ื ืชื‘ื•ื ืŸ ื‘ืงื•ืžืคื•ื ื ื˜ื” ื”ื‘ืื”:
import { slowlyGetCwd } from "../actions/demo"

export default async function Main() {
  const cwd = await slowlyGetCwd();
  return (
    <div>
      <p>Page content</p>
      <div>Server runs from: <pre>{cwd}</pre></div>
    </div>
  )
}
ื•ื‘ืคื•ื ืงืฆื™ื™ืช ืฆื“ ื”ืฉืจืช ืฉืžืชืื™ืžื” ืœื”:
'use server';

import {setTimeout} from 'node:timers/promises';

export async function slowlyGetCwd() {
  await setTimeout(3000);
  return process.cwd();
}
ืžื” ืฉืงื•ืจื” ื›ืฉื”ืขืžื•ื“ ืขื•ืœื” ื”ืฉืจืช ืžืคืขื™ืœ ืืช ื”ืคื•ื ืงืฆื™ื”, ืžื—ื›ื” 3 ืฉื ื™ื•ืช ื•ืจืง ืื– ืžืกื™ื™ื ืœื™ื™ืฆืจ ืืช ื” HTML ื•ืฉื•ืœื— ืื•ืชื• ืœื“ืคื“ืคืŸ. ื‘-3 ืฉื ื™ื•ืช ื”ืืœื” ื”ื’ื•ืœืฉ ืคืฉื•ื˜ ืžื—ื›ื” ืœืชืฉื•ื‘ื” ืฉืจืช ื•ืœื ืจื•ืื” ื›ืœื•ื ืขืœ ื”ืขืžื•ื“. ืœืคืขืžื™ื ื–ืืช ื”ืชื ื”ื’ื•ืช ื”ื’ื™ื•ื ื™ืช, ืื•ืœื™ ื‘ืืžืช ืื ื—ื ื• ื˜ื•ืขื ื™ื ืžื™ื“ืข ืžืื•ื“ ื‘ืกื™ืกื™ ืžื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื•ืื™ืŸ ืžื” ืœื”ืจืื•ืช ืขื“ ืฉื”ืžื™ื“ืข ื”ื–ื” ืžื’ื™ืข, ืื‘ืœ ืœืคืขืžื™ื ื–ื• ื”ืžืชื ื” ืžื™ื•ืชืจืช - ืื•ืœื™ ืื ื™ ืžื—ื›ื” ืœื˜ืขื•ืŸ ืชืžื•ื ืช ืคืจื•ืคื™ืœ ืฉืœ ื”ืžืฉืชืžืฉ ืžืื™ื–ื” ืืชืจ ืฆื“ ืฉืœื™ืฉื™ ื•ืจืง ื‘ื’ืœืœ ื”ื”ืžืชื ื” ืœืชืžื•ื ื” ื”ื–ืืช ืžืฉืชืžืฉ ืฆืจื™ืš ืœื—ื›ื•ืช ื•ืœื ืœืงื‘ืœ ืืช ื”ืžื™ื“ืข ืฉื›ืŸ ื™ืฉ ืœื™ ืžื•ื›ืŸ ื‘ืฉื‘ื™ืœื•. ืื™ืš use ืคื•ืชืจ ืืช ื”ื‘ืขื™ื” ืคื•ื ืงืฆื™ื™ืช use ื”ื—ื“ืฉื” ื‘ืจื™ืืงื˜ 19 ืžืืคืฉืจืช ื’ื ื’ื™ืฉื” ืœ Context API ื•ื’ื ื”ืžืชื ื” ืœ Promises. ืื•ืชื ื• ืžืขื ื™ื™ืŸ ืœื ืกื•ืช ืืช ื”ืฉื™ืžื•ืฉ ื”ืฉื ื™ ื‘ื”: ืื ืคื•ื ืงืฆื™ื™ืช use ืžืงื‘ืœืช Promise ืื– ื”ืงื•ืžืคื•ื ื ื˜ื” ืœื ืชืชืจื ื“ืจ, ื™ื•ืฆื’ ื‘ืžืงื•ืžื” "ืชื—ืœื™ืฃ" ืžืชื•ืš ื‘ืœื•ืง ื” Suspense ื”ืงืจื•ื‘ ื‘ื™ื•ืชืจ, ื•ืจืง ื›ืฉื” Promise ืชื”ื™ื” ืžื•ื›ื ื” ืื– ื”ืงื•ืžืคื•ื ื ื˜ื” ืชื•ืคื™ืข. ื‘ Next ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืขื‘ื™ืจ Promise ื‘ืชื•ืจ Prop ืžืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ืฉืจืช ืœืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ืœืงื•ื—, ื•ืœื›ืŸ ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ื›ื“ื™ ืœืฉืœื•ื— ืžื™ื“ืข ืœื“ืคื“ืคืŸ ืื—ืจื™ ืฉื”ืขืžื•ื“ ื ื˜ืขืŸ. ื–ื” ื™ืขื‘ื•ื“ ื›ืš: 1. ืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ืฉืจืช ืžืคืขื™ืœื” ืคืขื•ืœื” ืืกื™ื ื›ืจื•ื ื™ืช ืฉืœื•ืงื—ืช ื–ืžืŸ. 2. ื”ืงื•ืžืคื•ื ื ื˜ื” ืžืขื‘ื™ืจื” ืืช ื” Promise ืœืกื™ื•ื ื”ืชื”ืœื™ืš ื‘ืชื•ืจ Prop ืœืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ืœืงื•ื—. 3. ืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ืœืงื•ื— ืžืคืขื™ืœื” use ืขืœ ื” Promise. 4. ื›ืฉื” Promise ืžืกืชื™ื™ื ื‘ืฆื“ ื”ืฉืจืช, ื”ืฉืจืช ืฉื•ืœื— ืœื“ืคื“ืคืŸ ืืช ื”ืžืฉืš ื”ืขืžื•ื“ ื‘ Streaming. ื–ื” ื’ื•ืจื ืœ Promise ื‘ืฆื“ ื”ืœืงื•ื— ืœื”ืกืชื™ื™ื ื•ื›ืš ืจื™ืืงื˜ ื™ื›ื•ืœ ืœืจื ื“ืจ ืืช ืงื•ืžืคื•ื ื ื˜ืช ืฆื“ ื”ืœืงื•ื— ืขื ื”ืžื™ื“ืข ืฉื”ื’ื™ืข ืžื”ืฉืจืช. ื“ื•ื’ืžื”: ืงื‘ืœืช ืžื™ื“ืข ืื—ืจื™ ืฉื”ืขืžื•ื“ ื ื˜ืขืŸ ื‘ื•ืื• ื ื—ืœื™ืฃ ืืช ืงื•ืžืคื•ื ื ื˜ืช Main ืฉื›ืชื‘ื ื• ื‘ืงื•ืžืคื•ื ื ื˜ื” ืขื use. ืชื—ื™ืœื” ื’ื™ืจืกืช ื” client component ืฉืœ Main:
'use client';
import {use} from 'react';

export default function Main({
  cwdPromise
}: {
  cwdPromise: Promise<string>,
}) {
  const cwd = use(cwdPromise)
  return (
    <div>
      <p>Page content</p>
      <div>Server runs from: <pre>{cwd}</pre></div>
    </div>
  )
}
ื•ืขื“ื›ื•ืŸ page.tsx ื›ื“ื™ ืœื™ื™ืฆืจ ืืช ื” Promise, ืœื”ืขื‘ื™ืจ ืื•ืชื• ื› prop ื•ืœื”ื’ื“ื™ืจ ืืช ื”ืชื•ื›ืŸ ืฉื™ื•ืฆื’ ื‘ื–ืžืŸ ื”ื˜ืขื™ื ื”:
import Head from "./components/head"
import Main from "./components/main"
import { slowlyGetCwd } from "./actions/demo"
import { Suspense } from "react";

export default function Home() {
  const getCwd = slowlyGetCwd();
  
  return (
    <div>
      <Head />
      <Suspense fallback={<p>Loading Main</p>}>
        <Main cwdPromise={getCwd} />
      </Suspense>
    </div>
  )
}
ื”ืชื•ืฆืื”: ื”ืขืžื•ื“ ื ื˜ืขืŸ ืžื™ื“ ืื‘ืœ ื‘ืžืงื•ื Main ืžื•ืฆื’ ื”ืชื•ื›ืŸ Loading Main. ืื—ืจื™ 3 ืฉื ื™ื•ืช ืชื•ื›ืŸ ื” Fallback ืžื•ื—ืœืฃ ื‘ืชื•ื›ืŸ ื”ืืžื™ืชื™ ืฉืœ Main ืขื ื”ืชื•ืฆืื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื”ืื™ื˜ื™ืช ื‘ืฆื“ ื”ืฉืจืช.

ToCode
1 418
ืื ืœื•ื’ื™ื™ืช ื”ืœื’ื• ื•ื”ื‘ืขื™ื” ืฉืœื ื• ืขื ืชื›ื ื•ืŸ ืจื•ืคื ืฉืฆืจื™ืš ืœื˜ืคืœ ื‘ื—ื•ืœื” ื™ื•ื“ืข ืœื”ืกืชื›ืœ ืขืœ ืืœืคื™ ื—ื•ืœื™ื ืฉืกื‘ืœื• ื‘ืขื‘ืจ ืžืื•ืชื ืชืกืžื™ื ื™ื, ืœื ืชื— ืืช ื”ื‘ืขื™ื” ื•ืœื‘ื—ื•ืจ ืืช ื”ื˜ื™ืคื•ืœ ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ. ืื“ืจื™ื›ืœ ืฉืฆืจื™ืš ืœืชื›ื ืŸ ื’ืฉืจ ื™ื•ื“ืข ืœื”ืกืชื›ืœ ืขืœ ืืœืคื™ ื’ืฉืจื™ื ืฉื ื‘ื ื• ื‘ืขื‘ืจ ื•ืœื‘ื—ื•ืจ ืืช ืฉื™ื˜ืช ื”ื‘ื ื™ื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœื’ืฉืจ ื”ื—ื“ืฉ. ื›ืŸ ื”ื•ื ื™ื•ื›ืœ ืœื—ื“ืฉ ื‘ืงืฆื•ื•ืช, ืื‘ืœ ื”ื‘ืกื™ืก ื‘ื ื•ื™ ืขืœ ืจืขื™ื•ื ื•ืช ืฉืขื•ื‘ื“ื™ื ืืœืคื™ ืฉื ื™ื. ื•ืื ื—ื ื•? ืื ื—ื ื• ื‘ื•ื ื™ื ื‘ืœื’ื• ื•ื‘ืœื™ ื—ื•ื‘ืจืช ื”ื“ืจื›ื”. ื›ืžืชื›ื ืชื™ื ืื ื—ื ื• ืžืื•ื“ ื˜ื•ื‘ื™ื ื‘ื‘ื ื™ื™ืช ืกืคืจื™ื•ืช ืงื˜ื ื•ืช, ืื ื—ื ื• ืžืฉืชืคื™ื ืื•ืชืŸ ื‘ื’ื™ื˜ื”ืื‘ ืื• ื‘ื™ืŸ ืคืจื•ื™ืงื˜ื™ื. ืื ื—ื ื• ื’ื ื™ื•ื“ืขื™ื ืœื“ื‘ืจ ืขืœ "ืขืงืจื•ื ื•ืช" ืื• "ืจืขื™ื•ื ื•ืช" ืฉืœ ืงื•ื“ ื ืงื™. ืื‘ืœ ืžืื—ืจ ื•ืื™ืŸ ืฉืชื™ ืžืขืจื›ื•ืช ื–ื”ื•ืช ืื™ืŸ ืœื ื• ืื•ืกืฃ ืฉืœ ืžืขืจื›ื•ืช ืฉื ื‘ื ื• ื‘ืขื‘ืจ ืœืœืžื•ื“ ืžื”ืŸ. ื™ื•ืชืจ ืžื–ื”, ื”ื˜ื›ื ื•ืœื•ื’ื™ื” ืžืฉืชื ื” ื›ืœ ื›ืš ืžื”ืจ ืฉืืคื™ืœื• ืื ืื ื™ ื‘ื•ื ื” ืืช ืื•ืชื• ืคืจื•ื™ืงื˜ ืฉื ื” ืื—ืจื™ ืฉื ื” ื”ืงื•ื“ ื™ืจืื” ืื—ืจืช. ืื– ืžื” ื”ืคืœื ืฉื›ืœ ืคืจื•ื™ืงื˜ ืชื•ื›ื ื” ืœื•ืงื— ื™ื•ืชืจ ื–ืžืŸ ื•ืขื•ื‘ื“ ืคื—ื•ืช ื˜ื•ื‘ ืžืžื” ืฉืจืฆื™ื ื•? ื”ื›ื ื™ืกื” ืฉืœ ื” AI ืžืขื ื™ื™ื ืช. ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ืคื•ืขืœ ืื•ื˜ื•ืžื˜ื™ ืฉืžื•ื›ืŸ ืœื‘ื ื•ืช ืืช ืื‘ื ื™ ื”ืœื’ื• ื”ื‘ืกื™ืกื™ื•ืช ื‘ืฉื‘ื™ืœื ื• ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ ืžืžื” ืฉืื™ ืคืขื ื”ืฆืœื—ื ื•. ื”ืื ื–ื” ื”ื•ืœืš ืœื”ืคื•ืš ืืช ื”ื—ื™ื™ื ืฉืœื ื• ืœืฆืคื•ื™ื™ื ื™ื•ืชืจ? ืื ื™ ืœื ื‘ื˜ื•ื—. ื–ื” ืœื ืžืงืจื™ ืฉ AI ืœื ืžืฆืœื™ื— ืœื”ืคื•ืš "ืกื™ืคื•ืจ ืœืงื•ื—" ืœืกื™ื“ืจื” ืฉืœ ืžืฉื™ืžื•ืช ืคืฉื•ื˜ื•ืช ืขื ื”ืขืจื›ื•ืช ื–ืžื ื™ื ืžื“ื•ื™ืงื•ืช ืœื›ืœ ืžืฉื™ืžื”. ื”ืืชื’ืจ ืฉืœื• ื”ื•ื ืขื“ื™ื™ืŸ ื’ื ื”ืืชื’ืจ ืฉืœื ื•, ื•ืคื™ืชื•ื— ืื‘ื ื™ ืœื’ื• ื˜ื•ื‘ื•ืช ื™ื•ืชืจ ืื• ืžื’ื•ื•ื ื•ืช ื™ื•ืชืจ ื–ื” ืœื ื”ื—ืœืง ื”ืžืขื ื™ื™ืŸ ื›ืืŸ.

ToCode
1 418
ื”ื™ ื—ื‘ืจื™ื ื•ื—ื‘ืจื•ืช ืกืงืจ ื–ืจื™ื– ืื ื™ ืขื•ื‘ื“ ืขืœ ืจื™ืขื ื•ืŸ ืงื•ืจืก ืจื™ืืงื˜ ืœื”ืชืื™ื ืื•ืชื• ืœืจื™ืืงื˜ 19, ื ืงืกื˜ ื•ื›ืœ ืžื” ืฉืงื•ืจื” ื”ื™ื•ื ืืฉืžื— ืœืฉืžื•ืข ืžื›ื - ืื™ื–ื” ื“ื‘ืจื™ื ื‘ืขื•ืœื ืฉืœ ืจื™ืืงื˜ ื”ื™ื™ืชื ืฉืžื—ื™ื ืœืžืฆื•ื ื‘ืงื•ืจืก?

ToCode
1 418
ื ื™ืกื•ื™ ื•ื™ื•: ื”ืฆืคื ืช ื–ื™ื’ื–ื’ ื›ืชื‘ืชื™ ืคื” ื‘ืขื‘ืจ ืขืœ ื”ืกืคืจ ืกื•ื“ื•ืช ื”ื”ืฆืคื ื” ืœื™ืœื“ื™ื ืฉื›ืชื‘ื” ืกืชื™ื• ืืœื‘ืจ ื›ืฉื”ืกืคืจ ืขื•ื“ ื”ื™ื” ืจืขื™ื•ืŸ ื‘ื”ื“ืกื˜ืืจื˜. ื”ื™ื•ื ื”ืกืคืจ ื’ืžื•ืจ ื•ืื ื™ ื‘ืืžืฆืข ื”ืงืจื™ืื” ืขื ื”ื™ืœื“ื™ื ื”ืคืจื˜ื™ื™ื ืฉืœื™ ืฉืžืื•ื“ ื ื”ื ื™ื ืžืžื ื• ื‘ื™ื ืชื™ื™ื. ื‘ืฉื‘ื™ืœ ื”ืžืฉื—ืง ื•ื‘ืขืงื‘ื•ืช ื”ืฉืจืื” ืžื”ืกืคืจ ื—ืฉื‘ืชื™ ืœืžืžืฉ ืืช ืื—ืช ื”ื”ืฆืคื ื•ืช ื”ืคืจื™ืžื™ื˜ื™ื‘ื™ื•ืช ืžื”ื“ื•ื’ืžืื•ืช ืฉืœ ืกืชื™ื• ื‘ืงื•ื“ Vue. ืžื” ื–ื” ื”ืฆืคื ืช ื–ื™ื’ื–ื’ ื”ื”ืฆืคื ื” ื ืงืจืืช ื”ืฆืคื ืช ื–ื™ื’ื–ื’ ืื• ื‘ืื ื’ืœื™ืช Rail fence cipher ื•ื–ื”ื• ืžืฆืคื™ืŸ ืฉื‘ืกืš ื”ื›ืœ ืžืฉื ื” ืืช ืกื“ืจ ื”ืื•ืชื™ื•ืช ื‘ืžื™ืœื” ื‘ืื•ืคืŸ ื”ื‘ื: ื›ื•ืชื‘ื™ื ืืช ื”ืžื™ืœื” ืžืœืžื˜ื” ืœืžืขืœื” ืœืจื•ื—ื‘ ื”ื“ืฃ ืขื“ ืœื’ื•ื‘ื” ืžืกื•ื™ื ืฉื ืงืจื ื”ืžืคืชื—, ื•ืื– ืžืžืฉื™ื›ื™ื ืืช ื”ื›ืชื™ื‘ื” ื›ืœืคื™ ืžื˜ื” ืขื“ ืฉืžื’ื™ืขื™ื ืœืฉื•ืจืช ื”ื”ืชื—ืœื” ื•ืื– ืฉื•ื‘ ืขื•ืœื™ื ืœืžืขืœื”. ืขื ืžืกืคื™ืง ืื•ืชื™ื•ืช ื”ืฆื•ืจื” ืฉืžืชืงื‘ืœืช ื ืจืื™ืช ื›ืžื• ื–ื™ื’ื–ื’. ื‘ืกื•ืฃ ืœื•ืงื—ื™ื ืืช ื”ื˜ืงืกื˜ ืฉื›ืชื•ื‘ ืžืœืžืขืœื” ืœืžื˜ื” ื•ื–ื• ื”ื”ื•ื“ืขื” ื”ืžื•ืฆืคื ืช. ืืคืฉืจ ืœืฉื—ืง ืขื ื”ื”ืฆืคื ื” ื‘ื ื™ืกื•ื™ ื•ื™ื• ืฉื›ืชื‘ืชื™ ื›ืืŸ: <iframe src="https://railsfencecipher-vue.vercel.app" height="600" width="800" /> ืื• ืื•ื ืœื™ื™ืŸ ื‘ืงื™ืฉื•ืจ: https://railsfencecipher-vue.vercel.app ื•ื‘ืงื•ื“ ื”ื ื™ืกื•ื™ ื‘ื’ื™ื˜ื”ืื‘: https://github.com/ynonp/railsfencecipher-vue ืกืงื™ืจืช ืงื•ื“ ื”ืฆืคื ื” ื•ืคื™ืขื ื•ื— ื”ืงื•ื‘ืฅ ืฉืžื˜ืคืœ ื‘ื”ืฆืคื ื” ื•ืคื™ืขื ื•ื— ื”ื•ื:
import _ from 'lodash';

export function encrypt(msg: string, key: number) {
  const height = key;
  const groupSize = height * 2 - 2;
  
  const positions = msg.split('').map((ch, idx) => {
    const indexInGroup = idx % groupSize;
    const rowFromBottom = (indexInGroup < height) ? (indexInGroup + 1) : height - (indexInGroup + 1 - height);
    const rowFromTop = height - (rowFromBottom - 1);

    return {
      ch,
      column: idx + 1,
      row: rowFromTop,
      style: { gridArea: \${rowFromTop} / ${idx + 1}\ }
    }
  })

  const message = _.sortBy(positions, 'row').map(p => p.ch).join('');
  return {
    positions,
    message,
  }
}

export function decrypt(msg: string, key: number) {
  const {positions} = encrypt(msg, key);
  const sortedPositions = _.sortBy(positions, 'row');
  const positionsWithEncryptedMessage = sortedPositions.map((p, index) => ({...p, ch: msg[index]}));
  return {
    positions: positionsWithEncryptedMessage,
    message: _.sortBy(positionsWithEncryptedMessage, 'column').map(p => p.ch).join('')
  }
}
ื‘ื’ื“ื•ืœ ืœื•ืงื—ื™ื ืืช ื”ื”ื•ื“ืขื” ื•ืจืฆื™ื ื‘ืœื•ืœืื” ืขืœ ื›ืœ ื”ืชื•ื•ื™ื, ื‘ื›ืœ ืชื• ืžืขืœื™ื ื‘-1 ืืช ืื™ื ื“ืงืก ื”ืขืžื•ื“ื” ื•ืžืฉื ื™ื ืืช ืื™ื ื“ืงืก ื”ืฉื•ืจื” ืœืคื™ ื”ื‘ื“ื™ืงื” ื‘ืื•ืคืจื˜ื•ืจ ื”ื˜ืจื ืจื™, ืื ื”ื•ื ื‘ื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ื–ื™ื’ื–ื’ ืžืขืœื™ื ืืช ืื™ื ื“ืงืก ื”ืฉื•ืจื” ื•ืื ื”ื•ื ื‘ื—ืœืง ื”ืฉื ื™ ืฉืœ ื”ื–ื™ื’ื–ื’ ืžื•ืจื™ื“ื™ื ืืช ืžืกืคืจ ื”ืฉื•ืจื”. ื‘ืฉื‘ื™ืœ ื”ืคื™ืขื ื•ื— ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืื•ืชื” ืคื•ื ืงืฆื™ื™ืช ื”ืฆืคื ื” ื›ื“ื™ ืœื—ืฉื‘ ืืช ืฆื•ืจืช ื”ื–ื™ื’ื–ื’ ื•ืื—ืจื™ ื–ื” ื‘ืœื•ืœืื” ื ื•ืกืคืช ืžืžืœืื™ื ืืช ื”ืจื™ื‘ื•ืขื™ื ื‘ืื•ืชื™ื•ืช ื”ืืžื™ืชื™ื•ืช. ืžื—ืฉื‘ื•ืช ืขืœ ื ื™ืกื•ื™ื™ื ื• AI ืฆืจื™ืš ืœื”ื’ื™ื“, ื ื”ื ื™ืชื™ ืžื”ื ื™ืกื•ื™. ื”ื•ื ืขื–ืจ ืœื™ ืœื”ื‘ื™ืŸ ื˜ื•ื‘ ื™ื•ืชืจ ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ืฆื•ืคืŸ ื–ื™ื’ื–ื’. ืœื ื”ื™ื” ืœื™ ืกืคืง ืฉื™ืฉ ื›ื‘ืจ ืื ืฉื™ื ืฉืžื™ืžืฉื• ืืช ื–ื” ืœืคื ื™ื™ ื‘ืื™ื ื˜ืจื ื˜ ื•ืื›ืŸ ืœื ืฆืจื™ืš ื™ื•ืชืจ ืžื›ืžื” ืฉื ื™ื•ืช ื‘ื’ื•ื’ืœ ื›ื“ื™ ืœื”ื’ื™ืข ืœื”ืžื•ืŸ ืžื™ืžื•ืฉื™ื ื•ื”ืกื‘ืจื™ื ืขืœ ืฆื•ืคืŸ ื–ื”, ื›ืžื• ืฉื’ื•ื’ืœ ื™ื•ื“ืข. ื‘ืจื•ืจ ื’ื ืฉืžื ื•ืขื™ AI ืžืกื•ื’ืœื™ื ืœื‘ื ื•ืช ืืช ื”ืงื•ื“ ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ ืžืžื” ืฉืื ื™ ื›ืชื‘ืชื™ ื•ืืคื™ืœื• ืœื™ื™ืฆืจ ืชื•ืฆืื” ื™ืคื” ื™ื•ืชืจ. ื”ื ื” ื–ื• ื”ื’ื™ืจืกื” ืฉืœ ืงืœื•ื“ ืœืื•ืชื• ืžืฆืคื™ืŸ: https://claude.site/artifacts/6a2f527f-8bc8-43d5-b837-3996a9c6392c ืžืชื•ืš ื”ืคืจื•ืžืคื˜: > create an online rails fence cipher / decipher tool ื•ืื– ืžื’ื™ืขื™ื ืœืฉืืœื” - ืื ื”ื›ืœ ื›ื‘ืจ ืงื™ื™ื ื‘ืฉื‘ื™ืœ ืžื” ืœื‘ื ื•ืช ืืช ื–ื”? ื•ืื ืงืœื•ื“ ื™ื•ื“ืข ืœื‘ื ื•ืช ืืช ื”ืžืฆืคื™ืŸ ื‘ืฉื ื™ื” ื•ื—ืฆื™ ืœืžื” ืœื ืœืงื—ืช ืืช ื”ืžื™ืžื•ืฉ ืฉืœื•? ื•ื‘ื›ืœืœ ืื™ืš ื ืจืื” ื”ืขืชื™ื“ ืฉืœื™ ื›ืžืชื›ื ืช ื›ืฉืงืœื•ื“ ืขื•ืฉื” ื›ืœ ื“ื‘ืจ ื™ื•ืชืจ ืžื”ืจ? ื”ืชืฉื•ื‘ื” ืฉืœื™ ื›ืจื’ืข ื”ื™ื ืฉื”ื™ื“ืข ื”ืชื™ืื•ืจื˜ื™ ื•ื”ื™ื“ืข ื”ืžืขืฉื™ ืงืฉื•ืจื™ื ืื—ื“ ืœืฉื ื™, ื•ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืชืืžืŸ ืขืœ ืฉื ื™ื”ื ื›ื“ื™ ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื‘ื ื•ืช ืืช ื”ืžื•ืฆืจื™ื ื”ื‘ืื™ื. ื›ื›ืœ ืฉืขื•ื‘ืจ ื”ื–ืžืŸ ืขื ื” AI ื”ืžื’ื‘ืœื•ืช ืฉืœื• ืžืชื‘ื”ืจื•ืช. ื–ื” ืœื ืžืคืจื™ืข ืœื™ ืœื›ืชื•ื‘ ืงื•ื“ ืฉืงืœื•ื“ ื”ื™ื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืžื”ืจ ื™ื•ืชืจ ื‘ืฉื‘ื™ืœ ืœืœืžื•ื“ ื ื•ืฉื, ื›ื™ ื ื™ืกื•ื™ ืžืขืฉื™ ื”ื•ื ืขื“ื™ื™ืŸ ื”ื“ืจืš ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืœืœืžื•ื“. ืžืžื™ืœื ื”ืขื‘ื•ื“ื” ืืžื™ืชื™ืช ืฉืื ื™ ืขื•ืฉื” - ืคื™ืชื•ื— ื•ืชื™ืงื•ืŸ ืžืขืจื›ื•ืช ืืžื™ืชื™ื•ืช, ื”ื™ื ืžื—ื•ืฅ ืœ Context Window ืฉืœ ื›ืœ AI ืฉืจืื™ืชื™ ืื• ืฉืื ื™ ื™ื›ื•ืœ ืœื“ืžื™ื™ืŸ.

ToCode
1 418
ื—ื›ืžื™ื ืžื“ื™ ื‘ื–ืžืŸ ืฉืฉื‘ืจืชื™ ืืช ื”ืจืืฉ ื›ื“ื™ ืœื”ื‘ื™ืŸ ืœืžื” ื”ืžื™ื™ืœ ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื”ืคื•ืกื˜ ืœื ื ืฉืœื— ืืชืžื•ืœ ืฉืžืขืชื™ ืžื”ืฆื“ ืฉืœ ื”ืžื•ื— ืงื•ืœ ืžื”ืขื‘ืจ. ืขื–ื•ื‘ ื ื™ืกื™ืชื™ ืœื”ืฉืชื™ืง ืื•ืชื•, ื–ื” ืœื ืงืฉื•ืจ, ื–ื” ื‘ื˜ื— ื‘ื’ืœืœ ื”ืฉื™ื ื•ื™ ืฉื”ื•ืกืคืชื™ ืœ Headers ืฉืœ ื”ืžื™ื™ืœ ื™ื•ื ืงื•ื“ื, ืžืฉื”ื• ืฉื ืœื ื ื“ื—ืฃ ื›ืžื• ืฉืฆืจื™ืš. ืดืืชื” ื™ื•ื“ืข ืžื” ื”ื‘ืขื™ื” ืฉืœื›ื?ืด ืืžืจ ืœื™ ืคืขื ืžื ื”ืœ ื—ื›ื, ืดืืชื ื—ื›ืžื™ื ืžื“ื™. ืžืจื•ื‘ ืฉืืชื ืจื•ืื™ื ื‘ืขื™ื•ืช ืืชื ืœื ืžืฆืœื™ื—ื™ื ืœื”ืชืงื“ืืด. ืœื ืจืฆื™ืชื™ ืœื”ืกื›ื™ื ืื™ืชื•. ื”ื™ื™ืชื™ ื‘ื˜ื•ื— ืฉืื ื—ื ื• ืจื•ืื™ื ื‘ืขื™ื•ืช ืืžื™ืชื™ื•ืช, ืฉืงื•ื“ ืฆืจื™ืš ืœื”ื™ื•ืช ื ื›ื•ืŸ ืœืคื ื™ ืฉื”ื•ื ืขื•ื‘ื“, ืฉืจืง ื›ืชื™ื‘ื” ื ื›ื•ื ื” ื•ืžืกื•ื“ืจืช ืžื™ื™ืฆืจืช ืžืขืจื›ื•ืช ื ื›ื•ื ื•ืช, ื•ืจืง ืื ื™ ื™ื•ื“ืข ืžื” ื–ื” ื ื›ื•ืŸ ื•ืžืกื•ื“ืจ. ืื ื™ ื—ื•ื–ืจ ืœื“ื‘ื’ ืืช ื”ืชืงืœื” ืฉืœ ื”ืžื™ื™ืœ ืฉืœื ื ืฉืœื—. ืืฆืœื™ ื‘ืคื™ืชื•ื— ื”ื›ืœ ืขื•ื‘ื“ ืื– ืื ื™ ืžื ืกื” ืœื”ืจื™ืฅ ืืช ื”ืชื”ืœื™ืš ื™ื“ื ื™ืช ื•ืžืงื‘ืœ ืืช ื”ื•ื“ืขืช ื”ืฉื’ื™ืื”:
Template contains unsupported operations
ืจื’ืข ืžื” ืคืชืื•ื unsupported oprations? ื•ืžื™ ื‘ื›ืœืœ ื“ื™ื‘ืจ ืขืœ ื˜ืžืคืœื™ื™ื˜ืก? ืื‘ืœ ืžื”ืจ ืžืื•ื“ ื“ื‘ืจื™ื ืžืชื—ื™ืœื™ื ืœื”ืชื—ื‘ืจ. ื”ืคื•ื ืงืฆื™ื” send_bulk_email ืฉืœ SES ื™ื•ื“ืขืช ืœืงื‘ืœ ืคืจืžื˜ืจื™ื ื›ื“ื™ ืœืงืกื˜ื ืืช ื”ืื™ืžื™ื™ืœ ืœื›ืœ ื ืžืขืŸ ื‘ื ืคืจื“. ืคืจืžื˜ืจื™ื ื‘ื’ื•ืฃ ื”ืžื™ื™ืœ ื ื›ืชื‘ื™ื ื‘ืชื•ืš ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื ื›ืคื•ืœื™ื, ื•ืืฆืœื™ ื‘ืคื•ืกื˜ ื”ื™ืชื” ื“ื•ื’ืžื” ื‘ื“ื™ื•ืง ืฉืœ ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื ื›ืคื•ืœื™ื. ื”ืื SES ื—ื•ืฉื‘ ื‘ื˜ืขื•ืช ืฉืชื•ื›ืŸ ื”ืžื™ื™ืœ ืฉืœื™ ื“ื•ืจืฉ ื”ื—ืœืคืช ืชื‘ื ื™ืช? ื”ืื ื”ื•ื ื—ื•ืฉื‘ ืฉื”ืกื•ื’ืจื™ื™ื ืฉื‘ืคื•ืกื˜ ืžื’ื“ื™ืจื™ื ืคืจืžื˜ืจื™ื? ื•ืื ื–ื” ื”ืžืฆื‘ ืžื” ื”ืžืฉืžืขื•ืช ืฉืœ unsupported operations. ืดื›ืฉืื ื™ ืฆืจื™ืš ืœื‘ื ื•ืช ืคื™ืฆ'ืจ ืื ื™ ืžืฉืชืžืฉ ื‘ื›ืœื™ื ืฉืื ื™ ืžื›ื™ืจ. ืื ืฆืจื™ืš ืื ื™ ืžื•ื›ืŸ ื’ื ืœืกื˜ื•ืช ืžื”ืื™ืคื™ื•ืŸ, ื•ื‘ืœื‘ื“ ืœื”ื’ื™ืข ืœืžืฉื”ื• ืฉืขื•ื‘ื“ ื‘ื–ืžืŸ ืขืœื™ื• ื”ืชื—ื™ื™ื‘ืชื™. ืื ื™ ืœื ืขื•ืฉื” ื”ืขืจื›ื•ืช ื–ืžื ื™ื, ืื ื™ ืงื•ื‘ืข ื–ืžื ื™ื, ื•ื”ืคื™ืชื•ื— ืžืชืื™ื ืœื–ืžืŸ ืฉืงื‘ืขืชื™. ืืชื ื ื›ื ืกื™ื ืœืžืฉื™ืžื” ื›ืžื• ืœืขื‘ื•ื“ืช ืžื—ืงืจ: ืžื—ืคืฉื™ื ืื™ืš ื“ื‘ืจื™ื ืฆืจื™ื›ื™ื ืœืขื‘ื•ื“ ื•ืžื ืกื™ื ืœืžืžืฉ ืืช ื–ื”. ืื™ืŸ ืกื™ื›ื•ื™ ืœืขืžื•ื“ ื‘ื–ืžื ื™ื ื›ื›ื”ืด. ืื ื™ ืžื ืกื” ืœืชืงืŸ. ืžื” ื”ื‘ืขื™ื”, ื–ื” ืจืง ืœื”ื•ืกื™ืฃ ืœื•ื›ืกืŸ ื”ืคื•ืš ืœืคื ื™ ื”ืกื•ื’ืจื™ื™ื ื”ืžืกื•ืœืกืœื™ื ื”ื”ืคื•ื›ื™ื ืœืคื ื™ ืฉืฉื•ืœื—ื™ื ืื•ืชื• ืœืคื•ื ืงืฆื™ื” ืฉืœ AWS, ืื‘ืœ ืฉื•ื ื“ื‘ืจ ื‘ืชื•ื›ื ื” ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ื›ืš ืคืฉื•ื˜. ืœ AWS ืœื ืื›ืคืช ืžื”ืœื•ื›ืกืŸ ื”ื”ืคื•ืš ืฉืœื™ ื•ื”ื•ื ืžืžืฉื™ืš ืœื”ืชืœื•ื ืŸ ืขืœ ื”ืชื‘ื ื™ืช ืฉืžื›ื™ืœื” ืคืขื•ืœื•ืช ืฉืื™ื ืŸ ื ืชืžื›ื•ืช. ืขื›ืฉื™ื• ืื ื™ ื›ื‘ืจ ืฉื•ืžืข ื‘ื‘ื™ืจื•ืจ ืืช ื”ืงื•ืœ ืžื”ืขื‘ืจ ื•ืžื‘ื™ืŸ ืฉื”ื‘ืขื™ื” ืฉืœื™ ื”ืจื‘ื” ื™ื•ืชืจ ืขืžื•ืงื”. ื‘ื•ืื• ื ืกื›ื: 1. ื™ืฉ ืฉืชื™ ื“ืจื›ื™ื ืœืฉืœื•ื— ืื™ืžื™ื™ืœ ื‘ AWS. ืืคืฉืจ ืœืฉืœื•ื— ืžื™ื™ืœ ื‘ื•ื“ื“ ื‘ืคืจื•ื˜ื•ืงื•ืœ SMTP ืื• ืœืฉืœื•ื— ืขืจื™ืžื” ืฉืœ ืื™ืžื™ื™ืœื™ื ื‘ืงืจื™ืืช ืคื•ื ืงืฆื™ื” ืื—ืช ื“ืจืš ื” API ืฉืœ AWS. ื‘ืจื•ืจ ืฉื”ืงืจื™ืื” ื”ืื—ืช ืžื”ื™ืจื” ื•ื™ืขื™ืœื” ื™ื•ืชืจ. ื™ื•ืชืจ ืžื–ื”, ืื ื™ ื‘ืืžืช ืฆืจื™ืš ื”ืชืืžื” ืื™ืฉื™ืช ืฉืœ ื”ืžื™ื™ืœ ืœื›ืœ ื ืžืขืŸ ื›ื™ ื‘ื›ืœ ืžื™ื™ืœ ื™ืฉ ืงื™ืฉื•ืจ ืœื”ืกืจื” ืžืจืฉื™ืžืช ื”ืชืคื•ืฆื” ื•ื”ืงื™ืฉื•ืจ ืฉื•ื ื” ืœื›ืœ ื ืžืขืŸ. 2. ื”ื‘ืขื™ื” - ื‘ื–ืžืŸ ื”ืคื™ืชื•ื— ืœื ื™ื“ืขืชื™ ื›ืœื•ื ืขืœ SES, ืœื ื”ื›ืจืชื™ ืืช ื”ืžื’ื‘ืœื•ืช ืฉืœื•. ืขืจื‘ื‘ืชื™ ื‘ื™ืŸ ืคืจื•ื™ืงื˜ ืžื—ืงืจื™ ืœืคืจื•ื™ืงื˜ ืคื™ืชื•ื—, ื•ื‘ื—ืจืชื™ ื‘ืืคืฉืจื•ืช ืฉื ืจืืชื” ื ื›ื•ื ื” ืœืžืจื•ืช ืฉื”ื™ื ืœืงื—ื” ื–ืžืŸ ืคื™ืชื•ื— ืืจื•ืš ื‘ื”ืจื‘ื”. 3. ื”ืžื›ื” - ืืคื™ืœื• ืื—ืจื™ ืฉื”ืงื•ื“ ื”ื ื›ื•ืŸ ืขื‘ื“, ื•ื‘ื’ืœืœ ืฉืœื ื”ื›ืจืชื™ ืžืกืคื™ืง ื˜ื•ื‘ ืืช SES ืœื ื™ื“ืขืชื™ ืฉื”ื•ื ืจื’ื™ืฉ ืœืชื•ื•ื™ื ืฉื ืจืื™ื ื›ืžื• ืžืฉืชื ื™ื ืœื”ื—ืœืคื” ืื‘ืœ ื‘ืขืฆื ืื™ื ื ื›ืืœื”. ืื ื™ ืขื“ื™ื™ืŸ ืœื ื™ื•ื“ืข ืื ื” API ืฉืœ SES ื™ื›ื•ืœ ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ื”ื–ืืช ืื• ืื™ืš ืœื”ืฉืชืžืฉ ื‘ื• ื›ื“ื™ ืœื”ื—ืœื™ืฃ ืžืฉืชื ื” ื‘ืžืงื•ื ืื—ื“ (ืงื™ืฉื•ืจ ืœื”ืกืจื” ืžื”ืจืฉื™ืžื”) ืื‘ืœ ืœื”ืชืขืœื ืžื“ื‘ืจื™ื ืฉื ืจืื™ื ื›ืžื• ืžืฉืชื ื™ื ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื. 4. ืžื” ืขื“ื™ืฃ - ืื—ืจื™ ืฉืจืื™ืชื™ ืืช ื›ืœ ื–ื” ืขื“ื›ื ืชื™ ืืช ื”ืงื•ื“ ื›ื“ื™ ืœืฉืœื•ื— ืืช ื”ืžื™ื™ืœ ื“ืจืš SMTP. ื›ืŸ ื–ื” ืœื•ืงื— ื™ื•ืชืจ ื–ืžืŸ ืื‘ืœ ืžืžื™ืœื ื”ืชื”ืœื™ืš ืจืฅ ื‘ืจืงืข. ืœ AWS ืœื ืื›ืคืช ืœืงื‘ืœ ืืคื™ืœื• ืืœืคื™ ืžื™ื™ืœื™ื ื‘ SMTP ื•ื”ืงื•ื“ ื‘ืฆื“ ืฉืœื™ ื™ืฆื ื”ืจื‘ื” ื™ื•ืชืจ ืคืฉื•ื˜ ื•ืงืฆืจ. ื™ื•ืชืจ ืžื–ื”, ืื ื‘ืขืชื™ื“ ืืจืฆื” ืœืขื‘ื•ืจ ืœืฉื™ืจื•ืช ืžื™ื™ืœ ืžืชื—ืจื” ื”ืฉื™ื ื•ื™ ื”ื™ื—ื™ื“ ืฉื™ื™ื“ืจืฉ ื”ื•ื ื‘ื”ื’ื“ืจื•ืช ื•ืœื ื‘ืงื•ื“, ื›ื™ ืื ื™ ืœื ื ืขื•ืœ ืขืœ API ืกืคืฆื™ืคื™ ืฉืœ SES. ื”ืื ื™ื•ื ืื—ื“ ื–ื” ื™ื™ืฉื‘ืจ? ืื•ืœื™. ืื‘ืœ ื–ืืช ื‘ื”ื—ืœื˜ ื‘ืขื™ื” ืฉืœื ื”ื™ื” ืฆืจื™ืš ืœืคืชื•ืจ ืžืจืืฉ. ืžืชื›ื ืชื™ื ื—ื›ืžื™ื (ืฉืื™ื ื ื—ื›ืžื™ื ืžื“ื™) ื™ื•ื“ืขื™ื ืœื‘ื—ื•ืจ ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืžืฉืขืžืžื•ืช ื›ืฉื”ืŸ ืคื•ืชืจื•ืช ืืช ื”ื‘ืขื™ื” ืžืกืคื™ืง ื˜ื•ื‘.

ToCode
1 418
ื˜ื™ืค ืจื•ื‘ื™ - ื”ื—ืœืคืช ื˜ืงืกื˜ ืžืชื•ืš Hash ืคื•ื ืงืฆื™ื™ืช gsub ืฉืœ ืจื•ื‘ื™ ืžื—ืœื™ืคื” ื˜ืงืกื˜ื™ื ื‘ืชื•ืš ืžื—ืจื•ื–ื•ืช. ื”ื™ื ืคื•ืขืœืช ืขืœ ืžื—ืจื•ื–ืช, ืžืงื‘ืœืช ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™ ืื•ืชื• ืฆืจื™ืš ืœืžืฆื•ื ื‘ืžื—ืจื•ื–ืช ื•ื˜ืงืกื˜ ืœื”ื—ืœืคื” ื•ืฉืžื” ืืช ื”ื˜ืงืกื˜ ืœื”ื—ืœืคื” ื‘ืžืงื•ื ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™. ืขื“ ืœืคื” ืœื ืžืœื”ื™ื‘ ื›ืœืœ. ื“ื‘ืจื™ื ืžืชื—ื™ืœื™ื ืœื”ื™ื•ืช ืžืขื ื™ื™ื ื™ื ื›ืฉื‘ืžืงื•ื ื˜ืงืกื˜ ืื ื—ื ื• ืžืขื‘ื™ืจื™ื ื‘ืชื•ืจ ืคืจืžื˜ืจ Hash ืขื ืžืกืคืจ ืžืคืชื—ื•ืช ืœื”ื—ืœืคื”. ื”ืžืงืจื” ื”ืคืฉื•ื˜ ื”ืคื•ื ืงืฆื™ื” gsub ื™ื•ื“ืขืช ืœืงื‘ืœ ื‘ื™ื˜ื•ื™ ืจื’ื•ืœืืจื™ ื•ื˜ืงืกื˜ ืœื”ื—ืœืคื” ื•ืžื—ืœื™ืคื” ื›ืœ ืžื•ืคืข ืฉืœ ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ื‘ื˜ืงืกื˜. ื–ื” ื ืจืื” ื›ื›ื”:
> 'hello big world'.gsub(/ /, '-')
 => "hello-big-world"
ืžืขื ื™ื™ืŸ ืœื’ืœื•ืช ืฉื‘ืจื•ื‘ื™ ืืคืฉืจ ืœื”ืขื‘ื™ืจ ื‘ืžืงื•ื ื˜ืงืกื˜ ืœื”ื—ืœืคื” Hash ืขื ืžืกืคืจ ื˜ืงืกื˜ื™ื ืœื”ื—ืœืคื”, ื•ืื– ืื—ืจื™ ื”ืชืืžื” ืฉืœ ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ื”ืคื•ื ืงืฆื™ื” ืชื—ืคืฉ ื‘ Hash ืžืคืชื— ืขื ืชื•ื›ืŸ ื”ื˜ืงืกื˜ ืฉื”ืชืื™ื ืœื‘ื™ื˜ื•ื™ ื•ืื ื”ื™ื ืžื•ืฆืืช ื”ื™ื ืชื—ืœื™ืฃ ืืช ื”ื˜ืงืกื˜ ื‘ืขืจืš ืฉืžื•ืคื™ืข ื‘ Hash, ื›ืœื•ืžืจ:
 > 'hello big world...'.gsub(/\W/, {' ' => '-', '.' => '!'})
 => "hello-big-world!!!"
ื”ื—ืœืคืช ื˜ื•ืงื ื™ื ื”ืคื™ืฆ'ืจ ื”ื–ื” ืžืžืฉ ื—ืžื•ื“ ื›ื™ ื”ื•ื ืžืืคืฉืจ ืœื›ืชื•ื‘ ื‘ืงืœื•ืช ืžื ื’ื ื•ืŸ ื˜ืžืคืœื™ื™ื˜ืก, ื›ืœื•ืžืจ ืงื•ื“ ืฉื™ืงื‘ืœ ื˜ืงืกื˜ ื•ื™ื—ืœื™ืฃ ืžื™ืœื™ื ืฉืžื•ืจื•ืช ื‘ืขืจืš ืฉืœื”ืŸ ืžืชื•ืš ื” Hash. ืœื“ื•ื’ืžื” ืฉื™ืžื• ืœื‘ ืœืงื•ื“ ื”ื–ื”:
3.1.1 :034 > text = 'name: {{name}}, email: {{email}}, phone: {{phone}}'
 => "name: {{name}}, email: {{email}}, phone: {{phone}}"
3.1.1 :035 > data = {'{{name}}' => 'ynon', '{{email}}' => 'testmail', '{{phone}}' => '0521111111' }
 => {"{{name}}"=>"ynon", "{{email}}"=>"testmail", "{{phone}}"=>"0521111111"}
3.1.1 :036 > text.gsub(/{{\w+}}/, data)
 => "name: ynon, email: testmail, phone: 0521111111"
ืžื” ืขื•ื“ ืืคืฉืจ ื˜ื™ืค ืื—ืจื•ืŸ ืœืคื•ื ืงืฆื™ื” ื”ื–ืืช ืงืฉื•ืจ ืœื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ืขืฆืžื•. ื ืฉื™ื ืœื‘ ืฉื‘ื“ื•ื’ืžื” ื”ืื—ืจื•ื ื” ื”ืžืคืชื—ื•ืช ื‘ Hash ื”ื™ื• ืขื˜ื•ืคื™ื ื‘ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื ื›ืคื•ืœื™ื, ื›ื“ื™ ืฉื™ืชืื™ืžื• ืœื˜ืงืกื˜ ืฉื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ืชืคืก. ืœืคืขืžื™ื ื™ื”ื™ื” ืœื ื• ื›ื‘ืจ Hash ืขื ืžืคืชื—ื•ืช ืฉืœื ื‘ื“ื™ื•ืง ืžืชืื™ืžื™ื ืœื˜ืงืกื˜ ืื•ืชื• ืื ื—ื ื• ืžืฆืคื™ื ืœืชืคื•ืก ืœื“ื•ื’ืžื”:
data = {'name' => 'ynon', 'email' => 'testmail', 'phone' => '0521111111' }
 => {"name"=>"ynon", "email"=>"testmail", "phone"=>"0521111111"}
ื‘ืžืฆื‘ ื›ื–ื” ืืคืฉืจ ืœื”ืคืขื™ืœ map ื›ื“ื™ ืœืฉื ื•ืช ืืช ืฉืžื•ืช ื”ืžืคืชื—ื•ืช ื•ืื– to_h ื›ื“ื™ ืœื—ื–ื•ืจ ืœ Hash, ืื‘ืœ ืื•ืœื™ ื™ื•ืชืจ ืงืœ ืœืชืงืŸ ืืช ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™. ื‘ืขื–ืจืช Lookarounds ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื‘ื™ื˜ื•ื™ ืฉื™ื—ืคืฉ ืืช ืกื™ืžื ื™ ื”ืกื•ื’ืจื™ื™ื ื”ืžืกื•ืœืกืœื™ื ื”ื›ืคื•ืœื™ื ืื‘ืœ ืœื "ื™ืชืคื•ืก" ืื•ืชื ื•ื›ืš ื”ื”ืชืืžื” ืชื”ื™ื” ืจืง ืžื•ืœ ื”ืžื™ืœื” ืขืฆืžื” (name, email ืื• phone):
3.1.1 :044 > text.gsub(/(?<={{)\w+(?=}})/, data)
 => "name: {{ynon}}, email: {{testmail}}, phone: {{0521111111}}"

ToCode
1 418
ืœืœืžื•ื“ ื˜ื›ื ื•ืœื•ื’ื™ื” ื—ื“ืฉื” ื‘ืฉื‘ื™ืœ ืคืจื•ื™ืงื˜? ื—ื‘ืจ ืฉื•ืืœ - ื™ืฉ ืœื™ ืคืจื•ื™ืงื˜ flask ืฉืžืฉืชืžืฉ ื‘ Psycopg ื•ืื ื™ ืฆืจื™ืš ืœืฉื›ืชื‘ ืืช ืจื•ื‘ ื”ืงื•ื“ ืฉืขื•ื‘ื“ ืขื ื‘ืกื™ืก ื”ื ืชื•ื ื™ื. ืฉื•ื•ื” ืœื™ ืœืœืžื•ื“ SQLAlchemy ื‘ืฉื‘ื™ืœ ื–ื”? ืงืœ ืœืจืื•ืช ืœืžื” ืœื: 1. ื”ืคืจื•ื™ืงื˜ ื›ืืŸ. ื™ืฉ ืœื• ื“ื“ืœื™ื™ืŸ. ืืชื” ื›ื‘ืจ ื™ื•ื“ืข ืœืขื‘ื•ื“ ืขื Psycopg ืื‘ืœ ืื™ืŸ ืœืš ืžื•ืฉื’ ืื™ืš ืขื•ื‘ื“ื™ื ืขื SQLAlchemy, ื•ืืคื™ืœื• ืื ืขืฉื™ืช ื˜ื•ื˜ื•ืจื™ืืœ ืื• ืฉื ื™ื™ื ืื™ืŸ ืœืš ืžื•ืฉื’ ืื™ื–ื” ื‘ืขื™ื•ืช ื™ื”ื™ื• ืฉื. ื—ื‘ืœ ืœื‘ื–ื‘ื– ืคืจื•ื™ืงื˜ ื˜ื•ื‘ ืจืง ื‘ื’ืœืœ ืฉื‘ื ืœืš ืœืœืžื•ื“ ืžืฉื”ื• ื—ื“ืฉ. 2. ื”ืžื˜ืจื” ื‘ืœื™ืžื•ื“ ื”ื™ื ืœื”ื‘ื™ืŸ. ื›ืฉืืชื” ืฆืจื™ืš ืœื‘ื ื•ืช ืžืขืจื›ืช ืื™ืŸ ืœืš ื–ืžืŸ ืœืงืจื•ื ืืช ื›ืœ ื”ืชื™ืขื•ื“, ืœื”ืงืฉื™ื‘ ืœื”ืจืฆืื•ืช, ืœื”ื™ื›ื ืก ืœืงื•ื“ ื”ืกืคืจื™ื” ื•ืœื ืกื•ืช ืœืฉื‘ื•ืจ ื“ื‘ืจื™ื ื›ื“ื™ ืœืจืื•ืช ืื™ืš ื–ื” ืขื•ื‘ื“. ื—ื‘ืœ ืœื‘ื–ื‘ื– ืœื™ืžื•ื“ ื˜ื•ื‘ ืจืง ื‘ื’ืœืœ ืฉืขื›ืฉื™ื• ืฆืจื™ืš ืœืฉื›ืชื‘ ืงื•ื“ ื™ืฉืŸ. ื›ืฉืื ื—ื ื• ืžืคืจื™ื“ื™ื ื‘ื™ืŸ ื”ืœื™ืžื•ื“ ืœืคื™ืชื•ื— ืฉื ื™ ื”ืฆื“ื“ื™ื ืžืจื•ื•ื™ื—ื™ื. ื‘ืฆื“ ื”ืœื™ืžื•ื“ ืื ื—ื ื• ืœื ืžืžื”ืจื™ื ืœืกื™ื™ื ืคืจื•ื™ืงื˜ ื•ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ื•ืœืžื—ื•ืง ื•ืœืฉื‘ื•ืจ ื•ืœื‘ื ื•ืช POC-ื™ื ืงื˜ื ื™ื ืขื“ ืฉื ื”ื™ื” ื‘ื˜ื•ื—ื™ื ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื. ื‘ืฆื“ ื”ืคื™ืชื•ื— ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœืชืช ื”ืขืจื›ื•ืช ื–ืžื ื™ื ืžื“ื•ื™ืงื•ืช ื›ื™ ืื ื—ื ื• ืขื•ื‘ื“ื™ื ืขื ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืฉืื ื—ื ื• ืžื›ื™ืจื™ื. ืขื‘ื•ื“ื” ืžืงืฆื•ืขื™ืช ืื•ืžืจืช ืฉืขืœื™ื ื• ืœื”ืกืชื›ืœ ืขืœ ื˜ื•ื‘ืช ื”ืœืงื•ื—, ื•ืœืคื™ืชื•ื— ื•ืœืœื™ืžื•ื“ ื™ืฉ ืฉื ื™ ืœืงื•ื—ื•ืช ืฉื•ื ื™ื: ื”ืœืงื•ื— ืฉืœ ืคืจื•ื™ืงื˜ ื”ืคื™ืชื•ื— ื”ื•ื ื”ื‘ื•ืก ืฉืœืš ื‘ืขื‘ื•ื“ื”; ื”ืœืงื•ื— ืฉืœ ื”ืœื™ืžื•ื“ ื”ื•ื ืืชื” ืขืฆืžืš. ืฉื ื™ ืคืจื•ื™ืงื˜ื™ื. ืฉื ื™ ืœืงื•ื—ื•ืช. ืฉื ื™ ืขื•ืœืžื•ืช.

ToCode
1 418
ื”ืจื‘ื” ื™ื•ืชืจ ืžืฉื ื™ื™ื ื“ืŸ ืื‘ืจืžื•ื‘ ื›ื•ืชื‘ ืขืœ ืฉื ื™ ืจื™ืืงื˜ื™ื, ื”ืจื™ืืงื˜ ืฉืจืฅ ืขืœ ื”ืฉืจืช ื•ื”ืจื™ืืงื˜ ืฉืจืฅ ื‘ื“ืคื“ืคืŸ, ื•ืขืœ ื”ืชืคืงื™ื“ื™ื ื”ืฉื•ื ื™ื ืฉืœ ื›ืœ ืื—ื“ ืžื”ื. ืื ื™ ื—ื•ืฉื‘ ืฉื”ื•ื ืขื•ืฉื” ืœืขืฆืžื• ื”ื ื—ื”. ื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ืžืฉื ื™ื™ื: 1. ื”ืื ืืช ืกืคืจื™ื™ืช ืชืฆื•ื’ื” ืœืฆื“ ืœืงื•ื—, ืฉื ื•ืขื“ื” ืœืขื–ื•ืจ ืœืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื ืœืชื—ื–ืง ืืชืจื™ื ืขื ื™ื•ืชืจ ืžื“ื™ ืงื•ื“ JavaScript? 2. ื”ืื ืืช ืกืคืจื™ื™ืช Full Stack ืฉื ื•ืขื“ื” ืœืขื–ื•ืจ ืœืžืคืชื—ื™ื ืœื”ืขืœื•ืช ืžื”ืจ ื™ื•ืชืจ ืคืจื•ื™ืงื˜ื™ื ืœืื•ื•ื™ืจ? 3. ื”ืื ืืช ืžื ืกื” ืœืขื–ื•ืจ ืœื™ ืœื›ืชื•ื‘ ืืชืจื™ื ืฉืขื•ื‘ื“ื™ื ืžื”ืจ ื™ื•ืชืจ (ื”ื”ื‘ื˜ื—ื” ืฉืœ Single Page Apps), ืื• ืžื ืกื” ืœื’ืจื•ื ืœื™ ืœื›ืชื•ื‘ ืงื•ื“ "ื ื›ื•ืŸ" ื’ื ืื ื–ื” ืขื•ืœื” ื‘ื–ืžื ื™ ื˜ืขื™ื ื” ื•ืคื’ื™ืขื” ื‘ื‘ื™ืฆื•ืขื™ื? 4. ื”ืื ืืช ืžืขื•ื“ื“ืช ืฉื™ืชื•ืฃ ืงื•ื“ ื‘ื™ืŸ ืคืจื•ื™ืงื˜ื™ื ืื• ื—ื“ืฉื ื•ืช ื•ืฉื™ื ื•ื™ (ืฉื™ื‘ื•ืื• ืชืžื™ื“ ืขืœ ื—ืฉื‘ื•ืŸ ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืงื•ื“ ื™ืฉืŸ ืฉืžืฆืืชื™ ื‘ืจืฉืช) ? 5. ื”ืื ืืช ืกืคืจื™ื™ืช ืฆื“ ืœืงื•ื— ืฉืื ื™ ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืœื›ืœ ืคืจื•ื™ืงื˜ ืื• ืกืคืจื™ื™ืช Full Stack ืฉื“ื•ืจืฉืช ืงื•ื“ ืžื™ื•ื—ื“ ื‘ืฆื“ ื”ืฉืจืช ืขืœ ืžื ืช ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ืžื™ื˜ื‘ื™ืช? ืขืžื•ื“ ื”ื‘ื™ืช ืฉืœ ื”ืชื™ืขื•ื“ ืฉืœ ืจื™ืืงื˜ ื›ื•ืœืœ ืืช ื”ื”ื‘ื˜ื—ื”: > Whether you work on your own or with thousands of other developers, using React feels the same. It is designed to let you seamlessly combine components written by independent people, teams, and organizations. ื•ืื ื™ ืจื•ืฆื” ืœืงื—ืช ืื•ืชื ื‘ืจืฆื™ื ื•ืช, ืื‘ืœ ื™ื•ื“ืข ืฉืคืจื•ื™ืงื˜ื™ ืจื™ืืงื˜ ืฉืื ื™ ืจืื™ืชื™ ืœื "ื”ืจื’ื™ืฉื• ืื•ืชื• ื“ื‘ืจ". ืคืจื•ื™ืงื˜ ืฆื“-ืœืงื•ื— ืฉืžืฉืชืžืฉ ื‘ Redux ื•ืžื—ื–ื™ืง ืืช ื”ืœื•ื’ื™ืงื” ื•ื”ืคืขื•ืœื•ืช ืžื—ื•ืฅ ืœืจื™ืืงื˜, ื™ืจื’ื™ืฉ ืžืื•ื“ ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืขื‘ื™ืจ ืืช ื›ืœ ืขื•ืžืก ื”ืขื‘ื•ื“ื” ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื•ื™ืฉืชืžืฉ ื‘ react-query ื›ื“ื™ ืœืžืฉื•ืš ืžื™ื“ืข ืžื”ืฉืจืช ื•ืœืฉืžื•ืจ ืื•ืชื• ื‘ืงื•ื ื˜ืงืกื˜, ื•ืฉื ื™ ืืœื” ื™ืจื’ื™ืฉื• ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Zustand, Valtio ืื• Jotai. ืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Shadcn ื• Tailwind ื™ืจื’ื™ืฉ ืžืื•ื“ ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Styled Components. ื•ืขื•ื“ ืœื ื“ื™ื‘ืจื ื• ืขืœ next ืœืขื•ืžืช remix ืœืขื•ืžืช redwood ืœืขื•ืžืช tanstack start. ืขื›ืฉื™ื• ืฉืงื•ืจืก Vue ืžืื—ื•ืจื™ื™ ื”ืชื—ืœืชื™ ืœืืจื’ืŸ ืžื—ื“ืฉ ืืช ืงื•ืจืก ืจื™ืืงื˜. ื”ืืงื•ืกื™ืกื˜ื ืฉืœ ืจื™ืืงื˜ ืชืžื™ื“ ื”ื™ื” ืžื‘ื•ืœื’ืŸ ื•ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช ื–ื” ืจืง ืžื—ืžื™ืจ. ื–ื” ืœื ืžื” ืฉื™ื”ืจื•ื’ ืืช ืจื™ืืงื˜, ืื‘ืœ ื–ื” ื›ืŸ ืžืฉื”ื• ืฉืฆืจื™ืš ืœื”ื™ื•ืช ืžืื•ื“ ืžื•ื“ืขื™ื ืืœื™ื• ื›ืฉืœื•ืžื“ื™ื ืจื™ืืงื˜ ืื• ื›ืฉื ื›ื ืกื™ื ืœืขื‘ื•ื“ ืขืœ ืคืจื•ื™ืงื˜.

ToCode
1 418
ื”ืจื‘ื” ื™ื•ืชืจ ืžืฉื ื™ื™ื ื“ืŸ ืื‘ืจืžื•ื‘ ื›ื•ืชื‘ ืขืœ ืฉื ื™ ืจื™ืืงื˜ื™ื, ื”ืจื™ืืงื˜ ืฉืจืฅ ืขืœ ื”ืฉืจืช ื•ื”ืจื™ืืงื˜ ืฉืจืฅ ื‘ื“ืคื“ืคืŸ, ื•ืขืœ ื”ืชืคืงื™ื“ื™ื ื”ืฉื•ื ื™ื ืฉืœ ื›ืœ ืื—ื“ ืžื”ื. ืื ื™ ื—ื•ืฉื‘ ืฉื”ื•ื ืขื•ืฉื” ืœืขืฆืžื• ื”ื ื—ื”. ื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ืžืฉื ื™ื™ื: 1. ื”ืื ืืช ืกืคืจื™ื™ืช ืชืฆื•ื’ื” ืœืฆื“ ืœืงื•ื—, ืฉื ื•ืขื“ื” ืœืขื–ื•ืจ ืœืฆื•ื•ืชื™ื ื’ื“ื•ืœื™ื ืœืชื—ื–ืง ืืชืจื™ื ืขื ื™ื•ืชืจ ืžื“ื™ ืงื•ื“ JavaScript? 2. ื”ืื ืืช ืกืคืจื™ื™ืช Full Stack ืฉื ื•ืขื“ื” ืœืขื–ื•ืจ ืœืžืคืชื—ื™ื ืœื”ืขืœื•ืช ืžื”ืจ ื™ื•ืชืจ ืคืจื•ื™ืงื˜ื™ื ืœืื•ื•ื™ืจ? 3. ื”ืื ืืช ืžื ืกื” ืœืขื–ื•ืจ ืœื™ ืœื›ืชื•ื‘ ืืชืจื™ื ืฉืขื•ื‘ื“ื™ื ืžื”ืจ ื™ื•ืชืจ (ื”ื”ื‘ื˜ื—ื” ืฉืœ Single Page Apps), ืื• ืžื ืกื” ืœื’ืจื•ื ืœื™ ืœื›ืชื•ื‘ ืงื•ื“ "ื ื›ื•ืŸ" ื’ื ืื ื–ื” ืขื•ืœื” ื‘ื–ืžื ื™ ื˜ืขื™ื ื” ื•ืคื’ื™ืขื” ื‘ื‘ื™ืฆื•ืขื™ื? 4. ื”ืื ืืช ืžืขื•ื“ื“ืช ืฉื™ืชื•ืฃ ืงื•ื“ ื‘ื™ืŸ ืคืจื•ื™ืงื˜ื™ื ืื• ื—ื“ืฉื ื•ืช ื•ืฉื™ื ื•ื™ (ืฉื™ื‘ื•ืื• ืชืžื™ื“ ืขืœ ื—ืฉื‘ื•ืŸ ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืงื•ื“ ื™ืฉืŸ ืฉืžืฆืืชื™ ื‘ืจืฉืช) ? 5. ื”ืื ืืช ืกืคืจื™ื™ืช ืฆื“ ืœืงื•ื— ืฉืื ื™ ื™ื›ื•ืœ ืœื”ื›ื ื™ืก ืœื›ืœ ืคืจื•ื™ืงื˜ ืื• ืกืคืจื™ื™ืช Full Stack ืฉื“ื•ืจืฉืช ืงื•ื“ ืžื™ื•ื—ื“ ื‘ืฆื“ ื”ืฉืจืช ืขืœ ืžื ืช ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ืžื™ื˜ื‘ื™ืช? ืขืžื•ื“ ื”ื‘ื™ืช ืฉืœ ื”ืชื™ืขื•ื“ ืฉืœ ืจื™ืืงื˜ ื›ื•ืœืœ ืืช ื”ื”ื‘ื˜ื—ื”: > Whether you work on your own or with thousands of other developers, using React feels the same. It is designed to let you seamlessly combine components written by independent people, teams, and organizations. ื•ืื ื™ ืจื•ืฆื” ืœืงื—ืช ืื•ืชื ื‘ืจืฆื™ื ื•ืช, ืื‘ืœ ื™ื•ื“ืข ืฉืคืจื•ื™ืงื˜ื™ ืจื™ืืงื˜ ืฉืื ื™ ืจืื™ืชื™ ืœื "ื”ืจื’ื™ืฉื• ืื•ืชื• ื“ื‘ืจ". ืคืจื•ื™ืงื˜ ืฆื“-ืœืงื•ื— ืฉืžืฉืชืžืฉ ื‘ Redux ื•ืžื—ื–ื™ืง ืืช ื”ืœื•ื’ื™ืงื” ื•ื”ืคืขื•ืœื•ืช ืžื—ื•ืฅ ืœืจื™ืืงื˜, ื™ืจื’ื™ืฉ ืžืื•ื“ ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืขื‘ื™ืจ ืืช ื›ืœ ืขื•ืžืก ื”ืขื‘ื•ื“ื” ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื•ื™ืฉืชืžืฉ ื‘ react-query ื›ื“ื™ ืœืžืฉื•ืš ืžื™ื“ืข ืžื”ืฉืจืช ื•ืœืฉืžื•ืจ ืื•ืชื• ื‘ืงื•ื ื˜ืงืกื˜, ื•ืฉื ื™ ืืœื” ื™ืจื’ื™ืฉื• ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Zustand, Valtio ืื• Jotai. ืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Shadcn ื• Tailwind ื™ืจื’ื™ืฉ ืžืื•ื“ ืฉื•ื ื” ืžืคืจื•ื™ืงื˜ ืฉืžืฉืชืžืฉ ื‘ Styled Components. ื•ืขื•ื“ ืœื ื“ื™ื‘ืจื ื• ืขืœ next ืœืขื•ืžืช remix ืœืขื•ืžืช redwood ืœืขื•ืžืช tanstack start. ืขื›ืฉื™ื• ืฉืงื•ืจืก Vue ืžืื—ื•ืจื™ื™ ื”ืชื—ืœืชื™ ืœืืจื’ืŸ ืžื—ื“ืฉ ืืช ืงื•ืจืก ืจื™ืืงื˜. ื”ืืงื•ืกื™ืกื˜ื ืฉืœ ืจื™ืืงื˜ ืชืžื™ื“ ื”ื™ื” ืžื‘ื•ืœื’ืŸ ื•ื‘ืฉื ื™ื ื”ืื—ืจื•ื ื•ืช ื–ื” ืจืง ืžื—ืžื™ืจ. ื–ื” ืœื ืžื” ืฉื™ื”ืจื•ื’ ืืช ืจื™ืืงื˜, ืื‘ืœ ื–ื” ื›ืŸ ืžืฉื”ื• ืฉืฆืจื™ืš ืœื”ื™ื•ืช ืžืื•ื“ ืžื•ื“ืขื™ื ืืœื™ื• ื›ืฉืœื•ืžื“ื™ื ืจื™ืืงื˜ ืื• ื›ืฉื ื›ื ืกื™ื ืœืขื‘ื•ื“ ืขืœ ืคืจื•ื™ืงื˜.

ToCode
1 418
ื”ื™ื•ื ืœืžื“ืชื™: ืชื•ื•ื™ื ืžืฆื—ื™ืงื™ื ื‘ืžืฉืชื ื™ ืกื‘ื™ื‘ื” ืื ื—ื ื• ื™ื•ื“ืขื™ื ืœื”ื’ื“ื™ืจ ืงื•ื‘ืฅ .env ืขื ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ืฉืœ ื”ืคืจื•ื™ืงื˜ ื‘ืคื•ืจืžื˜ ื”ื–ื”:
API_KEY=abcdefg
ื•ืื—ืจื™ ื–ื” ืœืงืจื•ื ืืช ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื” ื‘ืืžืฆืขื•ืช:
console.log(process.env.API_KEY);
ื”ืกื™ืคื•ืจ ื ื”ื™ื” ืžืขื ื™ื™ืŸ ื›ืฉืื ื—ื ื• ืžื•ืกื™ืคื™ื ืชื•ื•ื™ื ืžื™ื•ื—ื“ื™ื ืœืขืจื›ื™ื ืฉืœ ืžืฉืชื ื™ ื”ืกื‘ื™ื‘ื”, ืœื“ื•ื’ืžื”:
API_KEY=abcd$e$fgh#abc123
ื ื™ืกื™ื•ืŸ ืจื’ื™ืœ ื‘ next.js ืœื˜ืขื•ืŸ ืงื•ื‘ืฅ env ื›ื–ื” ื™ืฉืื™ืจ ืืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ื‘ืœื™ ื”ื—ืœืง ืฉืื—ืจื™ ื”ืกื•ืœืžื™ืช. ื•ืืœ ืชื“ืื’ื• ืฉื•ื ื”ื•ื“ืขืช ืฉื’ื™ืื” ืœื ืชื•ืคื™ืข ืขืœ ื”ืžืกืš. ืืคืฉืจ (ืจืฆื•ื™) ืœื”ืงื™ืฃ ืืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” ื‘ืžืจื›ืื•ืช:
API_KEY="abcd$e$fgh#abc123"
ืื‘ืœ ื–ื” ืœื ืžืกืคื™ืง. ืขื›ืฉื™ื• ืื ื—ื ื• ืžืื‘ื“ื™ื ืืช ื”ืื•ืชื™ื•ืช ืฉืื—ืจื™ ื”ื“ื•ืœืจื™ื ื›ื™ next ื—ื•ืฉื‘ ืฉืืœื” ืžืฉืชื ื™ื. ืขืœื™ื”ื ื ืฆื˜ืจืš ืœืฉืžื•ืจ ื‘ื ืคืจื“ ืขื ืœื•ื›ืกืŸ ื”ืคื•ืš:
API_KEY="abcd\$e\$fgh#abc123"
ืฉื™ืžื• ืœื‘ ืฉืฉื™ืžื•ืฉ ื‘ื’ืจืฉ ื‘ื•ื“ื“ ืœื ื™ืขื–ื•ืจ ื›ืืŸ, ืืœื ืจืง ื™ื–ื™ืง. ื‘ next ื”ื’ืจืฉ ื”ื‘ื•ื“ื“ ืžืคื•ืขื ื— ื›ืžื• ื’ืจืฉื™ื™ื ื•ื”ื›ืœ ืขื“ื™ื™ืŸ ืขื•ื‘ื“, ืื‘ืœ ืื ืชื ืกื• ืœื˜ืขื•ืŸ ืืช ืงื•ื‘ืฅ ื” .env ืžืชื•ืš bash ื”ื’ืจืฉ ื”ื‘ื•ื“ื“ ื™ื’ืจื•ื ืœืœื•ื›ืกืŸ ื”ื”ืคื•ืš ืœื”ื™ื›ื ืก ื‘ืขืฆืžื• ืœืขืจืš, ื›ืœื•ืžืจ ื”ืงื•ื“ ื”ื–ื” ื‘ bash:
source .env
ืขื•ื‘ื“ ืขื ืžืจื›ืื•ืช ื• Backslash ื›ืžื• ืฉื›ืชื‘ืชื™, ืื‘ืœ ืœื ืขื•ื‘ื“ ืื ื‘ืžืงื•ื ืžืจื›ืื•ืช ื™ื”ื™ื” ื’ืจืฉ ื‘ื•ื“ื“.