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
async function main() {
  const c = new ReactiveClock();
  console.log(c.minutes);
  console.log(c.minutes);
  console.log(c.minutes);
}

main();
ื™ื“ืคื™ืก ืฉืœื•ืฉ ืคืขืžื™ื ืืช ื”ื”ื•ื“ืขื”:
Calculate minutes 
ืื‘ืœ ืื ื ื•ืกื™ืฃ ืžืื–ื™ืŸ ืœืžืฉืชื ื” ืื– ืžื•ื‘ืืงืก ืขื•ื‘ืจ ืœืžืฆื‘ ืจื™ืืงื˜ื™ื‘ื™ ื•ืฉื•ืžืจ ืืช ื”ืขืจืš ื‘ื™ืŸ ืงืจื™ืื•ืช, ืœื›ืŸ ื”ืงื•ื“ ื”ื‘ื ื™ื“ืคื™ืก ืืช ื”ื”ื•ื“ืขื” ืจืง ืคืขื ืื—ืช, ื•ืื—ืจื™ ื–ื” ื›ืœ ืฉื ื™ื” ืฉื•ื‘ ื‘ื’ืœืœ ื” autorun:
async function main() {
  const c = new ReactiveClock();
  autorun(() => {
    console.log(c.minutes);
  });

  console.log(c.minutes);
  console.log(c.minutes);
  console.log(c.minutes);
}

main();
ืžืขื ื™ื™ืŸ ืœืฉื™ื ืœื‘ ืฉื”ื”ื“ืคืกื” ื‘ืชื•ืš ื” getter ืชื•ืคืขืœ ื›ืœ ืฉื ื™ื”, ืื‘ืœ ื”ื”ื“ืคืกื” ื‘ืชื•ืš ื” autorun ืฉืœ ืžืกืคืจ ื”ื“ืงื•ืช ืฉืขื‘ืจื• ืชื•ืคืขืœ ืจืง ืคืขื ื‘ื“ืงื”. ## ืžื™ื“ืข ืจื™ืืงื˜ื™ื‘ื™ ื•ืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื”ื‘ื—ื™ืจื” ืœืฉืžื•ืจ ืžื™ื“ืข ื’ืœื•ื‘ืืœื™ ืฉืœ ื”ื™ื™ืฉื•ื ื‘ืชื•ืš ืžื‘ื ื” ืจื™ืืงื˜ื™ื‘ื™ ืฉืœ ืžื•ื‘ืืงืก ืžืืคืฉืจืช ืœื ื• ืœื—ื‘ืจ ื‘ืงืœื•ืช ืืช ื”ืžื™ื“ืข ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืจื™ืืงื˜ ื‘ UI ื‘ืžืงื•ื ืกืชื ืœื”ื“ืคื™ืก ืื•ืชื• ื‘ console.log. ื™ืฉ ืืคื™ืœื• ืžื•ื“ื•ืœ ืžื•ื‘ื ื” ื‘ืžื•ื‘ืืงืก ื‘ืฉื mobx-react-lite ืฉื“ื•ืื’ ืœื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ื‘ืฉื‘ื™ืœื ื•. ื‘ื•ืื• ื ืจืื” ืืช ื–ื” ื‘ืคืขื•ืœื” ืขื ืฉืชื™ ื“ื•ื’ืžืื•ืช - ื”ืฉืขื•ืŸ ืฉื›ืชื‘ื ื• ื•ื“ื•ื’ืžืช ืžื•ื ื” ืœื—ื™ืฆื•ืช ืจื™ืืงื˜ื™ื‘ื™. ื ืชื—ื™ืœ ืขื ื”ืฉืขื•ืŸ - ืื ื™ ืœื•ืงื— ืืช ืื•ืชื• ืงื•ื“ ืฉื›ื‘ืจ ื›ืชื‘ืชื™ ื•ืžื•ืกื™ืฃ ืœื• ืฉื•ืจืช default export ืœืฉืขื•ืŸ ื—ื“ืฉ ืฉืื ื™ ื™ื•ืฆืจ, ื•ืฉื•ืžืจ ืืช ื”ื›ืœ ื‘ืงื•ื‘ืฅ ื‘ืฉื ReactiveClock.js. ื–ื” ื”ืงื•ื“:
import { makeObservable, observable, computed, action } from "mobx";

class ReactiveClock {
  constructor() {
    this.ticks = 0;
    setInterval(() => {
      this.tick();
    }, 1000);
    makeObservable(this, {
      ticks: observable,
      minutes: computed,
      tick: action
    });
  }

  tick() {
    this.ticks++;
  }

  get minutes() {
    console.log(`Calculate minutes`);
    return Math.floor(this.ticks / 60);
  }
}

const clock = new ReactiveClock();
export default clock;
ืขื›ืฉื™ื• ืื ื™ ืคื•ืชื— ืงื•ื‘ืฅ ืจื™ืืงื˜ ื—ื“ืฉ ื•ื›ื•ืชื‘ ื‘ื• ืืช ื”ืงื•ื“ ื”ื‘ื:
import "./styles.css";
import { observer } from "mobx-react-lite";
import clock from "./mobx/ReactiveClock";

export default observer(function App() {
  return (
    <div className="App">
      <h1>Hello CodeSandbox</h1>
      <p>Ticks: {clock.ticks}</p>
      <p>Minutes: {clock.minutes}</p>
    </div>
  );
});
ื•ื–ื” ื”ื›ืœ. ื‘ืฆื•ืจื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ื–ื›ื•ืช ื”ืงืจื™ืื” ืœืคื•ื ืงืฆื™ื” observer ื‘ืงื•ื“ ืจื™ืืงื˜, ื”ืงื•ืžืคื•ื ื ื˜ื” ืฉื™ืฆืจืชื™ ืžืื–ื™ื ื” ืœืฉื™ื ื•ื™ื™ื ื‘ื›ืœ ื”ืžืฉืชื ื™ื ื”ืจื™ืืงื˜ื™ื‘ื™ื™ื ืฉื”ื™ื ื ื™ื’ืฉืช ืืœื™ื”ื. ื›ืœ ืคืขื ืฉื™ืฉ ืฉื™ื ื•ื™ ื‘ืฆื•ืจื” ืื•ื˜ื•ืžื˜ื™ืช ื”ืงื•ืžืคื•ื ื ื˜ื” ืชื—ื•ืฉื‘ ืžื—ื“ืฉ. ืืชื ื™ื›ื•ืœื™ื ืœืจืื•ืช ืืช ื”ืงื•ื“ ื‘ืคืขื•ืœื” ื‘ืงื•ื“ืกื ื“ื‘ื•ืงืก ื”ื‘ื: <iframe src="https://codesandbox.io/embed/currying-sun-h8wguw?fontsize=14&hidenavigation=1&theme=dark" style="width:100%; height:500px; border:0; border-radius: 4px; overflow:hidden;" title="currying-sun-h8wguw" allow="accelerometer; ambient-light-sensor; camera; encrypted-media; geolocation; gyroscope; hid; microphone; midi; payment; usb; vr; xr-spatial-tracking" sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts" ></iframe> ืื• ื‘ืงื™ืฉื•ืจ: https://codesandbox.io/s/currying-sun-h8wguw?file=/src/App.js ืžื ื’ื ื•ืŸ ื›ื–ื” ืฉืœ ืงื•ืžืคื•ื ื ื˜ื” ืฉืžืฉืชืžืฉืช ื‘ืžื™ื“ืข ื’ืœื•ื‘ืืœื™ ื”ื•ื ื“ืจืš ืงืœื” ืœืกื ื›ืจืŸ ืžื™ื“ืข ื‘ื™ืŸ ืžืกืคืจ ืงื•ืžืคื•ื ื ื˜ื•ืช. ื ื ืกื” ื“ื•ื’ืžื” ื ื•ืกืคืช ื”ืคืขื ืขื ืžื—ืœืงื” ืฉืœ ืžื•ื ื” ืœื—ื™ืฆื•ืช. ื ืชื—ื™ืœ ืขื ื”ืžื•ื‘ืืงืก ื•ื ื›ืชื•ื‘ ืืช ื”ืžื—ืœืงื” ื”ื‘ืื”:
import { makeObservable, observable, computed, action } from "mobx";

class Counter {
  constructor() {
    this.value = 0;
    makeObservable(this, {
      value: observable,
      click: action.bound,
    });
  }

  click() {
    this.value++;
  }
}

const counter = new Counter();
export default counter;
ื” Counter ื”ื•ื ืžืื•ื“ ื“ื•ืžื” ืœืฉืขื•ืŸ ืื‘ืœ ื‘ืžืงื•ื ืœืขื“ื›ืŸ ืืช ื”ืขืจืš ืื•ื˜ื•ืžื˜ื™ืช ื”ื•ื ืžืืคืฉืจ ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื—ื™ืฆื•ื ื™ื•ืช ืœื”ืคืขื™ืœ ืืช count. ื‘ืฉื‘ื™ืœ ืœืขืฉื•ืช ืืช ื–ื” ืฉื™ื ื™ืชื™ ืืช ื”ื”ื’ื“ืจื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืฉืžืฉื ื” ืืช ื”ืขืจืš ื‘ืื•ื‘ื™ืงื˜ ื”ืชื™ืื•ืจ ืœ:
click: action.bound,

ToCode
1 419
ื”ืคื•ื ืงืฆื™ื” autorun ืฉืœ ืžื•ื‘ืืงืก ื”ื™ื ืื—ืช ื”ื“ืจื›ื™ื ืœืคืชื•ืจ ืืช ื”ืืชื’ืจ ื”ืจืืฉื•ืŸ. ื”ื™ื ืžืงื‘ืœืช ืคืฉื•ื˜ ืคื•ื ืงืฆื™ื” ืฉืžืฉืชืžืฉืช ื‘ืžืฉืชื ื™ื ืจื™ืืงื˜ื™ื‘ื™ื, ืžืคืขื™ืœื” ืื•ืชื”, ื•ืื– ื›ืœ ืคืขื ืฉืื—ื“ ื”ืžืฉืชื ื™ื ื”ืจื™ืืงื˜ื™ื‘ื™ื™ื ื™ืฉืชื ื” ื”ืคื•ื ืงืฆื™ื” ืชื•ืคืขืœ ืžื—ื“ืฉ. ื‘ืžืงืจื” ืฉืœ ื”ืฉืขื•ืŸ ืฉืœื ื• ื ื•ื›ืœ ืœื›ืชื•ื‘:
const c = new ReactiveClock();

autorun(() => {
    console.log(`Tick: ${c.ticks}`);
});
ืืช ื”ืงื•ื“ ื”ื–ื” ืืคืฉืจ ืœื›ืชื•ื‘ ื‘ื›ืœ ืžืงื•ื ื‘ืชื•ื›ื ื™ืช ื•ืื™ืŸ ื‘ืขื™ื” ืœื”ืคืจื™ื“ ื‘ื™ืŸ ื”ื—ืœืง ืฉื™ื•ืฆืจ ืืช ื”ืฉืขื•ืŸ ืœื—ืœืง ืฉืœ ื” autorun. ื”ื•ื ื™ื’ืจื•ื ืœื–ื” ืฉื›ืœ ืฉื ื™ื” ืชื•ื“ืคืก ืœืงื•ื ืกื•ืœ ื”ืฉื•ืจื”:
Tick: 0
ื•ื”ืžืกืคืจ ื™ืจื•ืฅ ืœืคื™ ืชืงืชื•ืงื™ ื”ืฉืขื•ืŸ. ื›ืืŸ ืฆืจื™ืš ืœืฉื™ื ืœื‘ ืฉื”ืžืขืงื‘ ืื—ืจ ื”ืžื™ื“ืข ื”ืจื™ืืงื˜ื™ื‘ื™ ืงื•ืจื” ืจืง ื‘ื’ืœืœ ืฉืื ื—ื ื• ื ื™ื’ืฉื™ื ืœืžืฉืชื ื™ื. ื”ืงื•ื“ ื”ื‘ื, ื’ื ืื ืงืฆืช ืžื•ื–ืจ ื‘ื”ืงืฉืจ ื”ื–ื”, ืžืžื—ื™ืฉ ืืช ืื—ืช ื”ื˜ืขื•ื™ื•ืช ื”ื ืคื•ืฆื•ืช ืฉืœื ื• ื‘ืขื‘ื•ื“ื” ืžื”ืกื•ื’ ื”ื–ื”:
const c = new ReactiveClock();
let isFirst = true;

autorun(() => {
  if (isFirst) {
    console.log(`Setting isFirst to false`);
    isFirst = false;
  } else {
    console.log(`Not a first time - print the value`);
    console.log(`Tick: ${c.ticks}`);
  }
});
ื”ืคืขื ื”ื”ื“ืคืกื” ื”ื™ื—ื™ื“ื” ืฉืื ื™ ืžืงื‘ืœ ื”ื™ื:
Setting isFirst to false
ื•ืื—ืจื™ ื–ื” ื›ืœื•ื - ืœืžืจื•ืช ืฉื”ืฉืขื•ืŸ ืžืžืฉื™ืš ืœืชืงืชืง. ื”ื‘ืขื™ื” ื›ืืŸ ื”ื™ื ืฉื‘ื”ืคืขืœื” ื”ืจืืฉื•ื ื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืœื ื ื’ืขืชื™ ื‘ืžืฉืชื ื” ticks, ื•ืœื›ืŸ ื” autorun ืœื ื™ื“ืขื” ืœืงืฉื•ืจ ืืช ื”ืคื•ื ืงืฆื™ื” ืœืฉื™ื ื•ื™ื™ื ื‘ืžืฉืชื ื” ื–ื”. ื”ืงืฉืจ ื‘ื™ืŸ ืฉื ื™ ื”ื“ื‘ืจื™ื ืœื ื ื•ืฆืจ. ืžื•ื‘ืืงืก ืžืกืคืง ืคื•ื ืงืฆื™ื™ืช ืขื–ืจ ื ื•ืกืคืช ืœืžืฆื‘ื™ื ื›ืืœื” ื‘ืฉื reaction. ืคื•ื ืงืฆื™ื” ื–ื• ื™ื•ื“ืขืช ืœืงื‘ืœ ื‘ืชื•ืจ ืคืจืžื˜ืจ ืจืืฉื•ืŸ "ืคื•ื ืงืฆื™ื™ืช ืžื™ื“ืข", ืฉื”ื™ื ื‘ืขืฆื ื”ืคื•ื ืงืฆื™ื” ืฉื™ื•ืฆืจืช ืืช ื”ืงืฉืจื™ื, ื•ื”ืคืจืžื˜ืจ ื”ืฉื ื™, "ืคื•ื ืงืฆื™ื™ืช ืคืขื•ืœื”" ื”ื™ื ื–ืืช ืฉื ืงืจืืช ื›ืœ ืคืขื ืฉื™ืฉ ืฉื™ื ื•ื™ ื‘ืžื™ื“ืข. ื”ืงื•ื“ ื”ืžืชื•ืงืŸ ื ืจืื” ื›ืš:
const c = new ReactiveClock();
let isFirst = true;

reaction(
  () => [c.ticks],
  (value, previousValue, reaction) => {
  if (isFirst) {
    console.log(`Setting isFirst to false`);
    isFirst = false;
  } else {
    console.log(`Not a first time - print the value`);
    console.log(`Tick: ${c.ticks}`);
  }
});
ื•ื”ื•ื ื›ื‘ืจ ืขื•ื‘ื“ ื›ืžื• ืฉืฆืจื™ืš: ืคื•ื ืงืฆื™ื™ืช ื”ืžื™ื“ืข ืžื—ื–ื™ืจื” ืžืขืจืš ืขื ืื™ื‘ืจ ืื—ื“, ื”ืขืจืš ืฉืœ c.ticks, ื•ืคื•ื ืงืฆื™ื™ืช ื”ืคืขื•ืœื” ืชื™ืงืจื ื›ืœ ืคืขื ืฉืžืฉืชื ื™ื ืฉื ื™ื’ืฉื• ืืœื™ื”ื ื‘ืคื•ื ืงืฆื™ื™ืช ื”ืžื™ื“ืข ืžืฉื ื™ื ืืช ืขืจื›ื. ื”ืืชื’ืจ ื”ืฉื ื™ ืฉืœื ื• ื”ื™ื” ืœื”ื’ื“ื™ืจ ืžืฉืชื ื” ืฉืขืจื›ื• ืžื’ื™ื‘ ืื•ื˜ื•ืžื˜ื™ืช ืœืฉื™ื ื•ื™ื™ื ื‘ ticks, ื•ื’ื ืืช ื–ื” ืืคืฉืจ ืœื™ืฆื•ืจ ื‘ืฆื•ืจื” ืจื™ืืงื˜ื™ื‘ื™ืช. ื ื ื™ื— ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœืกืคื•ืจ ื“ืงื•ืช ืฉืขื‘ืจื•, ื•ืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉ ticks ืžืชืขื“ื›ืŸ ื›ืœ ืฉื ื™ื” - ืื– ื›ืœ 60 ืฉื™ื ื•ื™ื™ื ืฉืœื• ื–ื” ื“ืงื”. ื‘ื’ื™ืฉื” ื ืื™ื‘ื™ืช (ืฉืœื ืชืขื‘ื•ื“) ืื ื™ ื™ื›ื•ืœ ืœื ืกื•ืช ืœื›ืชื•ื‘ ืงื•ื“ ื›ื–ื”:
// NOT WORKING CODE

async function main() {
  const c = new ReactiveClock();
  const minutes = c.ticks / 60;
  await new Promise((r) => setTimeout(r, 60000));
  console.log(minutes);
}

main();
ืื—ืจื™ ื“ืงื” ืžื•ื“ืคืก ืขื“ื™ื™ืŸ ื”ืขืจืš 0, ื‘ื’ืœืœ ืฉื”ืฉื™ื ื•ื™ ื‘ ticks ืœื ื ื›ืชื‘ ื”ื—ื•ืฆื” ืœ minutes. ื”ืขืจืš ืฉืœ minutes ื—ื•ืฉื‘ ืคืขื ืื—ืช ื‘ืฉื•ืจื” ื”ืฉื ื™ื” ืฉืœ ื”ืคื•ื ืงืฆื™ื” ื•ื–ื”ื•. ืžื•ื‘ืืงืก ืžืืคืฉืจ ืœื™ ืœื”ืคื•ืš ืืช ื”ืงืฉืจ ื”ื–ื” ืœืจื™ืืงื˜ื™ื‘ื™, ื•ืœื’ืจื•ื ืœื›ืš ืฉื›ืœ ืฉื™ื ื•ื™ ื‘ ticks ืื•ื˜ื•ืžื˜ื™ืช ื™ืขื“ื›ืŸ ืืช minutes ื‘ืขื–ืจืช ื”ืคื•ื ืงืฆื™ื” computed. ื”ืงื•ื“ ื”ืžืชื•ืงืŸ ื ืจืื” ื›ืš:
async function main() {
  const c = new ReactiveClock();
  const minutes = computed(() => c.ticks / 60);
  await new Promise((r) => setTimeout(r, 60000));
  console.log(minutes.get());
}

main();
ื”ืชื™ืงื•ืŸ ืžื•ืจื›ื‘ ืžืฉื ื™ ืฉื™ื ื•ื™ื™ื: 1. ื”ืžืฉืชื ื” minutes ืžืงื‘ืœ ืืช ืขืจืš ื”ื”ื—ื–ืจ ืฉืœ ืคื•ื ืงืฆื™ื™ืช computed, ื•ื–ื” ืžื” ืฉื’ื•ืจื ืœืขืจื›ื• ืœื”ืชืขื“ื›ืŸ ื›ืœ ืคืขื ืฉืื—ื“ ื”ืžืฉืชื ื™ื ื”ืจื™ืืงื˜ื™ื‘ื™ื™ื ื‘ืชื•ืš ื”ืคื•ื ืงืฆื™ื” ืฉื”ืขื‘ืจื ื• ืœ computed ืžืฉืชื ื”. 2. ืขืจืš ื”ื”ื—ื–ืจ ืฉืœ computed ื”ื•ื ืื•ื‘ื™ืงื˜ ื•ื‘ืฉื‘ื™ืœ ืœืงื‘ืœ ืืช ืขืจื›ื• ืื ื™ ืžืคืขื™ืœ ืืช ื”ืžืชื•ื“ื” get ืฉืœื•. ืžื•ื‘ืืงืก ืžืกืคืง ืงื™ืฆื•ืจ ื“ืจืš ื ื•ืกืฃ ืœืžื™ ืฉืจื•ืฆื” ืœื”ื›ื ื™ืก ืืช ื”ืขืจืš ื”ืžื—ื•ืฉื‘ ืœืชื•ืš ื”ืžื—ืœืงื”, ื•ืžืืคืฉืจ ืœื ื• ืœื›ืชื•ื‘ ืงื•ื“ ื›ื–ื” ื‘ืชื•ืจ ืžื—ืœืงืช ื”ืฉืขื•ืŸ:
class ReactiveClock {
  constructor() {
    this.ticks = 0;
    setInterval(() => {
      this.tick();
    }, 1000);
    makeObservable(this, {
      ticks: observable,
      minutes: computed,
      tick: action
    });
  }

  tick() {
    this.ticks++;
  }

  get minutes() {
    console.log(`Calculate minutes`);
    return this.ticks / 60;
  }
}
ื”ืงื•ื“ ื”ืคืขื ืžื’ื“ื™ืจ ืืช minutes ื‘ืชื•ืจ ืžืฉืชื ื” ืจื™ืืงื˜ื™ื‘ื™ ื ื•ืกืฃ. ื›ืœ ืขื•ื“ ืืฃ ืื—ื“ ืœื ืžืกืชื›ืœ ืขืœื™ื• ื”ื•ื ืžื—ื•ืฉื‘ ืžื—ื“ืฉ ื›ืœ ืคืขื ืฉืคื•ื ื™ื ืœืคื•ื ืงืฆื™ื” minutes, ื•ืœื›ืŸ ื”ืงื•ื“ ื”ื‘ื:

ToCode
1 419
# ืžื•ื‘ืืงืก - ืžืขื‘ืจ ืœื‘ื™ื™ืกื™ืงืก ื‘ืขื‘ืจ ื›ืชื‘ืชื™ ื›ืืŸ ืžืกืคืจ ืคื•ืกื˜ื™ื ืขืœ ืžื•ื‘ืืงืก ื•ื’ื ื”ืขื‘ืจืชื™ ืขืœื™ื• ื•ื•ื‘ื™ื ืจ ืฉืœ ืฉืขื”, ื›ื•ืœื ืžืชืื™ืžื™ื ื‘ืชื•ืจ ื”ื™ื›ืจื•ืช ืจืืฉื•ื ื” ืขื ืžื•ื‘ืืงืก: 1. ืžื•ื‘ืืงืก ื‘ืขืฉืจ ื“ืงื•ืช 2. ืื™ืš ืœื ื”ืœ State ื’ืœื•ื‘ืืœื™ ืฉืœ ื™ื™ืฉื•ื ืจื™ืืงื˜ ืขื MobX 3. ื•ื•ื‘ื™ื ืจ ืžื‘ื•ื ืœืžื•ื‘ืืงืก ื”ืžื˜ืจื” ืฉืœ ืžื“ืจื™ืš ื–ื” ื”ื™ื ืœืœื›ืช ืงืฆืช ื™ื•ืชืจ ืจื—ื•ืง ื•ื“ืจืš ื“ื•ื’ืžืื•ืช ืœื—ืงื•ืจ ืฆื“ื“ื™ื ืคื—ื•ืช ืžื•ื›ืจื™ื ืฉืœ ืžื•ื‘ืืงืก, ืžื” ื”ื‘ืขื™ื•ืช ืฉืฆืคื•ื™ื™ื ืœื”ื™ืชืงืœ ื‘ื”ืŸ ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ื•ืžื” ื”ืคื™ืชืจื•ื ื•ืช ื”ืžืงื•ื‘ืœื™ื. ## ืจื™ืืงื˜ื™ื‘ื™ื•ืช ืžื•ื‘ืืงืก ื”ื•ื ืคืจื™ื™ืžื•ื•ืจืง ืจื™ืืงื˜ื™ื‘ื™ ืœื ื™ื”ื•ืœ ืžื™ื“ืข ื’ืœื•ื‘ืืœื™. ืžื™ื“ืข ื’ืœื•ื‘ืืœื™ ื–ื” ืงืœ, ื–ื” ื”ืžื™ื“ืข ืฉื ืฉืžืจ ืžื—ื•ืฅ ืœืงื•ืžืคื•ื ื ื˜ื•ืช ื•ืžืฉื•ืชืฃ ืœืงื•ืžืคื•ื ื ื˜ื” ืื—ืช ืื• ื™ื•ืชืจ. ืขืœ ื”ืฉืืœื” ืื™ื–ื” ืžื™ื“ืข ื›ื“ืื™ ืœืฉืžื•ืจ ื’ืœื•ื‘ืืœื™ ื•ืื™ื–ื” ืžื™ื“ืข ื›ื“ืื™ ืœืฉืžื•ืจ ื‘ืกื˜ื™ื™ื˜ ืฉืœ ืงื•ืžืคื•ื ื ื˜ื•ืช ืื™ืŸ ืชืฉื•ื‘ื” ืคืฉื•ื˜ื”. ื›ืœ ืžืขืจื›ืช ื•ื›ืœ ืฆื•ื•ืช ืคื™ืชื•ื— ืžื—ืœื™ื˜ื™ื ืื™ืคื” ืขื•ื‘ืจ ื”ื’ื‘ื•ืœ ืฉืœื”ื. ืžื•ื‘ืืงืก ื ื›ื ืก ืœืชืžื•ื ื” ืื—ืจื™ ืฉื”ื—ืœื˜ืชื ืฉืืชื ืจื•ืฆื™ื ืœืฉืžื•ืจ ืžื™ื“ืข ืžืกื•ื™ื ื‘ืฆื•ืจื” ื’ืœื•ื‘ืืœื™ืช, ื•ื‘ื“ื•ืžื” ืœืจื™ื“ืืงืก, ืžืกืคืง ืชืฉืชื™ืช ืœืฉืžื™ืจื” ืฉืœ ื”ืžื™ื“ืข ื”ื–ื” ื•ืœื›ืชื™ื‘ืช ืงื•ื“ ืฉืžื•ืฉืคืข ืžืžื ื•. ื”ืžื™ืœื” ื”ืฉื ื™ื” ื”ื‘ืขื™ื™ืชื™ืช - "ืจื™ืืงื˜ื™ื‘ื™" - ืžืฆื™ื™ื ืช ืื™ืš ืžื•ื‘ืืงืก ืฉื•ืžืจ ืืช ื”ืžื™ื“ืข ื”ื’ืœื•ื‘ืืœื™ ืฉืœื•. ืชื›ื ื•ืช ืจื™ืืงื˜ื™ื‘ื™ ื”ื•ื ืกื•ื’ ืชื›ื ื•ืช ื‘ื• ืื ื—ื ื• ืžื’ื“ื™ืจื™ื ืงืฉืจื™ื ื‘ื™ืŸ ืžืฉืชื ื™ื, ื•ื›ืœ ืคืขื ืฉืžืฉืชื ื” ืžืกื•ื™ื ืžืงื‘ืœ ืขืจืš ื—ื“ืฉ ืื– ื›ืœ ื”ืžืฉืชื ื™ื ืฉืชืœื•ื™ื™ื ื‘ื• ื™ืชืขื“ื›ื ื• ืื•ื˜ื•ืžื˜ื™ืช. ืžื•ื‘ืืงืก ืžืกืคืง ืฉื ื™ ืกื•ื’ื™ื ืžืจื›ื–ื™ื™ื ืฉืœ ืงืฉืจื™ื: 1. ืขืจืš ืžื—ื•ืฉื‘, ืฉื”ืขืจืš ืฉืœื• ื ื’ื–ืจ ืžืžื™ื“ืข ืจื™ืืงื˜ื™ื‘ื™ ืื—ืจ. 2. ืคืขื•ืœื” ืื•ื˜ื•ืžื˜ื™ืช ืฉื ืจืฆื” ืœื‘ืฆืข ื›ืœ ืคืขื ืฉืžื™ื“ืข ืจื™ืืงื˜ื™ื‘ื™ ืžืฉืชื ื”. ื ื•ื— ืœื—ืฉื•ื‘ ืขืœ ืžืฉืชื ื” ืจื™ืืงื˜ื™ื‘ื™ ื›ืžื• ืžืฉืชื ื” ืฉื›ืœ ืคืขื ืฉื”ืขืจืš ืฉื‘ื• ืžืชืขื“ื›ืŸ ื”ื•ื ื’ื ืžื“ื•ื•ื— ืœืขื•ืœื ืขืœ ื”ืฉื™ื ื•ื™. ืขื›ืฉื™ื• ืื ื™ ื™ื•ื“ืข ืžื” ืืชื ื—ื•ืฉื‘ื™ื, ื‘ืฉื‘ื™ืœ ืžื” ืฆืจื™ืš ืฉืžืฉืชื ื” ืื•ื˜ื•ืžื˜ื™ืช ื™ื“ื•ื•ื— ืœืขื•ืœื ื›ืœ ืคืขื ืฉื”ืขืจืš ืฉืœื• ืžืฉืชื ื”? ื”ืจื™ ืื ืื ื™ ืฆืจื™ืš ืžื ื’ื ื•ืŸ ืฉื™ื“ื•ื•ื— ื›ืฉืžืฉืชื ื” ืžืกื•ื™ื ืžืชืขื“ื›ืŸ ืื ื™ ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืžื ื’ื ื•ืŸ ืื™ืจื•ืขื™ื. ื”ืชืฉื•ื‘ื”, ื›ืžื• ืฉื ืจืื” ื‘ื“ื•ื’ืžืื•ืช ื‘ืžื”ืœืš ื”ืคื•ืกื˜, ื”ื™ื ืฉืžื ื’ื ื•ืŸ ืื™ืจื•ืขื™ื ื‘ืืžืช ื ื•ืชืŸ ืคื™ืชืจื•ืŸ ื˜ื•ื‘ ื›ืฉื™ืฉ ืœื™ ืžืฉืชื ื” ืื—ื“ ืฉืฆืจื™ืš ืœื”ื’ื™ื‘ ืœืขื“ื›ื•ืŸ ืฉืœื•, ืื‘ืœ ื”ืชื›ื ื•ืช ื”ืจื™ืืงื˜ื™ื‘ื™ ืžืืคืฉืจ ืœืชืืจ ืงืฉืจื™ื ื™ื•ืชืจ ืžื•ืจื›ื‘ื™ื - ื›ืžื• ืžืฉืชื ื” ืจื™ืืงื˜ื™ื‘ื™ ืฉืžืžื ื• ื ื’ื–ืจ ืขืจืš ืžื—ื•ืฉื‘ ื•ืžื”ืขืจืš ื”ื–ื” ื ื’ื–ืจ ืขืจืš ืžื—ื•ืฉื‘ ื ื•ืกืฃ ื•ืจืง ื›ื”ืขืจืš ื”ืฉืœื™ืฉื™ ืžืฉืชื ื” ืื ื™ ืจื•ืฆื” ืœื”ืคืขื™ืœ ืงื•ื“ ืžืกื•ื™ื. ื›ื›ืœ ืฉืžืขืจื›ืช ื”ืงืฉืจื™ื ื‘ื™ืŸ ื”ืžืฉืชื ื™ื ื™ื•ืชืจ ืžืกื•ื‘ื›ืช, ื›ืš ืื ื™ ื™ื•ืชืจ ืžืจื•ื•ื™ื— ืžืคืจื™ื™ืžื•ื•ืจืง ืจื™ืืงื˜ื™ื‘ื™. ื‘ืฉื‘ื™ืœ ืœืชืช ืœื“ื‘ืจื™ื ืžืฉืžืขื•ืช ื™ื•ืชืจ ืžื•ื—ืฉื™ืช, ื‘ื•ืื• ื ื›ืชื•ื‘ ืžื—ืœืงื” ืจืืฉื•ื ื” ืฉื›ื•ืœืœืช ืžื™ื“ืข ืจื™ืืงื˜ื™ื‘ื™ - ืžื—ืœืงื” ืฉืœ ืฉืขื•ืŸ, ืฉืžื›ื™ืœ ืฉื“ื” ืžื™ื“ืข ื‘ืฉื ticks ื•ืื—ืจื™ ืฉื™ื•ืฆืจื™ื ืื•ืชื• ื”ื•ื ืื•ื˜ื•ืžื˜ื™ืช ืžืขืœื” ืืช ื”ืขืจืš ื›ืœ ืฉื ื™ื”. ื”ื ื” ืงื•ื“ ืœื ืจื™ืืงื˜ื™ื‘ื™ ืœืฉืขื•ืŸ ื›ื–ื”:
class Clock {
  constructor() {
    this.ticks = 0;
    setInterval(() => {
      this.tick();
    }, 1000);
  }

  tick() {
    this.ticks++;
  }
}
ืื ืื ื™ ืจื•ืฆื” ืœืงื—ืช ืืช ื”ืฉืขื•ืŸ ืฉื™ืฆืจืชื™ ื•ืœื”ื“ืคื™ืก ืืช ื”ืขืจืš ืฉืœ ticks ื›ืœ ืคืขื ืฉื”ื•ื ืžืฉืชื ื” ืื ื™ ื—ื™ื™ื‘ ืœืฉื ื•ืช ืืช ืงื•ื“ ื”ืžื—ืœืงื”, ื›ื™ ื›ืจื’ืข ื”ืฉืขื•ืŸ ืœื ืžืกืคืง ืœื™ ื“ืจืš ื˜ื•ื‘ื” ืœืชืงืฉืจ ืื™ืชื•. ืืคืฉืจื•ืช ืื—ืช ืœืฉื™ื ื•ื™ ืชื”ื™ื” ืœื”ื›ื ื™ืก ืืช ืคืงื•ื“ืช ื”ื”ื“ืคืกื” ืœืชื•ืš ื”ืคื•ื ืงืฆื™ื” tick; ืืคืฉืจื•ืช ืงืฆืช ื™ื•ืชืจ ื˜ื•ื‘ื” ื”ื™ื ืœื”ื•ืกื™ืฃ ืžื ื’ื ื•ืŸ ืื™ืจื•ืขื™ื ืœืฉืขื•ืŸ ื›ืš ืฉืคื•ื ืงืฆื™ื™ืช ื”ื‘ื ืื™ ืชืงื‘ืœ Callback Function ื•ืชืคืขื™ืœ ืื•ืชื” ื›ืœ ืคืขื ืฉ ticks ื ืงืจืืช. ืžื•ื‘ืืงืก ื ื•ืชืŸ ืืคืฉืจื•ืช ืฉืœื™ืฉื™ืช ื•ื”ื™ื ืœื”ืคื•ืš ืืช ื”ืฉืขื•ืŸ ืœืจื™ืืงื˜ื™ื‘ื™. ื”ืคืงื•ื“ื” makeObservable ืฉืœ ืžื•ื‘ืืงืก ื”ื•ืคื›ืช ื›ืœ ืžื—ืœืงื” ืœ Observable, ื›ืœื•ืžืจ ืœืžืฉื”ื• ืฉืืคืฉืจ ืœื”ืกืชื›ืœ ืขืœ ื”ืฉื“ื•ืช ืฉืœื•. ื”ืคื•ื ืงืฆื™ื” ืžืงื‘ืœืช ืฉื ื™ ืคืจืžื˜ืจื™ื, ื”ืจืืฉื•ืŸ ื”ื•ื ืื•ื‘ื™ืงื˜ ืœืขื‘ื•ื“ ืขืœื™ื• ื•ื”ืฉื ื™ ืžืชืืจ ืืช ืฉื“ื•ืช ื”ืžื™ื“ืข ื•ื”ืคื•ื ืงืฆื™ื•ืช ื‘ืžื—ืœืงื” ื•ืžืกื‘ื™ืจ ืžื” ื”ืชืคืงื™ื“ ืฉืœ ื›ืœ ืฉื“ื” ืžื™ื“ืข ืื• ืคื•ื ืงืฆื™ื”. ื–ืืช ื”ื’ื™ืจืกื” ื”ืจื™ืืงื˜ื™ื‘ื™ืช ืฉืœ ื”ืฉืขื•ืŸ:
import {
  makeObservable,
  observable,
  action,
} from "mobx";

class ReactiveClock {
  constructor() {
    this.ticks = 0;
    setInterval(() => {
      this.tick();
    }, 1000);

    makeObservable(this, {
      ticks: observable,
      tick: action
    });
  }

  tick() {
    this.ticks++;
  }
}
ืžืชื•ืš ื”ื‘ื ืื™ ืงืจืืชื™ ืœ makeObservable ื•ื”ืขื‘ืจืชื™ ืœื• ืืช this ื•ืื•ื‘ื™ืงื˜ ืชื™ืื•ืจ. ืื•ื‘ื™ืงื˜ ื”ืชื™ืื•ืจ ืื•ืžืจ ืฉืฉื“ื” ticks ื”ื•ื Observable, ื›ืœื•ืžืจ ืงื•ื“ ื—ื™ืฆื•ื ื™ ื™ื›ื•ืœ ืœื”ืกืชื›ืœ ืขืœ ืฉื™ื ื•ื™ื™ื ื‘ื•, ื• tick ื”ื™ื ืคื•ื ืงืฆื™ื™ืช ืขื“ื›ื•ืŸ ืฉืœ Observable, ื›ืœื•ืžืจ ื”ื™ื ืคื•ื ืงืฆื™ื” ืฉื™ื›ื•ืœื” ืœืฉื ื•ืช ืžื™ื“ืข ืจื™ืืงื˜ื™ื‘ื™ ื•ื”ื™ื ืชื“ืข ืœื”ื•ื“ื™ืข ืœื›ืœ "ื”ืžืื–ื™ื ื™ื" ืฉืœ ืื•ืชื• ืžื™ื“ืข ืฉืžืฉื”ื• ื”ืฉืชื ื”. ืื—ืจื™ ืฉื‘ื ื™ื ื• ืฉืขื•ืŸ ืจื™ืืงื˜ื™ื‘ื™ ื”ืืชื’ืจ ื”ื‘ื ื”ื•ื ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืฆื•ืจื” ืจื™ืืงื˜ื™ื‘ื™ืช. ืืคืฉืจื•ืช ืื—ืช ืœื”ืฉืชืžืฉ ื‘ืžืฉืชื ื” ืจื™ืืงื˜ื™ื‘ื™ ื”ื™ื ืœื›ืชื•ื‘ ืงื•ื“ ืฉื™ืจื•ืฅ ืื•ื˜ื•ืžื˜ื™ืช ื›ืœ ืคืขื ืฉื™ืฉ ืฉื™ื ื•ื™ ื‘ืขืจืš ื”ืžืฉืชื ื”; ืืคืฉืจื•ืช ืฉื ื™ื” ื”ื™ื ืœื›ืชื•ื‘ ืžืฉืชื ื” ืฉืขืจื›ื• ืžืชืขื“ื›ืŸ ืื•ื˜ื•ืžื˜ื™ืช ื›ืœ ืคืขื ืฉื”ืžืฉืชื ื” ื”ืจื™ืืงื˜ื™ื‘ื™ ื”ืžืงื•ืจื™ ืžืฉืชื ื”.

ToCode
1 419
# ืื™ืš ืœืœืžื•ื“ ื›ืœ ื˜ื›ื ื•ืœื•ื’ื™ื” ืžืžืฉ ืžื”ืจ ืชืœืžื™ื“ ืฉื•ืืœ: "ืื ื™ ืฆืจื™ืš ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“ ืขื ื˜ื›ื ื•ืœื•ื’ื™ื” X ืื‘ืœ ืื™ืŸ ืœื™ ื–ืžืŸ ืœืงื—ืช ืขื›ืฉื™ื• ืงื•ืจืก ืžืœื ืขืœื™ื”. ืžื” ื”ื“ืจืš ื”ื›ื™ ืžื”ื™ืจื” ืœื”ืชื—ื™ืœ ืœื›ืชื•ื‘ ืงื•ื“?" ื•ื”ืชืฉื•ื‘ื” ื”ืงืœื” - ืคืฉื•ื˜ ืœื”ืชื—ื™ืœ ืœื›ืชื•ื‘ ืงื•ื“. ืชืžืฆื ืืช ื”ื“ืจืš ื”ื›ื™ ืžื”ื™ืจื” ืœื”ื’ื™ืข ืœืืคืœื™ืงืฆื™ื” ืจืืฉื•ื ื”, ื•ืžืฉื ืชืชื—ื™ืœ ืœื”ื•ืกื™ืฃ ืคื™ืฆ'ืจื™ื. ื‘ื›ืœ ื˜ื›ื ื•ืœื•ื’ื™ื” ืฉืจืื™ืชื™ ืืคืฉืจ ื”ื™ื” ืœืžืฆื•ื ืžื“ืจื™ืš ื‘ืื™ื ื˜ืจื ื˜ ืฉืžื“ื’ื™ื ืื™ืš ืœืงื—ืช ืืช ื”ืฆืขื“ ื”ืจืืฉื•ืŸ, ื•ืื– ืขื ืงืฆืช ื”ืชืืžื•ืช ื•ืฉื™ื ื•ื™ื™ื ืืคืฉืจ ื”ื™ื” ืœื”ืชืงื“ื ืžืžื ื• ืœืฆืขื“ ื”ืฉื ื™, ื”ืฉืœื™ืฉื™ ื•ื’ื ื”ืขืฉื™ืจื™. ืœืคืขืžื™ื ืืชื” ื ืชืงืข ื•ืฆืจื™ืš ืœื—ืคืฉ ืชืฉื•ื‘ื•ืช ื‘ Stack Overflow ืื• ื‘ืขื•ื“ ืžื“ืจื™ื›ื™ื, ืื‘ืœ ื‘ื’ื“ื•ืœ ืืคืฉืจ ืœื”ื’ื™ืข ืœืชื•ืฆืื•ืช ืœื ืจืขื•ืช. ืืช ื”ืงื•ื“ ืฉืœ ืืชืจ ToCode ื›ืชื‘ืชื™ ื‘ Rails ืœืคื ื™ ืฉื”ื›ืจืชื™ ืจื™ื™ืœืก. ืฆืขื“ ืื—ืจื™ ืฆืขื“ ื‘ื ื™ืชื™ ืืชืจ ืฉืขื•ื‘ื“ ืขื ืžืขืจื›ืช ื ื™ื”ื•ืœ ื•ื”ืชื—ืœืชื™ ืœื”ืขืœื•ืช ืงื•ืจืกื™ื ื•ืคื•ืกื˜ื™ื ืœื‘ืœื•ื’ ื•ืžืคื” ืœืฉื ืื ื—ื ื• ื›ื‘ืจ 7 ืฉื ื™ื ื‘ืื•ื•ื™ืจ. ื‘ื–ืžืŸ ื”ืขื‘ื•ื“ื” ืขืœ ื”ืืชืจ ื”ืฆืœื—ืชื™ ืœืคืชื•ืจ ืืช ืจื•ื‘ ื”ื‘ืื’ื™ื ืœืžืจื•ืช ืฉืœื ืืช ื›ื•ืœื ื”ืฆืœื—ืชื™ ืœื”ื‘ื™ืŸ. ื›ื›ืœ ืฉื›ืชื‘ืชื™ ื™ื•ืชืจ ื›ืš ื—ื™ืคืฉืชื™ ืœื”ื‘ื™ืŸ ื™ื•ืชืจ, ื•ืื– ื”ืชื—ืœืชื™ ืœืงื—ืช ืงื•ืจืกื™ื ื‘ืจื™ื™ืœืก ื•ืœืงืจื•ื ืœืขื•ืžืง ืืช ื”ืชื™ืขื•ื“. ื›ื›ืœ ืฉื”ื‘ื ืชื™ ื™ื•ืชืจ ื”ืฆืœื—ืชื™ ืœื›ืชื•ื‘ ืžื—ื“ืฉ ื—ืœืงื™ื ืžื”ืงื•ื“ ื•ืœื”ืขืœื•ืช ืืช ื”ืจืžื” ืฉืœื”ื, ื•ื–ื” ืชื”ืœื™ืš ืฉืขื“ื™ื™ืŸ ื ืžืฉืš. ื‘ืชื›ื ื•ืช, ืœื™ืžื•ื“ ื˜ื•ื‘ ื”ื•ื ื›ืžื• ืžืฉื—ืง ืคื™ื ื’-ืคื•ื ื’ ื‘ื™ืŸ ืคืจืงื˜ื™ืงื” ืœืชื™ืื•ืจื™ื”: ืžืชื—ื™ืœื™ื ืœื‘ื ื•ืช, ื—ื•ื–ืจื™ื ืœืœืžื•ื“ ื•ืื– ื—ื•ื–ืจื™ื ืœืฉืคืจ. ื ื›ื•ืŸ, ืื™ื›ื•ืช ื”ืงื•ื“ ืœื ืชื”ื™ื” ื”ื›ื™ ื˜ื•ื‘ื” ืฉืืคืฉืจ, ืื‘ืœ ื‘ืงืฆื‘ ื•ืื™ื›ื•ืช ื”ืœื™ืžื•ื“ ืื™ ืืคืฉืจ ืœื”ืชื—ืจื•ืช.

ToCode
1 419
# ื‘ืขื™ื•ืช ืœื ื’ื“ื•ืœื•ืช ื‘ื›ืœ ืคืจื•ื™ืงื˜ ื™ืฉ ื”ืžื•ืŸ ื‘ืขื™ื•ืช ื’ื“ื•ืœื•ืช ืื‘ืœ ื™ืฉ ื’ื ืœื ืžืขื˜ ื‘ืขื™ื•ืช ืงื˜ื ื•ืช, ืฉื”ืŸ ืงืฆืช ืžืฆื™ืงื•ืช ืื‘ืœ ืœื ืžืกืคื™ืง ืžืฆื™ืงื•ืช ื‘ืฉื‘ื™ืœ ืฉืžื™ืฉื”ื• ื™ืชืงืŸ ืื•ืชืŸ, ืœืžืฉืœ: 1. ื›ืœ ืคืขื ืฉืžืขืœื™ื ื’ื™ืจืกื” ื™ืฉ ื›ืžื” ืฉื ื™ื•ืช ืฉืœ Down Time ื‘ื”ืŸ ื”ืžืขืจื›ืช ืœื ื–ืžื™ื ื”. 2. ืคืขื•ืœื” ืžืกื•ื™ืžืช ืฉืขื•ืฉื™ื ืื•ืชื” ื‘ืชื“ื™ืจื•ืช ื ืžื•ื›ื” ื“ื•ืจืฉืช ืขื‘ื•ื“ื” ื™ื“ื ื™ืช ืœืคื™ ืื™ื–ื” ืžื“ืจื™ืš. 3. ื‘ืื’ ืžืขืฆื‘ืŸ ื‘ืžืžืฉืง ื”ืžืฉืชืžืฉ ืฉื›ืœ ืคืขื ืฉืขื•ืฉื™ื ืจืฆืฃ ืคืขื•ืœื•ืช ืžืกื•ื™ื ืฆืจื™ืš ืœืœื—ื•ืฅ ืขืœ ืื™ื–ื” ื›ืคืชื•ืจ ืœื ืงืฉื•ืจ ืื• ืœืจืขื ืŸ ืืช ื”ืขืžื•ื“. 4. ื™ืฉ ื›ืžื” ื‘ื“ื™ืงื•ืช ืฉืžื“ื™ ืคืขื ื ื›ืฉืœื•ืช ื‘ืœื™ ืฉืืฃ ืื—ื“ ื™ื•ื“ืข ืœืžื”. ื™ืฉ ืฆื•ื•ืชื™ื ืฉืžื—ื–ื™ืงื™ื ืจืฉื™ืžื•ืช ืฉืœ ื”ื‘ืขื™ื•ืช ื”ืœื ื’ื“ื•ืœื•ืช ื”ืืœื”. ื‘ืžืงื•ืžื•ืช ืื—ืจื™ื ื–ื” ืžืฉื”ื• ืฉืืชื” ืžื’ืœื” ืžื”ืจ ืžืื•ื“ ื›ืฉืืชื” ืžืชื—ื™ืœ ืœืขื‘ื•ื“ ืขืœ ื”ืคืจื•ื™ืงื˜. ื‘ื›ืœ ืžืงืจื” ืขื“ ืฉืืชื” ื ื—ืฉืฃ ืœื‘ืขื™ื•ืช ื›ื‘ืจ ื™ืฉ ืœืš ื™ื•ืชืจ ืžื“ื™ ืขื‘ื•ื“ื” ื•ื”ื‘ืขื™ื” ืœื ืžืกืคื™ืง ืžืฆื™ืงื”. ืื ื™ ืื•ื”ื‘ ืœื”ืกืชื›ืœ ืขืœ ื‘ืขื™ื•ืช ืœื ื’ื“ื•ืœื•ืช ื•ื‘ืžื™ื•ื—ื“ ืขืœ ื›ืืœื” ืฉื›ื•ืœื ืžื›ื™ืจื™ื ื‘ืชื•ืจ ื”ื–ื“ืžื ื•ืช. ื”ืจื‘ื” ืžื”ื‘ืขื™ื•ืช ื”ืืœื” ื™ื—ืกื™ืช ืงืœ ืœืคืชื•ืจ ื•ืœื›ืŸ ื™ืฉ ืœื”ืŸ ROI ื’ื‘ื•ื”. ืื ื”ืฆืœื—ืชื "ืœื’ื ื•ื‘" ืฉืขืชื™ื™ื ื•ืœืคืชื•ืจ ื‘ืขื™ื” ืœื ื’ื“ื•ืœื” ื–ื” ืžืฉื”ื• ืฉื”ืจื‘ื” ืื ืฉื™ื ื‘ืืจื’ื•ืŸ ื™ืฉื™ืžื• ืœื‘ ืืœื™ื•, ื›ื™ ื”ื™ื ื”ืฆื™ืงื” ืœื”ื ื”ืจื‘ื” ื–ืžืŸ. ื›ืฉืืชื ื—ื“ืฉื™ื ื‘ืืจื’ื•ืŸ, ื›ืฉืืชื ื‘ืื™ื ืจืง ืœื›ืžื” ื™ืžื™ื ืœื™ื™ืขื•ืฅ, ื›ืฉืืชื ื•ื•ืชื™ืงื™ื ืฉืจื•ืฆื™ื ืœืจืขื ืŸ, ื•ื‘ืขืฆื ื‘ื›ืœ ืžืฆื‘ - ืฆืจื• ืœืขืฆืžื›ื ื”ืจื’ืœ ืœื—ืคืฉ ื‘ืขื™ื•ืช ืงื˜ื ื•ืช ื•ืœืคืชื•ืจ ืื•ืชืŸ ืชื•ืš ื›ื“ื™ ืชื ื•ืขื”. ืžื”ืจ ืžืื•ื“ ืชืชื—ื™ืœื• ืœื”ืจื’ื™ืฉ ื‘ื”ื‘ื“ืœ.

ToCode
1 419
# ืืฃ ืื—ื“ ืืฃ ืคืขื ืœื ื™ืจืฆื” ืืช ื–ื” ื”ืคื•ื ืงืฆื™ื•ืช atob ื• btoa ืฉืœ JavaScript ืžืฉืžืฉื•ืช ืœื”ืžืจื” ืฉืœ ืžื—ืจื•ื–ื•ืช ืœ Base64 ื•ื‘ื—ื–ืจื”. ืžื›ืœ ืžื™ื ื™ ืื™ืœื•ืฆื™ื ื˜ื›ื ื™ื™ื ืžืืคื™ื™ื ื™ ืฉืคืช JavaScript ื”ื—ืœื™ื˜ื• ืฉื”ืŸ ื™ืขื‘ื“ื• ื˜ื•ื‘ ืจืง ืขืœ ืžื—ืจื•ื–ื•ืช ASCII ื›ืœื•ืžืจ ืžื—ืจื•ื–ื•ืช ื‘ืื ื’ืœื™ืช ื‘ืœื‘ื“. ืื– ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘:
> btoa("ninja")
'bmluamE='
ืื‘ืœ ืœื ื™ื›ื•ืœ ืœื›ืชื•ื‘:
> btoa('ืชืคื•ื–')
Uncaught:
DOMException [InvalidCharacterError]: Invalid character
    at new DOMException (node:internal/per_context/domexception:70:5)
    at __node_internal_ (node:internal/util:497:10)
    at btoa (node:buffer:1229:13)
ืœื›ืŸ ื” Best Practice ื‘ืฉื‘ื™ืœ ืœื”ืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื•ืช ืืœื” ื”ื•ื ืœื”ืฉืชืžืฉ ื‘ืขื•ื“ ื”ืžืจื” ืœืคื ื™ ื”ืคืขืœืชืŸ. ื›ืš ืžื”ืชื™ืขื•ื“:
function utf8_to_b64( str ) {
  return window.btoa(unescape(encodeURIComponent( str )));
}

function b64_to_utf8( str ) {
  return decodeURIComponent(escape(window.atob( str )));
}
ื”ืงื™ื“ื•ื“ ืœ Base64 ื‘ืฉื™ื˜ื” ืฉืžื•ืฆืขืช ื‘ืชื™ืขื•ื“ ื”ื•ื ื‘ื“ื™ื•ืง ืžื” ืฉืื ื™ ืžืงื‘ืœ ืžืฉืคื” ื›ืžื• Ruby ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื”ื‘ื—ื™ืจื” ืฉืœ ืžืชื›ื ื ื™ JavaScript ืœื‘ื ื•ืช API ืฉื™ืขื‘ื•ื“ ืจืง ืขืœ ื˜ืงืกื˜ื™ื ืžืกื•ื™ืžื™ื ื”ื™ื ืžื•ืงืฉ ืฉืžื—ื›ื” ืœื”ืชืคื•ืฆืฅ. ืืœื” ื‘ื“ื™ื•ืง ื”ื‘ืื’ื™ื ืฉืงื•ืจื™ื ืจืง ืœืœืงื•ื— ืกืคืฆื™ืคื™ ื•ืื—ืจื™ ื–ื” ืงืฉื” ืœืžืฆื•ื ืื•ืชื. ืžื” ืขื•ืฉื™ื? ื‘ืชื•ืจ ืžืฉืชืžืฉื™ื ืฉืœ API ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืื™ื–ื” ืžืงืจื™ ืงืฆื” ืžืคื™ืœื™ื ืื•ืชื• ื•ืื™ื–ื” Best Practices ืžื•ืžืœืฆื™ื ื‘ืขื‘ื•ื“ื” ืื™ืชื•. ื’ื ืื ื ืจืื” ืœื›ื ืฉืืฃ ืื—ื“ ืืฃ ืคืขื ืœื ื™ืจืฆื” ืœื‘ื—ื•ืจ ืกื™ืกืžื” ื‘ืขื‘ืจื™ืช, ืขื“ื™ื™ืŸ ืฉื•ื•ื” ืœืขื‘ื•ื“ ืœืคื™ ื” Best Practices ื›ื“ื™ ืœืžื ื•ืข ื‘ืขื™ื•ืช ื‘ืขืชื™ื“. ื•ืื ื™ื•ื ืื—ื“ ืชื—ืœื™ื˜ื• ืœื”ื™ื•ืช ื‘ืขืฆืžื›ื ืžืชื›ื ื ื™ APIs, ืฉื•ื•ื” ืœื“ืื•ื’ ืฉื”ื“ืจืš ื”ื ื›ื•ื ื” ืชื”ื™ื” ื’ื ื”ื“ืจืš ื”ืงืœื”.

ToCode
1 419
# ื—ื“ืฉ ื‘ Node 18 - ืชืžื™ื›ื” ืžื•ื‘ื ื™ืช ื‘ Fetch API ื’ื™ืจืกื” 18 ืฉืœ ื ื•ื“ ืžื‘ื™ืื” ืื™ืชื” ืœื ืžืขื˜ ื—ื™ื“ื•ืฉื™ื: ื”ืชืžื™ื›ื” ื‘ ES Modules ื”ืฉืชืคืจื” ืคืœืื™ื, ื”ื•ืกื™ืคื• ืžื•ื“ื•ืœ ืžื•ื‘ื ื” ืœื”ืจืฆืช ื‘ื“ื™ืงื•ืช ื™ื—ื™ื“ื”, ื•ื ื•ืกืคื” ืชืžื™ื›ื” ืœืฉื ื™ ืžืžืฉืงื™ ืจืฉืช ืžื”ื“ืคื“ืคืŸ ืฉื”ื Fetch API ื• Web Streams API. ื‘ืคื•ืกื˜ ื–ื” ืืฆื™ื’ ืืช ื”ืฉื™ืžื•ืฉ ื‘ Fetch API ื‘ Node. ## ื“ื•ื’ืžืช Fetch API ื•ืคื•ืงื™ืžื•ื ื™ื ืคื•ืงื™ API ื”ื•ื ืืชืจ ื“ื•ื’ืžื” ืžืขื•ืœื” ืœื‘ื“ื™ืงืช ื‘ืงืฉื•ืช API. ืืชื ืคื•ื ื™ื ืœื ืชื™ื‘ ืขืœ ืฉืจืช ื–ื” ื•ื™ื›ื•ืœื™ื ืœืงื‘ืœ ื—ื–ืจื” ืžื™ื“ืข ืขืœ ืคื•ืงื™ืžื•ื ื™ื. ืœื“ื•ื’ืžื” ื”ืงื™ืฉื•ืจ: https://pokeapi.co/api/v2/pokemon/ditto ื™ื™ืชืŸ ืœื›ื ืžื™ื“ืข ืขืœ ื”ืคื•ืงื™ืžื•ืŸ ืฉืงื•ืจืื™ื ืœื• ditto. ืขื“ ืขื›ืฉื™ื• ื‘ืฉื‘ื™ืœ ืœืฉืœื•ืฃ ืืช ื”ืžื™ื“ืข ื”ื–ื” ืžืชื•ื›ื ื™ืช Node.JS ื”ื™ื™ื ื• ืฆืจื™ื›ื™ื ืœื”ืชืงื™ืŸ ื—ื‘ื™ืœื” ื—ื™ืฆื•ื ื™ืช ืื• ืœืขื‘ื•ื“ ืงืฉื” ื•ืœื˜ืคืœ ื‘ื›ืœ ืžื™ื ื™ ืžืงืจื™ ืงืฆื” ืœื ืžืขื ื™ื™ื ื™ื. ื”ื—ืœ ืž Node 18 ืืคืฉืจ ืœื›ืชื•ื‘ ืชื•ื›ื ื™ืช ื›ื–ืืช ื›ื“ื™ ืœื”ืฆื™ื’ ืืช ื›ืœ ื”ืžื™ื“ืข:
async function main() {
  const res = await fetch('https://pokeapi.co/api/v2/pokemon/ditto');

  if (res.ok) {
    const data = await res.json();
    console.log(data);
  }
}

main();
ื›ืจื’ืข ื”ืชืžื™ื›ื” ืขื“ื™ื™ืŸ ื ื™ืกื™ื•ื ื™ืช ื•ื›ืฉืžืจื™ืฆื™ื ืืช ื”ืชื•ื›ื ื™ืช ืžืงื‘ืœื™ื ืืช ื”ื•ื“ืขืช ื”ืื–ื”ืจื”:
(node:44313) ExperimentalWarning: The Fetch API is an experiment
al feature. This feature could change at any time
(Use `node --trace-warnings ...` to show where the warning was c
reated)
ืื ืœื ืžืคืจื™ืข ืœื›ื ืฉืื•ืœื™ ืชืฆื˜ืจื›ื• ืœืฉื ื•ืช ื—ืœืง ืžื”ืงื•ื“ ื‘ืขืชื™ื“, ืื• ืื ืืชื ื›ื•ืชื‘ื™ื ืกืงืจื™ืคื˜ื™ื ืงื˜ื ื™ื ืฉืขื•ื“ ืžืขื˜ ื™ื™ื–ืจืงื•, ืฉื•ื•ื” ืœื”ืชื—ื™ืœ ืœืฉืœื‘ ืืช fetch ื‘ืชื•ื›ื ื™ื•ืช ืฉืœื›ื. ืœื“ื‘ืจื™ื ื™ื•ืชืจ ื—ืฉื•ื‘ื™ื ืืคืฉืจ ืœื—ื›ื•ืช ืœ node 20. ื‘ื›ืœ ืžืงืจื” ื›ื™ืฃ ืœืจืื•ืช ืืช ื”ื—ื™ื‘ื•ืจ ื‘ื™ืŸ Node ืœื“ืคื“ืคืŸ ื•ืืช ื”ืืคืฉืจื•ื™ื•ืช ืฉื”ื•ื ืคื•ืชื— ืœืฉื™ืชื•ืฃ ืงื•ื“ ื‘ื™ืŸ ืฉืชื™ ื”ืกื‘ื™ื‘ื•ืช.

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

ToCode
1 419
# ืืจื‘ืข ืขืฆื•ืช ืœืขืฆืžืื™ื ื‘ืชื—ื™ืœืช ื”ื“ืจืš ืœืคื ื™ 11 ืฉื ื™ื ืขื–ื‘ืชื™ ืืช ื”ืขื‘ื•ื“ื” ื›ืฉื›ื™ืจ ื•ื™ื—ื“ ืขื ื—ื‘ืจ ืžืชื›ื ืช ื”ืงืžื ื• ื—ื‘ืจื” ืœื‘ื ื™ื™ืช ืืคืœื™ืงืฆื™ื•ืช ืœืœืงื•ื—ื•ืช. ื‘ื“ืžื™ื•ืŸ ืจืื™ื ื• ืžืื•ืช ื—ื‘ืจื•ืช ืขื•ืžื“ื•ืช ื‘ืชื•ืจ ื›ื“ื™ ืฉืื ื—ื ื• ื ื‘ื ื” ืœื”ื ืืคืœื™ืงืฆื™ื”. ืืฃ ืื—ื“ ืœื ืกื™ืคืจ ืœื ื• ืื™ืš ื–ื” ืขื•ื‘ื“ ื‘ืžืฆื™ืื•ืช ืื• ืžื” ืฆืจื™ืš ืœืขืฉื•ืช ื›ื“ื™ ืœืงื‘ืœ ื”ื–ื“ืžื ื•ืช. ืืœื” ื”ืขืฆื•ืช ืฉืื•ืœื™ ื”ื™ื• ืขื•ื–ืจื•ืช ืœื ื• ืœื”ืฆืœื™ื— ื•ืื•ืœื™ ื™ืขื–ืจื• ืœื›ื- ## ื”ืชื—ื™ืœื• ื‘ืœืงื•ื—ื•ืช ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืืชื ืจื•ืฆื™ื ืœืขืฉื•ืช ื›ืฉืคื•ืชื—ื™ื ืขืกืง ื—ื“ืฉ ื”ื•ื ืœื”ื‘ื™ืŸ ืžื™ ืืžื•ืจื™ื ืœื”ื™ื•ืช ื”ืœืงื•ื—ื•ืช ืฉืœื›ื ื•ืœืชืช ืœื”ื ื“ืจืš ืœื”ื’ื™ืข ืืœื™ื›ื. ืคื” ืœื ืžืกืคื™ืง ืœื›ืชื•ื‘ ืคื•ืกื˜ ื‘ืคื™ื™ืกื‘ื•ืง ืฉืื•ืžืจ "ืชืจืื• ืื ื™ ื‘ื•ื ื” ืืคืœื™ืงืฆื™ื•ืช" ืื• ืœื”ืชืงืฉืจ ืœื›ืœ ื”ื—ื‘ืจื™ื ื•ืœื‘ืงืฉ ื”ื–ื“ืžื ื•ืช. ืœื ืžืฉื ื” ื›ืžื” ืืชื ื ื—ืžื“ื™ื (ื•ืื ื—ื ื• ื”ื™ื™ื ื• ื ื—ืžื“ื™ื), ืžื ื’ื ื•ืŸ ืฉื™ื•ื•ืง ืจื‘ ืฉื›ื‘ืชื™ ื”ื•ื ื”ื›ืจื—ื™ ื›ื“ื™ ืœืงื‘ืœ ื”ื–ื“ืžื ื•ืช ื‘ืขืกืงื™ื, ื•ื–ื” ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืœื‘ื ื•ืช ืื• ืœืชืงืŸ ื›ืฉื‘ื•ื ื™ื ืขืกืง. ื›ืฉืื ื™ ืื•ืžืจ ืฉื™ื•ื•ืง ืจื‘ ืฉื›ื‘ืชื™ ื”ื›ื•ื•ื ื” ืฉืœืงื•ื—ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื™ื ืฉืœื›ื ืฆืจื™ื›ื™ื ืœืขื‘ื•ืจ ืืชื›ื ืชื”ืœื™ืš ืœืคื ื™ ืฉื”ื ืžื•ื›ื ื™ื ืœืฉืœื. ื›ื›ืœ ืฉื”ืžื•ืฆืจ ื™ื•ืชืจ ื™ืงืจ ื›ืš ื”ืชื”ืœื™ืš ื™ื”ื™ื” ื™ื•ืชืจ ืืจื•ืš. ืื– ืื ืื ื—ื ื• ืจื•ืฆื™ื ืœื‘ื ื•ืช ื—ื‘ืจื” ืฉื‘ื•ื ื” ืืคืœื™ืงืฆื™ื•ืช ื”ื™ื™ื ื• ืจื•ืฆื™ื ืœื™ื™ืฆืจ- 1. ืชื•ื›ืŸ ืฉืื ืฉื™ื ื™ื›ื•ืœื™ื ืœื”ื™ื—ืฉืฃ ืืœื™ื• ื‘ืงืœื•ืช - ืœืžืฉืœ ืืคืœื™ืงืฆื™ื•ืช ื—ื™ื ืžื™ื•ืช ืคืฉื•ื˜ื•ืช ื•ื›ื™ืคื™ื•ืช, ืขื“ื™ืฃ ื•ื™ืจืืœื™ื•ืช, ืขื“ื™ืฃ ืžืฉื—ืงื•ื ื™ื ื•ื“ื‘ืจื™ื ื›ืืœื”. 2. ืชื•ื›ืŸ ืฉืื ืฉื™ื ืฉืžื—ืคืฉื™ื ืœื‘ื ื•ืช ืืคืœื™ืงืฆื™ื” ืžื—ืคืฉื™ื ื•ืžื•ื›ื ื™ื ืœืงื‘ืœ ื‘ืงืœื•ืช - ื“ื‘ืจื™ื ื‘ืกื’ื ื•ืŸ ืฉืœ ืžืืžืจื™ื ื•ืžื“ืจื™ื›ื™ื. ืื– ื›ืืŸ ื™ื”ื™ื” ืœื ื• ืžื“ืจื™ืš "10 ื˜ืขื•ื™ื•ืช ื ืคื•ืฆื•ืช ืฉืื ืฉื™ื ืขื•ืฉื™ื ื›ืฉื‘ื•ื ื™ื ืืคืœื™ืงืฆื™ื”", ืื• "ืจืฉื™ืžืช 5 ื”ืืคืœื™ืงืฆื™ื•ืช ื”ืžืขื•ืฆื‘ื•ืช ืฉืœ ื”ื—ื•ื“ืฉ". ืœืงื‘ืœืช ื”ืžื“ืจื™ืš ืฆืจื™ืš ืœื”ื›ื ื™ืก ื›ืชื•ื‘ืช ืžื™ื™ืœ. ืœื›ืœ ืžื“ืจื™ืš ื›ื–ื” ื™ื”ื™ื” ืขืžื•ื“ ื ื—ื™ืชื” ื•ืืชื ืชืฆื˜ืจื›ื• ืœืฉืœื ืงืฆืช ืœืคื™ื™ืกื‘ื•ืง ื•ื’ื•ื’ืœ ื›ื“ื™ ืœื”ื‘ื™ื ืื ืฉื™ื ืœื“ืคื™ ื”ื ื—ื™ืชื” ืฉื™ืฆืจืชื. 3. ืชื•ื›ืŸ ืฉืื ืฉื™ื ืฉื”ื›ื ื™ืกื• ื›ืชื•ื‘ืช ืžื™ื™ืœ ืžื•ื›ื ื™ื ืœืงื‘ืœ, ื•ืขื•ื–ืจ ืœื”ื ืœื”ื‘ื™ืŸ ืžื™ ืืชื ื•ืœืกืžื•ืš ืขืœื™ื›ื - ืžื” ืฉื ืงืจื "ืกื™ื“ืจืช ืžืกืจื™ื". ื‘ื ื•ืฉื ืืคืœื™ืงืฆื™ื•ืช ื”ื™ื™ืชื™ ื‘ื•ื ื” ืกื™ื“ืจื” ืฉืื•ืžืจืช "ืื™ืš ื‘ื•ื ื™ื ืืคืœื™ืงืฆื™ื” ืœืขืกืง ืฉืœืš" ื•ืžื•ืจื›ื‘ืช ืž 10-15 ืžื“ืจื™ื›ื™ื, ื›ืœ ืื—ื“ ืžื›ืกื” ืืกืคืงื˜ ืฉื•ื ื” ืฉืœ ื”ืชื”ืœื™ืš. ืืช ื”ืžื“ืจื™ื›ื™ื ื”ืืœื” ืื ื—ื ื• ืฉื•ืœื—ื™ื ืœืœืงื•ื— ื›ืœ ื™ื•ื ืœืžื™ื™ืœ ื•ื›ืœ ืžื“ืจื™ืš ืžืกืชื™ื™ื ื‘ื”ืฆืขื” ืœืจื›ื™ืฉื” ืฉืœ ื”ืฉื™ืจื•ืช ืฉืœื ื•. ืžื ื’ื ื•ืŸ ืฉื™ื•ื•ืง ื›ื–ื” ืžื‘ื™ื ืœืขืกืง ืฉืœื›ื ื›ืœ ื”ื–ืžืŸ ืคื ื™ื•ืช ืžืื ืฉื™ื ืจืœื•ื•ื ื˜ื™ื ื•ืžื›ื ื™ืก ืืชื›ื ืœืžืขื’ืœ ืฉืœ ืขืฉื™ื™ื”. ## ื”ืฆื™ืขื• ืคื™ืชืจื•ืŸ ืžื“ื•ื™ืง ืœื‘ืขื™ื” ืกืคืฆื™ืคื™ืช ื›ืฉื”ืชื—ืœืชื™ ืืช ื”ืขืกืง ืฉืœ ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ื”ื™ื” ืœื™ ืžื•ื“ืœ ื‘ืจื•ืจ ื‘ืจืืฉ - ืœืงื•ื— ื™ื’ื™ืข, ื™ื‘ืงืฉ ืืคืœื™ืงืฆื™ื” ื•ืื ื™ ืื›ืชื•ื‘ ืื•ืชื”. ืื™ื–ื” ืืคืœื™ืงืฆื™ื”? ืžื” ื–ื” ืžืฉื ื”. ืžื™ ื”ืœืงื•ื—? ืžื™ ืฉื‘ื ื‘ืจื•ืš ื”ื‘ื. ื‘ืื™ื–ื” ื˜ื›ื ื•ืœื•ื’ื™ื”? ืขื›ืฉื™ื• ื”ื’ื–ืžืชื - ืื ื™ ื™ื•ื“ืข ืœื›ืชื•ื‘ ื‘ื›ืœ ืฉืคื” ืฉืฆืจื™ืš. ื–ืืช ืœื ื“ืจืš ืœื”ืงื™ื ืขืกืง ืฉืขื•ื‘ื“. ืœื ื ืชืชื™ ืœืืฃ ืœืงื•ื— ืฉื•ื ืกื™ื‘ื” ืžื™ื•ื—ื“ืช ืœืจืฆื•ืช ืœืขื‘ื•ื“ ืื™ืชื™. ื”ื’ื™ืฉื” ืฉืœื™ ื”ื™ืชื” "ืืชื ื™ื›ื•ืœื™ื ืœื‘ื—ื•ืจ ื‘ื›ืœ ืื—ื“, ื•ืื ื™ ื›ืœ ืื—ื“". ื•ื”ื™ื ืœื ืขื‘ื“ื”. ืื ื”ื™ื•ื ื”ื™ื™ืชื™ ืžืชื—ื™ืœ ืžื—ื“ืฉ ื”ื™ื™ืชื™ ืžื—ืคืฉ ืœืฆืžืฆื ื›ืžื” ืฉื™ื•ืชืจ ืืช ืกื•ื’ ื”ื‘ืขื™ื•ืช ืฉืื ื™ ืคื•ืชืจ, ื•ืœื™ื™ืฆืจ ืงื•ื“ื ื›ืœ ืคื™ืชืจื•ืŸ ืื—ื“ ืฉืขื•ื‘ื“ ื•ืฉืืคืฉืจ ืœื”ืชืงื™ื™ื ืžืžื ื•. ืื—ืจ ื›ืš, ืื ืขื•ื“ ื™ื”ื™ื” ื–ืžืŸ ื•ืจืฆื•ืŸ, ืืคืฉืจ ืœื‘ื ื•ืช ืคื™ืชืจื•ื ื•ืช ื ื•ืกืคื™ื. ื”ื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืœืขืกืงื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืกืคืฆื™ืคื™ื™ื ื‘ืชื•ืš ื”ืขื•ืœื ืฉืœ ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื•ืช ืฉื”ื™ื™ืชื™ ื™ื›ื•ืœ ืœื”ืงื™ื: 1. ืคื™ืชื•ื— ืืคืœื™ืงืฆื™ื” ื’ื ืจื™ืช ืœืžื•ืจื™ื ืคืจื˜ื™ื™ื (ืžืืคืฉืจืช ืงืฉืจ ืขื ืชืœืžื™ื“ื™ื, ืžืขืงื‘ ืื—ืจ ืฉื™ืขื•ืจื™ ื‘ื™ืช, ื ื™ื”ื•ืœ ื™ื•ืžืŸ, ืชื–ื›ื•ืจื•ืช ื•ื›ื•'), ื•ื”ืชืืžืชื” ืœื›ืœ ืžื•ืจื” ืคืจื˜ื™ ืฉืืคื’ื•ืฉ. ื”ืœืงื•ื—ื•ืช ื”ื™ื—ื™ื“ื™ื ืฉื™ื”ื™ื• ืœื™ ื”ื ืžื•ืจื™ื ืคืจื˜ื™ื™ื, ื•ืœื”ื ืื ื™ ื™ื›ื•ืœ ืœื”ืฆื™ืข ืžื—ื™ืจ ืชื—ืจื•ืชื™ ื•ืคื™ืฆ'ืจื™ื ืฉืื™ืŸ ืœืืฃ ืื—ื“ ืื—ืจ. ืื ื–ื” ืœื ืขื•ื‘ื“ ืืคืฉืจ ืœื”ืžืฉื™ืš ื•ืœื ืกื•ืช ืœืคืชื— ืืคืœื™ืงืฆื™ื” ื’ื ืจื™ืช ืœืงื”ืœื™ ื™ืขื“ ื ื•ืกืคื™ื. 2. ืคื™ืชื•ื— ืกืคืจื™ื™ืช ืงื•ื“ ืคืชื•ื— ืฉืชืขื–ื•ืจ ืœืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช ืœืฉืœื‘ ืคื™ืจืกื•ืžื•ืช ื‘ืืคืœื™ืงืฆื™ื•ืช ืฉืœื”ื, ื•ื™ืฆื™ืจืช ืžื•ื“ืœ ืฉืœ ืขื–ืจื” ื‘ืชืฉืœื•ื ืœืœืงื•ื—ื•ืช ืฉืžืฉืชืžืฉื™ื ื‘ืกืคืจื™ื™ืช ื”ืงื•ื“ ื”ืคืชื•ื—. ืื ื”ืกืคืจื™ื” ืœื ื”ืคื›ื” ืœืžืกืคื™ืง ืคื•ืคื•ืœืจื™ืช ืืคืฉืจ ืœื ืกื•ืช ืฉื•ื‘ ืขื ืกืคืจื™ื™ืช ืงื•ื“ ืคืชื•ื— ืื—ืจืช. 3. ืคื™ืชื•ื— ื›ืœื™ ืœืžืคืชื—ื™ื ืฉื™ืขื–ื•ืจ ืœื”ื ืœืžืฆื•ื ื‘ืขื™ื•ืช ืื‘ื˜ื—ื” ื‘ืงื•ื“ ืฉืœ ืืคืœื™ืงืฆื™ื•ืช ืฉื”ื ื›ื•ืชื‘ื™ื, ื•ื”ืฆืขืช ืคื™ืชืจื•ืŸ ืžืฉืœื™ื ืฉืœ ื™ื™ืขื•ืฅ ื›ื“ื™ ืœืขื–ื•ืจ ืœืกืชื•ื ืืช ื”ื—ื•ืจื™ื ืฉื”ืชื’ืœื•. 4. ืคื™ืชื•ื— ื›ืœื™ No Code ืฉืžืืคืฉืจ ืœืื ืฉื™ื ืœื‘ื ื•ืช ืืคืœื™ืงืฆื™ื•ืช ื‘ืงืœื•ืช ืขืœ ื‘ืกื™ืก ืชื‘ื ื™ืช ืงื™ื™ืžืช. ืื ื—ื ื• ื™ื›ื•ืœื™ื ืœื”ืชื—ื™ืœ ืžื›ืœื™ ืฉื‘ื•ื ื” ืืคืœื™ืงืฆื™ื™ืช "ื›ืจื˜ื™ืก ื‘ื™ืงื•ืจ", ื•ืžื™ ืฉืžืฉืชืžืฉ ื‘ื›ืœื™ ื™ื›ื•ืœ ืœืจืื•ืช ืื™ื–ื” ืœืงื•ื—ื•ืช ืฉืœื• ื”ืคืขื™ืœื• ืืช ืืคืœื™ืงืฆื™ื™ืช ื›ืจื˜ื™ืก ื”ื‘ื™ืงื•ืจ, ืœืฉืœื•ื— ืœื”ื ื ื•ื˜ื™ืคื™ืงืฆื™ื•ืช, ืœื”ืฆื™ืข ืžื‘ืฆืขื™ื ื•ื“ื‘ืจื™ื ื‘ืกื’ื ื•ืŸ. ืคื™ืชื•ื— ืจืขื™ื•ืŸ ืกืคืฆื™ืคื™ ืื•ื˜ื•ืžื˜ื™ืช ืžืขืœื” ืจืžื” ืืช ื”ืฉื™ื—ื” ืฉืœื›ื ืขื ืœืงื•ื—ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื™ื. ื‘ืžืงื•ื "ืืชื ื™ื›ื•ืœื™ื ืœื‘ื—ื•ืจ ื›ืœ ืื—ื“, ื•ืื ื™ ื›ืœ ืื—ื“" ืืคืฉืจ ืœื”ื’ื™ื“ "ื‘ื ื™ืชื™ ื›ืœื™ ืขืœ ืกืžืš ืขื‘ื•ื“ื” ืขื ืขืฉืจื•ืช ืžื•ืจื™ื ืคืจื˜ื™ื™ื ืฉื›ื‘ืจ ื ืขื–ืจื™ื ื‘ื• ื›ื“ื™ ืœืชืงืฉืจ ืขื ื”ืชืœืžื™ื“ื™ื ืฉืœื”ื. ืืœื” ื”ื™ื›ื•ืœื•ืช ืฉื™ืขื–ืจื• ืœืš ืœื”ืจื•ื•ื™ื— ื™ื•ืชืจ ื›ืกืฃ ื‘ืชื•ืจ ืžื•ืจื” ืคืจื˜ื™ ื•ืืœื” ื”ืกื™ื‘ื•ืช ื‘ื’ืœืœืŸ ื›ื“ืื™ ืœืš ืœื”ืฉืชืžืฉ ื‘ื›ืœื™". ## ื”ืงื™ืคื• ืืช ืขืฆืžื›ื ื‘ืื ืฉื™ื ืžืงืฆื•ืขื™ื™ื

ToCode
1 419
# ืฉืžื•ื ื” ืขืฉืจื” ืชืจื’ื™ืœื™ ื’ื™ื˜ ื›ื“ื™ ืœื”ืชื—ื™ืœ ืืช ื”ืฉื‘ื•ืข ื’ื™ื˜ ื”ื•ื ืžืกื•ื’ ื”ื›ืœื™ื ื‘ื• ืชืžื™ื“ ื™ืฉ ื“ืจืš ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืื‘ืœ ื”ื™ื ืœื ืชืžื™ื“ ื‘ืจื•ืจื”. ืื ื™ ืžืงื•ื•ื” ืฉ 18 ื”ืชืจื’ื™ืœื™ื ื”ื‘ืื™ื ื™ืขื–ืจื• ืœื›ื ืœื—ืงื•ืจ ื•ืœื”ื‘ื™ืŸ ืืช ื”ื”ื’ื™ื•ืŸ ืฉืœ ื’ื™ื˜, ื•ืงืฆืช ืœื”ืชืืžืŸ ืขืœ ืคืขื•ืœื•ืช ื ืคื•ืฆื•ืช ื‘ืขื‘ื•ื“ื” ืขื ื”ื›ืœื™. ## ืขื‘ื•ื“ื” ื™ื•ื ื™ื•ืžื™ืช ืฆืจื• ืคืจื•ื™ืงื˜ ืขื ืงื•ื‘ืฅ ืื—ื“ ื•-3 ืงื•ืžื™ื˜ื™ื, ื‘ื›ืœ ืงื•ืžื™ื˜ ื›ื™ืชื‘ื• ืฉื•ืจื” ื ื•ืกืคืช ืœืชื•ืš ื”ืงื•ื‘ืฅ ื›ืš ืฉื‘ืงื•ืžื™ื˜ ื”ืฉืœื™ืฉื™ ื™ื”ื™ื• ื‘ืงื•ื‘ืฅ 3 ืฉื•ืจื•ืช. 1. ื”ืฆื™ื’ื• ืืช ืชื•ื›ืŸ ื”ืงื•ื‘ืฅ ื›ืคื™ ืฉื”ื™ื” ื‘ื›ืœ ืื—ื“ ืžื”ืงื•ืžื™ื˜ื™ื. 2. ื”ืฆื™ื’ื• ืืช ืชื•ื›ืŸ ื”ืงื•ื‘ืฅ ื•ืœื™ื“ ื›ืœ ืฉื•ืจื” ื”ืฆื™ื’ื• ืžืื™ื–ื” ืงื•ืžื™ื˜ ื”ื™ื ื”ื’ื™ืขื”. 3. ื”ืฆื™ื’ื• ืืช ืชื•ื›ืŸ ื”ืงื•ื‘ืฅ ื›ืคื™ ืฉื”ื™ื” ื‘ืงื•ืžื™ื˜ ื”ืจืืฉื•ืŸ. 4. ื”ื—ื–ื™ืจื• ืืช ื”ืงื•ื‘ืฅ ืœืžืฆื‘ ื‘ื• ื”ื•ื ื”ื™ื” ื‘ืงื•ืžื™ื˜ ื”ืจืืฉื•ืŸ. ืœืื—ืจ ืžื›ืŸ ื”ื—ื–ื™ืจื• ืื•ืชื• ืฉื•ื‘ ืœืžืฆื‘ ื‘ื• ื”ื•ื ื”ื™ื” ื‘ืงื•ืžื™ื˜ ื”ืฉืœื™ืฉื™. 5. ืžื—ืงื• ืืช ื›ืœ ื”ื˜ืงืกื˜ ื‘ืงื•ื‘ืฅ ื•ื”ื—ืœื™ืคื• ืื•ืชื• ื‘-3 ืฉื•ืจื•ืช ื—ื“ืฉื•ืช ืœื’ืžืจื™. ืฆืจื• ื’ื ืงื•ื‘ืฅ ื—ื“ืฉ ืขื ื˜ืงืกื˜ ื—ื“ืฉ. ืขื›ืฉื™ื• ื‘ื˜ืœื• ืืช ื›ืœ ื”ืฉื™ื ื•ื™ื™ื ืฉืœื›ื ื‘ืืžืฆืขื•ืช ืฉืœื™ื—ืชื ืœ Stash. 6. ื”ื—ื–ื™ืจื• ืžื” Stash ืืช ื”ืฉื™ื ื•ื™ื™ื ื•ื”ื›ื ื™ืกื• ืื•ืชื ืœืงื•ืžื™ื˜. 7. ืฆืจื• ืขื ืฃ ื—ื“ืฉ ื‘ืฉื test ื‘ืฉื‘ื™ืœ ื”ืงื•ืžื™ื˜ ื”ืจื‘ื™ืขื™. ื”ื•ืกื™ืคื• ืฉื ืงื•ื‘ืฅ ื ื•ืกืฃ ื•ื‘ืฆืขื• ืงื•ืžื™ื˜ ื—ืžื™ืฉื™ ืœืื•ืชื• ืขื ืฃ. 8. ื—ื™ื–ืจื• ืœืขื ืฃ main, ื”ื•ืกื™ืคื• ืฉื•ืจื” ื—ื“ืฉื” ืœืงื•ื‘ืฅ ื•ื‘ืฆืขื• ืงื•ืžื™ื˜ ื—ื“ืฉ ืœืขื ืฃ main. 9. ืžื–ื’ื• ืืช ื”ืฉื™ื ื•ื™ื™ื ืž test ืœืชื•ืš main. ื”ื—ืœื™ื˜ื• ืื™ื–ื” ืฉื•ืจื•ืช ืืชื ืจื•ืฆื™ื ื‘ืงื•ืžื™ื˜ ื”ืžื™ื–ื•ื’. 10. ื”ืฆื™ื’ื• ืืช ื”ืœื•ื’ ืขื ื’ืจืฃ ื”ืงื•ืžื™ื˜ื™ื ื”ืžืœื ืฉืžืจืื” ืืช ื” Merge Commit ื•ืืช ืฉื ื™ ื”ื”ื•ืจื™ื ืฉืœื•. ## ืื•ืคืก ืขืฉื™ืชื™ ืืช ื–ื” ืฉื•ื‘ ื‘ืขื‘ื•ื“ื” ืขื ื’ื™ื˜ ืžืื•ื“ ืงืœ ืœืชืงืŸ ื˜ืขื•ื™ื•ืช ื›ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืžื” ืื ื—ื ื• ืขื•ืฉื™ื. ื‘ื—ืœืง ื–ื” ื ื ืกื” ืœืฉื‘ื•ืจ ื“ื‘ืจื™ื ื›ื“ื™ ืœืชืงืŸ ืื•ืชื. ืฆืจื• ืคืจื•ื™ืงื˜ ื—ื“ืฉ ืขื ืฉืœื•ืฉื” ืงื‘ืฆื™ื ื‘ืฉืžื•ืช apple.txt, banana.txt ื• orange.txt. ื‘ื›ืœ ืงื•ื‘ืฅ ื›ืชื‘ื• ืืช ื”ืฆื‘ืข ืฉืœ ื”ืคืจื™ ืฉืžืชืื™ื ืœืฉื ื”ืงื•ื‘ืฅ ื•ื‘ืฆืขื• ืงื•ืžื™ื˜ ืจืืฉื•ืŸ. 1. ืขื“ื›ื ื• ืืช ืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื ื‘ืคืจื•ื™ืงื˜ ื•ื‘ืชื•ืš ื›ืœ ืื—ื“ ืžื”ื ื”ื•ืกื™ืคื• ืฉื•ืจื” ื ื•ืกืคืช (ืœื ืžืฉื ื” ืžื” ื›ืชื•ื‘ ื‘ื”). ืื—ืจื™ ื”ืขื“ื›ื•ืŸ ืฆืจื• ืขื ืฃ ื—ื“ืฉ ื•ื”ื›ื ื™ืกื• ืืช ื”ืฉื™ื ื•ื™ ืœืขื ืฃ ื”ื—ื“ืฉ. 2. ื—ื–ืจื• ืœืขื ืฃ ื”ืจืืฉื™, ืขื“ื›ื ื• ืฉื•ื‘ ืืช ืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื ื‘ืคืจื•ื™ืงื˜ ื•ื‘ืฆืขื• git add ืœืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื. ืขื›ืฉื™ื• ืฆืจื• ืขื ืฃ ื—ื“ืฉ ื•ื”ื›ื ื™ืกื• ืืช ื”ืฉื™ื ื•ื™ ืœืชื•ืš ื”ืขื ืฃ ื”ื—ื“ืฉ. 3. ื—ื–ืจื• ืœืขื ืฃ ื”ืจืืฉื™, ืขื“ื›ื ื• ืฉื•ื‘ ืืช ืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื ื‘ืคืจื•ื™ืงื˜ ื•ื‘ืฆืขื• git add ื•ื’ื git commit. ืขื›ืฉื™ื• ืฆืจื• ืขื ืฃ ื—ื“ืฉ ื•ื”ื–ื™ื–ื• ืืช ื”ืฉื™ื ื•ื™ (ื›ืœื•ืžืจ ื”ืงื•ืžื™ื˜) ืœืขื ืฃ ื”ื—ื“ืฉ. 4. ื—ื–ืจื• ืœืขื ืฃ ื”ืจืืฉื™ ื•ืฉื ื• ืืช ื”ื˜ืงืกื˜ ืฉืœ ื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ ืฉืœ ื”ืงื•ืžื™ื˜ ื”ืจืืฉื•ืŸ. 5. ืขื“ื›ื ื• ืืช ืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื ื•ื‘ืฆืขื• ืงื•ืžื™ื˜ ืฉื ื™. 6. ืขื“ื›ื ื• ืฉื•ื‘ ืืช ืฉืœื•ืฉืช ื”ืงื‘ืฆื™ื ื•ื‘ืฆืขื• ืงื•ืžื™ื˜ ืฉืœื™ืฉื™. 7. ืžื–ื’ื• ืืช ืฉืœื•ืฉืช ื”ืงื•ืžื™ื˜ื™ื ื‘ืขื ืฃ ื”ืจืืฉื™ ืœืงื•ืžื™ื˜ ื™ื—ื™ื“ ืฉื”ื•ื“ืขืช ื”ืงื•ืžื™ื˜ ืฉืœื• ืชื”ื™ื” ื”ื˜ืงืกื˜ "Initial Commit". 8. ืขื‘ืจื• ืœืขื ืฃ ืฉื™ืฆืจืชื ื‘ืกืขื™ืฃ 3 ื•ื”ืคืขื™ืœื• git log. ื”ืื ืืชื ืจื•ืื™ื ืืช ื”ืงื•ืžื™ื˜ ื”ื™ื—ื™ื“ ืžื”ืขื ืฃ ื”ืจืืฉื™? ืขื“ื›ื ื• ืืช ื”ืขื ืฃ ื›ืš ืฉื”ืงื•ืžื™ื˜ ื”ื™ื—ื™ื“ ื‘ื• ื™ื”ื™ื” ืงื•ืžื™ื˜ ืฉื™ื•ืฆื ืžื”ืขื ืฃ ื”ืจืืฉื™. 9. ืžื–ื’ื• ืืช ื”ืขื ืฃ ื”ื—ื“ืฉ ืœืขื ืฃ ื”ืจืืฉื™ ื‘ืืžืฆืขื•ืช Fast Forward Merge ื•ืžื—ืงื• ืืช ื›ืœ ื”ืขื ืคื™ื ืžืœื‘ื“ ื”ืขื ืฃ ื”ืจืืฉื™.

ToCode
1 419
# ื”ื™ื•ื ืœืžื“ืชื™: ื”ื”ื‘ื“ืœ ื‘ื™ืŸ URL ืœ URI ืœื ืœื”ืืžื™ืŸ ืฉื”ืขื‘ืจืชื™ ื—ื™ื™ื ืฉืœืžื™ื ื‘ืœื™ ืœื“ืขืช ืืช ื–ื”, ืื‘ืœ ืื ื’ื ืืชื ืคืชืื•ื ืœื ื‘ื˜ื•ื—ื™ื ืื– ื”ื’ืขืชื ืœืžืงื•ื ื”ื ื›ื•ืŸ. ืงื•ื“ื ื›ืœ ืžืฉืžืขื•ืช ืจืืฉื™ ื”ืชื™ื‘ื•ืช ื“ื•ืžื” - URL ื”ื•ื Uniform Resource Locator ื• URI ื”ื•ื Uniform Resource Identifier. ื”ื”ื‘ื“ืœ ื‘ื™ื ื™ื”ื ื”ื•ื ืขื“ื™ืŸ ืื‘ืœ ื—ืฉื•ื‘: ื” URI ื”ื•ื ืžื–ื”ื” ื™ื™ื—ื•ื“ื™ ืฉืœ "ืžืฉืื‘" ื‘ื˜ื›ื ื•ืœื•ื’ื™ื™ืช ื•ื•ื‘. ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœื–ื”ื•ืช ืืชืจื™ื ื‘ืื™ื ื˜ืจื ื˜ ืื‘ืœ ื’ื ืื ืฉื™ื, ืžืงื•ืžื•ืช, ืžื•ืฉื’ื™ื, ื•ืœืžืขืฉื” ื›ืœ ื“ื‘ืจ. ื” URI ืฉืœ ืžืฉืื‘ ืœื ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื›ืชื•ื‘ืช ืื™ื ื˜ืจื ื˜ ืืžื™ืชื™ืช, ื•ื™ื›ื•ืœ ืœื”ื™ื•ืช ื›ืœ ืžื—ืจื•ื–ืช ืฉื ืจืื™ืช ื›ืžื• ื›ืชื•ื‘ืช ืื™ื ื˜ืจื ื˜. ืœื›ืŸ ื›ืœ ืืœื” ื”ื URI-ื™ื:
https://schema.org/Person
foo://example.com:8042/over/there?name=ferret#nose
urn:oasis:names:specification:docbook:dtd:xml:4.1.2
urn:isbn:0-486-27557-4
https://stackoverflow.com/questions/4913343/what-is-the-difference-between-uri-url-and-urn
data:,Hello%20World
ื—ืœืง ืžื” URI-ื™ื ืžืชื™ื—ืกื™ื ืœืžืกืžืš ืกืคืฆื™ืคื™ ื‘ืจืฉืช ื•ืžืกื‘ื™ืจื™ื ืื™ืš ืœื”ื’ื™ืข ืืœื™ื•. ืœืžืฉืœ ื” URI ื”ื–ื”:
https://stackoverflow.com/questions/4913343/what-is-the-difference-between-uri-url-and-urn
ื”ื•ื ืงื™ืฉื•ืจ ืœ Stack Overflow. ื”ื•ื ืกื•ื’ ืฉืœ "ืžืฆื‘ื™ืข" ืœื“ืฃ ื‘ืคืจื•ื˜ื•ืงื•ืœ https. ืžื–ื”ื™ื ื›ืืœื” ื ืงืจืื™ื URL-ื™ื, ื›ื™ ื”ื ืžืกืคืงื™ื ื“ืจืš ืœืืชืจ (to locate) ืืช ื”ืžืฉืื‘ ืฉื”ื ืžื–ื”ื™ื. ื”ืจื‘ื” ืคืขืžื™ื, ื•ื–ื” ืงืฆืช ืžื‘ืœื‘ืœ, ื” URI ื™ื”ื™ื” ื‘ืขืฆื ื›ืชื•ื‘ืช ืื™ื ื˜ืจื ื˜ ืฉืœ ื“ืฃ ืฉืœื ื‘ืืžืช ืงืฉื•ืจ ืœื“ื‘ืจ ืฉื”ื•ื ืžื–ื”ื”. ืœื“ื•ื’ืžื” ื‘ HTML 4 ืžืกืžืš ื”ื™ื” ืžืชื—ื™ืœ ื‘ืฉื•ืจื”:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
ืื‘ืœ ืœื“ืคื“ืคื ื™ื ืœื ื”ื™ื” ืื›ืคืช ืื ื”ื™ื™ืชื ื˜ื•ืขื™ื ื‘ื›ืชื•ื‘ืช ื”ืื™ื ื˜ืจื ื˜ ืฉืžื•ืคื™ืขื” ืฉื. ื”ืกื™ื‘ื” ืฉื™ืฉ ื›ืชื•ื‘ืช ืื—ืจื™ ื” DOCTYPE ื”ื™ื ืจืง ื‘ืฉื‘ื™ืœ ืœื–ื”ื•ืช ืืช ื”ื’ื™ืจืกื” ืฉืœ ื” HTML, ื•ื‘ืขืฆื ื”ืฉื•ืจื” ืžืชืคืงื“ืช ื‘ืชื•ืจ URI ื•ืœื URL - ืืฃ ืื—ื“ ืœื ืžืฉืชืžืฉ ื‘ื” ื›ื“ื™ ืœืงืจื•ื ืืช ื”ืžืกืžืš ืฉื ืžืฆื ื‘ื”. ืื•ืชื• ืกื™ืคื•ืจ ืงื•ืจืก ื‘ XML Namespaces ื•ื’ื ื‘ืžื–ื”ื™ื ืฉืœ schema.org. ื‘ืงื™ืฆื•ืจ ืื ื™ืฉ ืœื ื• ื›ืชื•ื‘ืช ืฉืžื–ื”ื” ืžืกืžืš ื•ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ื” ื›ื“ื™ ืœื”ื’ื™ืข ืœืžืกืžืš ื”ื–ื” ื ืงืจื ืœื” URL. ืื ื™ืฉ ืœื ื• ืžื–ื”ื” ื™ื™ื—ื•ื“ื™ ืฉืœ "ืžืฉื”ื•" ืฉืื ื—ื ื• ืœื ืฆืจื™ื›ื™ื ื‘ืืžืช ืœื”ื’ื™ืข ืืœื™ื• ืื ื—ื ื• ืงื•ืจืื™ื ืœื–ื” URI. ืœืžื™ื“ืข ื ื•ืกืฃ ืฉื•ื•ื” ืœืงืจื•ื ืืช ื”ืคื•ืกื˜ ื”ื–ื” ืžื”ื‘ืœื•ื’ ืฉืœ auth0 ืฉืขื•ื–ืจ ืœื—ื“ื“ ืืช ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื”ืžื•ืฉื’ื™ื: https://auth0.com/blog/url-uri-urn-differences/

ToCode
1 419
# ื”ื“ืจื™ืฉื” ืฉืœื ื›ื•ืชื‘ื™ื ื‘ืžื•ื“ืขืช ื”ื“ืจื•ืฉื™ื ื“ื” ืžืจืงืจ ืขืฉื• ืืชืžื•ืœ ื›ืชื‘ืช ืกืคื™ื™ืฉืœ ืขืœ ืžื” ืื•ืžืจืช ื›ืœ ื“ืจื™ืฉื” ื‘ืžื•ื“ืขื•ืช ื“ืจื•ืฉื™ื, ืื‘ืœ ื”ื“ืจื™ืฉื” ื”ื›ื™ ื—ืฉื•ื‘ื” ื‘ื›ืœืœ ืœื ื”ื•ืคื™ืขื” ื‘ืจืฉื™ืžื” ืฉืœื”ื, ื•ื’ื ืœื ืžื•ืคื™ืขื” ื‘ืจื•ื‘ ืžื•ื“ืขื•ืช ื”ื“ืจื•ืฉื™ื. ื”ื“ืจื™ืฉื” ื”ื™ื- "ืžื‘ื™ืŸ ืื• ืžื‘ื™ื ื” ืืช ื”ืกื™ืคื•ืจ" ืœื”ื‘ื™ืŸ ืืช ื”ืกื™ืคื•ืจ ื–ื” ืื•ืžืจ ืฉืืช ื™ื›ื•ืœื” ืœืจืื•ืช ืงื•ื“ ืฉืœ ืžืขืจื›ืช ื•ืœื”ื‘ื™ืŸ: 1. ืžื” ื”ืžื˜ืจื•ืช ืฉืœ ื”ืงื•ื“ ื”ื–ื” 2. ืžื” ื”ืื™ืœื•ืฆื™ื ืฉื”ืงื•ื“ ืฆืจื™ืš ืœื”ืชืžื•ื“ื“ ืื™ืชื 3. ืžื” ื”ื™ื• ื”ืื™ืœื•ืฆื™ื ืฉืœ ืžื™ ืฉื›ืชื‘ื” ืืช ื”ืงื•ื“ 4. ืื™ื–ื” ื—ืœืงื™ื ืฉื ื‘ื›ื•ื•ื ื” ื•ืžื” ืฉื ื‘ื˜ืขื•ืช 5. ืžื” ื”ื•ืœื›ื•ืช ืœื”ื™ื•ืช ื”ื‘ืขื™ื•ืช ื‘ืงื•ื“ ื”ื–ื” ื‘ืขืชื™ื“ ื”ืงืจื•ื‘ 6. ืื™ื–ื” ื‘ืขื™ื•ืช ืกื‘ื™ืจ ืœื”ื ื™ื— ืฉื™ื”ื™ื• ืœืงื•ื“ ื”ื–ื” ื‘ืขืชื™ื“ ื”ื™ื•ืชืจ ืจื—ื•ืง 7. ืœืื™ื–ื” ืฉื™ื ื•ื™ื™ื ื‘ืขื•ืœื ื”ืงื•ื“ ื”ื–ื” ื ื›ืชื‘, ื›ืœื•ืžืจ ืœืื™ื–ื” ื“ืจื™ืฉื•ืช ื—ื“ืฉื•ืช ื™ื”ื™ื” ืงืœ ืœื”ืชืื™ื ืืช ื”ืงื•ื“ 8. ืื™ื–ื” ืฉื™ื ื•ื™ื™ื ื‘ืขื•ืœื ืœื ืืžื•ืจื™ื ืœืงืจื•ืช, ื›ืœื•ืžืจ ืœืื™ื–ื” ื“ืจื™ืฉื•ืช ื—ื“ืฉื•ืช ื™ื”ื™ื” ืžืื•ื“ ืงืฉื” ืœื”ืชืื™ื ืืช ื”ืงื•ื“ ืื ืฉื™ื ืฉื™ื•ื“ืขื™ื ืœืงืจื•ื ืงื•ื“ ื•ืœื”ื‘ื™ืŸ ืืช ื”ืกื™ืคื•ืจ ืฉืœื• ื™ืฆืœื™ื—ื• ื”ืจื‘ื” ื™ื•ืชืจ ื‘ืงืœื•ืช ืœืชื—ื–ืง ื•ืœืฉืคืจ ืžืขืจื›ืช ื‘ืœื™ ืœืฉื‘ื•ืจ ืื•ืชื”. ื“ืจืš ื˜ื•ื‘ื” ืœื”ืชืืžืŸ ืขืœ ื–ื” ื”ื™ื ืœืขื ื•ืช ืขืœ 8 ื”ืฉืืœื•ืช ื‘ืจืฉื™ืžื” ื›ืืŸ ืขืœ ืงื•ื“ ืฉืืชื ื›ืชื‘ืชื. ื•ื“ืจืš ื˜ื•ื‘ื” ืœื›ืชื•ื‘ ืงื•ื“ ื™ื•ืชืจ ืžื“ื•ื™ืง ื”ื™ื ืœื ืกื•ืช ืœืขื ื•ืช ืขืœ ื›ืœ 8 ื”ืฉืืœื•ืช ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“.