ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
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,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, ืืืื ืืงืื ืืื: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, ืืืืืจ ืืื ืคืื ืงืฆืื ืฉืืืืื ืืฉื ืืช ืืืืข ืจืืืงืืืื ืืืื ืชืืข ืืืืืืข ืืื "ืืืืืื ืื" ืฉื ืืืชื ืืืืข ืฉืืฉืื ืืฉืชื ื.
ืืืจื ืฉืื ืื ื ืฉืขืื ืจืืืงืืืื ืืืชืืจ ืืื ืืื ืืืฉืชืืฉ ืื ืืฆืืจื ืจืืืงืืืืืช. ืืคืฉืจืืช ืืืช ืืืฉืชืืฉ ืืืฉืชื ื ืจืืืงืืืื ืืื ืืืชืื ืงืื ืฉืืจืืฅ ืืืืืืืืช ืื ืคืขื ืฉืืฉ ืฉืื ืื ืืขืจื ืืืฉืชื ื; ืืคืฉืจืืช ืฉื ืื ืืื ืืืชืื ืืฉืชื ื ืฉืขืจืื ืืชืขืืื ืืืืืืืืช ืื ืคืขื ืฉืืืฉืชื ื ืืจืืืงืืืื ืืืงืืจื ืืฉืชื ื.1 419
# ืืื ืืืืื ืื ืืื ืืืืืื ืืืฉ ืืืจ
ืชืืืื ืฉืืื: "ืื ื ืฆืจืื ืืืชืืื ืืขืืื ืขื ืืื ืืืืืื X ืืื ืืื ืื ืืื ืืงืืช ืขืืฉืื ืงืืจืก ืืื ืขืืื. ืื ืืืจื ืืื ืืืืจื ืืืชืืื ืืืชืื ืงืื?"
ืืืชืฉืืื ืืงืื - ืคืฉืื ืืืชืืื ืืืชืื ืงืื. ืชืืฆื ืืช ืืืจื ืืื ืืืืจื ืืืืืข ืืืคืืืงืฆืื ืจืืฉืื ื, ืืืฉื ืชืชืืื ืืืืกืืฃ ืคืืฆ'ืจืื. ืืื ืืื ืืืืืื ืฉืจืืืชื ืืคืฉืจ ืืื ืืืฆืื ืืืจืื ืืืื ืืจื ื ืฉืืืืื ืืื ืืงืืช ืืช ืืฆืขื ืืจืืฉืื, ืืื ืขื ืงืฆืช ืืชืืืืช ืืฉืื ืืืื ืืคืฉืจ ืืื ืืืชืงืื ืืื ื ืืฆืขื ืืฉื ื, ืืฉืืืฉื ืืื ืืขืฉืืจื. ืืคืขืืื ืืชื ื ืชืงืข ืืฆืจืื ืืืคืฉ ืชืฉืืืืช ื Stack Overflow ืื ืืขืื ืืืจืืืื, ืืื ืืืืื ืืคืฉืจ ืืืืืข ืืชืืฆืืืช ืื ืจืขืืช.
ืืช ืืงืื ืฉื ืืชืจ ToCode ืืชืืชื ื Rails ืืคื ื ืฉืืืจืชื ืจืืืืก. ืฆืขื ืืืจื ืฆืขื ืื ืืชื ืืชืจ ืฉืขืืื ืขื ืืขืจืืช ื ืืืื ืืืชืืืชื ืืืขืืืช ืงืืจืกืื ืืคืืกืืื ืืืืื ืืืคื ืืฉื ืื ืื ื ืืืจ 7 ืฉื ืื ืืืืืืจ. ืืืื ืืขืืืื ืขื ืืืชืจ ืืฆืืืชื ืืคืชืืจ ืืช ืจืื ืืืืืื ืืืจืืช ืฉืื ืืช ืืืื ืืฆืืืชื ืืืืื. ืืื ืฉืืชืืชื ืืืชืจ ืื ืืืคืฉืชื ืืืืื ืืืชืจ, ืืื ืืชืืืชื ืืงืืช ืงืืจืกืื ืืจืืืืก ืืืงืจืื ืืขืืืง ืืช ืืชืืขืื. ืืื ืฉืืื ืชื ืืืชืจ ืืฆืืืชื ืืืชืื ืืืืฉ ืืืงืื ืืืงืื ืืืืขืืืช ืืช ืืจืื ืฉืืื, ืืื ืชืืืื ืฉืขืืืื ื ืืฉื.
ืืชืื ืืช, ืืืืื ืืื ืืื ืืื ืืฉืืง ืคืื ื-ืคืื ื ืืื ืคืจืงืืืงื ืืชืืืืจืื: ืืชืืืืื ืืื ืืช, ืืืืจืื ืืืืื ืืื ืืืืจืื ืืฉืคืจ. ื ืืื, ืืืืืช ืืงืื ืื ืชืืื ืืื ืืืื ืฉืืคืฉืจ, ืืื ืืงืฆื ืืืืืืช ืืืืืื ืื ืืคืฉืจ ืืืชืืจืืช.
1 419
# ืืขืืืช ืื ืืืืืืช
ืืื ืคืจืืืงื ืืฉ ืืืื ืืขืืืช ืืืืืืช ืืื ืืฉ ืื ืื ืืขื ืืขืืืช ืงืื ืืช, ืฉืื ืงืฆืช ืืฆืืงืืช ืืื ืื ืืกืคืืง ืืฆืืงืืช ืืฉืืื ืฉืืืฉืื ืืชืงื ืืืชื, ืืืฉื:
1. ืื ืคืขื ืฉืืขืืื ืืืจืกื ืืฉ ืืื ืฉื ืืืช ืฉื Down Time ืืื ืืืขืจืืช ืื ืืืื ื.
2. ืคืขืืื ืืกืืืืช ืฉืขืืฉืื ืืืชื ืืชืืืจืืช ื ืืืื ืืืจืฉืช ืขืืืื ืืื ืืช ืืคื ืืืื ืืืจืื.
3. ืืื ืืขืฆืื ืืืืฉืง ืืืฉืชืืฉ ืฉืื ืคืขื ืฉืขืืฉืื ืจืฆืฃ ืคืขืืืืช ืืกืืื ืฆืจืื ืืืืืฅ ืขื ืืืื ืืคืชืืจ ืื ืงืฉืืจ ืื ืืจืขื ื ืืช ืืขืืื.
4. ืืฉ ืืื ืืืืงืืช ืฉืืื ืคืขื ื ืืฉืืืช ืืื ืฉืืฃ ืืื ืืืืข ืืื.
ืืฉ ืฆืืืชืื ืฉืืืืืงืื ืจืฉืืืืช ืฉื ืืืขืืืช ืืื ืืืืืืช ืืืื. ืืืงืืืืช ืืืจืื ืื ืืฉืื ืฉืืชื ืืืื ืืืจ ืืืื ืืฉืืชื ืืชืืื ืืขืืื ืขื ืืคืจืืืงื. ืืื ืืงืจื ืขื ืฉืืชื ื ืืฉืฃ ืืืขืืืช ืืืจ ืืฉ ืื ืืืชืจ ืืื ืขืืืื ืืืืขืื ืื ืืกืคืืง ืืฆืืงื.
ืื ื ืืืื ืืืกืชืื ืขื ืืขืืืช ืื ืืืืืืช ืืืืืืื ืขื ืืืื ืฉืืืื ืืืืจืื ืืชืืจ ืืืืื ืืช. ืืจืื ืืืืขืืืช ืืืื ืืืกืืช ืงื ืืคืชืืจ ืืืื ืืฉ ืืื ROI ืืืื. ืื ืืฆืืืชื "ืืื ืื" ืฉืขืชืืื ืืืคืชืืจ ืืขืื ืื ืืืืื ืื ืืฉืื ืฉืืจืื ืื ืฉืื ืืืจืืื ืืฉืืื ืื ืืืื, ืื ืืื ืืฆืืงื ืืื ืืจืื ืืื.
ืืฉืืชื ืืืฉืื ืืืจืืื, ืืฉืืชื ืืืื ืจืง ืืืื ืืืื ืืืืขืืฅ, ืืฉืืชื ืืืชืืงืื ืฉืจืืฆืื ืืจืขื ื, ืืืขืฆื ืืื ืืฆื - ืฆืจื ืืขืฆืืื ืืจืื ืืืคืฉ ืืขืืืช ืงืื ืืช ืืืคืชืืจ ืืืชื ืชืื ืืื ืชื ืืขื. ืืืจ ืืืื ืชืชืืืื ืืืจืืืฉ ืืืืื.
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, ืฉืืื ืืืืื ืฉืืืจื ืื ืืื ื ืชืืื ืื ืืืจื ืืงืื.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 ืืืคืืคื ืืืช ืืืคืฉืจืืืืช ืฉืืื ืคืืชื ืืฉืืชืืฃ ืงืื ืืื ืฉืชื ืืกืืืืืช.1 419
ืืคืื ืืขืืื ืืื ืืืื ืืืชื ืืืคืฉ ืฉืืชืฃ ืืืจ ืืืืืื ืืจืืฉืื ืื ืฉื ืืขืกืง. ืืชืืจ ืืชืื ืช ืฉืืืืจ ืืขืืงืจ ืงืื, ืืืืืจื ืืืืขืืช ืืืชื ืืขืืื ืขื ืืืจ ืืชืื ืช ืฉืื ืขืื ืขืืืื. ื ืืื ืฉืื ืืื ืื ื ืืกืืื ืงืืื ืืืชืืืช ืืคืืืงืฆืืืช, ืืื ืืฉืืชื ืฉืงืื ืื ืงืื ืืืื ืืืื ืืืจ. ืืฉืืชื ืื ืฉืื ืฉืืฉืื ืื ืืขืืื ืขื ืื ืฉืื ืืจืืฉ ืฉืื.
ืืื ืืืืชื ืฉืืฉืืื ืืืชืงืื ืืจืืฉ ืืืืืง ืืืืคื - ืืืืจ ืืืฉืื ืืื ืืืฆืื ืื ืฉืื ืืงืฆืืขืืื ืขื ืกื ืืืืืืช ืืืื ืื ืืฉืืื ืืฉืื ื.
ืื ืื ืืช ืืชืื ืชืช ืฉืจืืฆื ืืืงืื ืขืกืง ืฉืืื ืืืฆืื ืืขืฆื ืืื, ืื ืืืฉ ืืืืจืืช ืืื, ืื ืื ืื ืืื, ืื ืืืฉ ืฉืืืืง ืืืง.
ืืื ืืช ืืชืืืืช ืืืจื ืืขืกืงืื ืืืื ืืืฆืื ืฉืืชืคื ืฉืืืจ ืืงืืื ืืืจื ืื ืฉืชืืื ืืืืืขืช ืืื ืื ืืจืื ืืืื ืืืจืื ืืืืืื ืืขืืื.
ืืืื ืืฉืื, ืืฉืืขืกืง ืจืง ืืชืืื ืืื ืืงืื ืืื ืฉืื ืฉืื ืืืืขืื ืขืืืื ืืช ืืขืืืื ืฉืืื. ืืฉืื ืืขืืื ืจืง ืขื ืื ืฉืื ืฉืืืืขืื ืขื ืื ืืืืื ืืืืืข ืืื ืืขืืื. ืื ืื ืืืืืชื ืืงืืช ืืขืฆื ืืชืืจ ืฉืืชืฃ, ืืืื ืืืืืจ ืืขืฆื ืฉืืืจ ืขืืฆื ืืืจืื ืืืืื ืืืืจ ืฉืืชื ืืืืืื ืืื ืืช ืืขืกืง. ืื ืืืจืชื ืืืฉ ืืืืจืืช ืงืื ืืืฉ ืืืืจืืช ืฉืืืจ ืืืจ ืืืฆืจืื ืืืจืื ืืืืชื ืื ืฉืื ืฉืืชื ืจืืฆืื ืืืืืจ ืืื. ืืืืจื ืืืงืื ืขืกืง ืฉืืืคืฉืจ ืืื ืืืืื ืืืื ืืืืื ืืืืืช ืืงืฆืืขืืช ืฉืืื ืฉืืชื ืืืจ ืืืืขืื ืืขืฉืืช ืืื.
ืื ืืคืฉืจ ืืืืื ืชืื ืืื ืชื ืืขื, ืืื ืื ืฆืจืื ืืืืื ืืืงืื ืขืกืง ืืื ืืืืื ืืขืืื ืื ืืชืืื ืืืืืช ืงืฉื.
## ืชืื ื ื ื ืืื ืืช ืืืื ืืืืกืฃ ืฉืืื
ืืืืชื ืขืกืง ืคืืชืื ืืคืืืงืฆืืืช ืฉืื ืื ื ืืงืื ื ืืืื ื ืืืืืื ืฉืชืื ืืืืฉืืื-ืฉืืืฉื ืืงืื ืจืืฉืื ืืืืข ืืืฉืื ืื ื ืืงืืื ืฉื ืขืฉืจืืช ืืืคื ืฉ"ื ืืคืืชืื ืืืคืืืงืฆืื ืืจืืฉืื ื. ืืฉืื ืื ืงืจื ืืฆืื ื ืืช ืขืฆืื ื ืืืืืืืื ืืืืืืื.
ืืืงืื ืขืกืง ืืืงื ืืื ืืืกืฃ. ืืฉ ืขืกืงืื ืฉืืคืฉืจ ืืืงืื ืืืชืจ ืืืจ ืืืืจืื ืฉืืืงื ืืืชืจ ืืื. ืืฉ ืืคืขืืื ืฉืืืจ ืืฉ ืืื ื ืืก ืงืืื ืฉืืคืฉืจ ืืื ืฃ ืืืชื ืืืคืขืืื ืืชื ื ืื ืกืื ืืชืืื ืืืฉ ืืืืจื ืืื ืฆืจืื ืืืชืจ ืืื.
ืื ืชืืื ืืคืฉืจ ืืืขืช ืืื ืืจืืฉ ืืื ืืฉืื ืื ืงืืืช ืืืชืืื ืืืืืจ ืืช ืืขืกืง ืฉืืชืืื ืืชืงืฆืื ืืืืื ืฉืืื. ืืจืื ืคืขืืื ืืืื ืืื ืืช ืืื ืฉืืืชืจ ื ืืกืื ืชืื ืืื ืขืืืื ืืืฉืจื ืืืื ืื ืืืงืืช ืืืงืื ืืืจ, ืืืฆืืช ืืขืกืง ืืฉืืื ืจืง ืืฉืืืจ ืืฉ ืืื ืืกืคืืง ืืืจืื ืงืืืืื ืืื ืืืชืืื ืืืจืืืื.
ืืืืืื ืฉื ืคืืชืื ืืคืืืงืฆืืืช ืื ืืืื ื ืืืฉืืื ืืคืชื ืืคืืืงืฆืื ืื ืจืืช ืืืืจืื ืคืจืืืื ืืืื ืื ืขืืืจื ืื ืื ืื ืฉืืืืง ืจื ืฉืืืชื ืฉืขืืื - ืืจืง ืื ืขืืืืื ืืช ืืขืืืื ืืืชืืืืื ืืืืืจ ืืืืชื ืืงืืืืช ืฉืืืืขื, ืื ืืื ืื ื ืกืืืื ืืจืื ืืืชืจ ืืืื ืืืืืข ืืจืืื ืืชืื ืืกืืจืช ืืืื ืืืชืงืฆืื ืฉืืืชื ืื ื.
1 419
# ืืจืืข ืขืฆืืช ืืขืฆืืืื ืืชืืืืช ืืืจื
ืืคื ื 11 ืฉื ืื ืขืืืชื ืืช ืืขืืืื ืืฉืืืจ ืืืื ืขื ืืืจ ืืชืื ืช ืืงืื ื ืืืจื ืืื ืืืช ืืคืืืงืฆืืืช ืืืงืืืืช. ืืืืืื ืจืืื ื ืืืืช ืืืจืืช ืขืืืืืช ืืชืืจ ืืื ืฉืื ืื ื ื ืื ื ืืื ืืคืืืงืฆืื. ืืฃ ืืื ืื ืกืืคืจ ืื ื ืืื ืื ืขืืื ืืืฆืืืืช ืื ืื ืฆืจืื ืืขืฉืืช ืืื ืืงืื ืืืืื ืืช. ืืื ืืขืฆืืช ืฉืืืื ืืื ืขืืืจืืช ืื ื ืืืฆืืื ืืืืื ืืขืืจื ืืื-
## ืืชืืืื ืืืงืืืืช
ืืืืจ ืืจืืฉืื ืฉืืชื ืจืืฆืื ืืขืฉืืช ืืฉืคืืชืืื ืขืกืง ืืืฉ ืืื ืืืืื ืื ืืืืจืื ืืืืืช ืืืงืืืืช ืฉืืื ืืืชืช ืืื ืืจื ืืืืืข ืืืืื. ืคื ืื ืืกืคืืง ืืืชืื ืคืืกื ืืคืืืกืืืง ืฉืืืืจ "ืชืจืื ืื ื ืืื ื ืืคืืืงืฆืืืช" ืื ืืืชืงืฉืจ ืืื ืืืืจืื ืืืืงืฉ ืืืืื ืืช. ืื ืืฉื ื ืืื ืืชื ื ืืืืื (ืืื ืื ื ืืืื ื ื ืืืืื), ืื ืื ืื ืฉืืืืง ืจื ืฉืืืชื ืืื ืืืจืื ืืื ืืงืื ืืืืื ืืช ืืขืกืงืื, ืืื ืืืืจ ืืจืืฉืื ืืื ืืช ืื ืืชืงื ืืฉืืื ืื ืขืกืง.
ืืฉืื ื ืืืืจ ืฉืืืืง ืจื ืฉืืืชื ืืืืื ื ืฉืืงืืืืช ืคืืื ืฆืืืืืื ืฉืืื ืฆืจืืืื ืืขืืืจ ืืชืื ืชืืืื ืืคื ื ืฉืื ืืืื ืื ืืฉืื. ืืื ืฉืืืืฆืจ ืืืชืจ ืืงืจ ืื ืืชืืืื ืืืื ืืืชืจ ืืจืื. ืื ืื ืื ืื ื ืจืืฆืื ืืื ืืช ืืืจื ืฉืืื ื ืืคืืืงืฆืืืช ืืืื ื ืจืืฆืื ืืืืฆืจ-
1. ืชืืื ืฉืื ืฉืื ืืืืืื ืืืืืฉืฃ ืืืื ืืงืืืช - ืืืฉื ืืคืืืงืฆืืืช ืืื ืืืืช ืคืฉืืืืช ืืืืคืืืช, ืขืืืฃ ืืืจืืืืืช, ืขืืืฃ ืืฉืืงืื ืื ืืืืจืื ืืืื.
2. ืชืืื ืฉืื ืฉืื ืฉืืืคืฉืื ืืื ืืช ืืคืืืงืฆืื ืืืคืฉืื ืืืืื ืื ืืงืื ืืงืืืช - ืืืจืื ืืกืื ืื ืฉื ืืืืจืื ืืืืจืืืื. ืื ืืื ืืืื ืื ื ืืืจืื "10 ืืขืืืืช ื ืคืืฆืืช ืฉืื ืฉืื ืขืืฉืื ืืฉืืื ืื ืืคืืืงืฆืื", ืื "ืจืฉืืืช 5 ืืืคืืืงืฆืืืช ืืืขืืฆืืืช ืฉื ืืืืืฉ". ืืงืืืช ืืืืจืื ืฆืจืื ืืืื ืืก ืืชืืืช ืืืื. ืืื ืืืจืื ืืื ืืืื ืขืืื ื ืืืชื ืืืชื ืชืฆืืจืื ืืฉืื ืงืฆืช ืืคืืืกืืืง ืืืืื ืืื ืืืืื ืื ืฉืื ืืืคื ืื ืืืชื ืฉืืฆืจืชื.
3. ืชืืื ืฉืื ืฉืื ืฉืืื ืืกื ืืชืืืช ืืืื ืืืื ืื ืืงืื, ืืขืืืจ ืืื ืืืืื ืื ืืชื ืืืกืืื ืขืืืื - ืื ืฉื ืงืจื "ืกืืืจืช ืืกืจืื". ืื ืืฉื ืืคืืืงืฆืืืช ืืืืชื ืืื ื ืกืืืจื ืฉืืืืจืช "ืืื ืืื ืื ืืคืืืงืฆืื ืืขืกืง ืฉืื" ืืืืจืืืช ื 10-15 ืืืจืืืื, ืื ืืื ืืืกื ืืกืคืงื ืฉืื ื ืฉื ืืชืืืื. ืืช ืืืืจืืืื ืืืื ืื ืื ื ืฉืืืืื ืืืงืื ืื ืืื ืืืืื ืืื ืืืจืื ืืกืชืืื ืืืฆืขื ืืจืืืฉื ืฉื ืืฉืืจืืช ืฉืื ื.
ืื ืื ืื ืฉืืืืง ืืื ืืืื ืืขืกืง ืฉืืื ืื ืืืื ืคื ืืืช ืืื ืฉืื ืจืืืื ืืื ืืืื ืืก ืืชืื ืืืขืื ืฉื ืขืฉืืื.
## ืืฆืืขื ืคืืชืจืื ืืืืืง ืืืขืื ืกืคืฆืืคืืช
ืืฉืืชืืืชื ืืช ืืขืกืง ืฉื ืคืืชืื ืืคืืืงืฆืืืช ืืื ืื ืืืื ืืจืืจ ืืจืืฉ - ืืงืื ืืืืข, ืืืงืฉ ืืคืืืงืฆืื ืืื ื ืืืชืื ืืืชื. ืืืื ืืคืืืงืฆืื? ืื ืื ืืฉื ื. ืื ืืืงืื? ืื ืฉืื ืืจืื ืืื. ืืืืื ืืื ืืืืืื? ืขืืฉืื ืืืืืชื - ืื ื ืืืืข ืืืชืื ืืื ืฉืคื ืฉืฆืจืื.
ืืืช ืื ืืจื ืืืงืื ืขืกืง ืฉืขืืื. ืื ื ืชืชื ืืืฃ ืืงืื ืฉืื ืกืืื ืืืืืืช ืืจืฆืืช ืืขืืื ืืืชื. ืืืืฉื ืฉืื ืืืชื "ืืชื ืืืืืื ืืืืืจ ืืื ืืื, ืืื ื ืื ืืื". ืืืื ืื ืขืืื.
ืื ืืืื ืืืืชื ืืชืืื ืืืืฉ ืืืืชื ืืืคืฉ ืืฆืืฆื ืืื ืฉืืืชืจ ืืช ืกืื ืืืขืืืช ืฉืื ื ืคืืชืจ, ืืืืืฆืจ ืงืืื ืื ืคืืชืจืื ืืื ืฉืขืืื ืืฉืืคืฉืจ ืืืชืงืืื ืืื ื. ืืืจ ืื, ืื ืขืื ืืืื ืืื ืืจืฆืื, ืืคืฉืจ ืืื ืืช ืคืืชืจืื ืืช ื ืืกืคืื. ืื ื ืืื ืืืืืืืช ืืขืกืงืื ืืจืื ืืืชืจ ืกืคืฆืืคืืื ืืชืื ืืขืืื ืฉื ืคืืชืื ืืคืืืงืฆืืืช ืฉืืืืชื ืืืื ืืืงืื:
1. ืคืืชืื ืืคืืืงืฆืื ืื ืจืืช ืืืืจืื ืคืจืืืื (ืืืคืฉืจืช ืงืฉืจ ืขื ืชืืืืืื, ืืขืงื ืืืจ ืฉืืขืืจื ืืืช, ื ืืืื ืืืื, ืชืืืืจืืช ืืื'), ืืืชืืืชื ืืื ืืืจื ืคืจืื ืฉืืคืืืฉ. ืืืงืืืืช ืืืืืืื ืฉืืืื ืื ืื ืืืจืื ืคืจืืืื, ืืืื ืื ื ืืืื ืืืฆืืข ืืืืจ ืชืืจืืชื ืืคืืฆ'ืจืื ืฉืืื ืืืฃ ืืื ืืืจ. ืื ืื ืื ืขืืื ืืคืฉืจ ืืืืฉืื ืืื ืกืืช ืืคืชื ืืคืืืงืฆืื ืื ืจืืช ืืงืืื ืืขื ื ืืกืคืื.
2. ืคืืชืื ืกืคืจืืืช ืงืื ืคืชืื ืฉืชืขืืืจ ืืืคืชืื ืืคืืืงืฆืืืช ืืฉืื ืคืืจืกืืืืช ืืืคืืืงืฆืืืช ืฉืืื, ืืืฆืืจืช ืืืื ืฉื ืขืืจื ืืชืฉืืื ืืืงืืืืช ืฉืืฉืชืืฉืื ืืกืคืจืืืช ืืงืื ืืคืชืื. ืื ืืกืคืจืื ืื ืืคืื ืืืกืคืืง ืคืืคืืืจืืช ืืคืฉืจ ืื ืกืืช ืฉืื ืขื ืกืคืจืืืช ืงืื ืคืชืื ืืืจืช.
3. ืคืืชืื ืืื ืืืคืชืืื ืฉืืขืืืจ ืืื ืืืฆืื ืืขืืืช ืืืืื ืืงืื ืฉื ืืคืืืงืฆืืืช ืฉืื ืืืชืืื, ืืืฆืขืช ืคืืชืจืื ืืฉืืื ืฉื ืืืขืืฅ ืืื ืืขืืืจ ืืกืชืื ืืช ืืืืจืื ืฉืืชืืื.
4. ืคืืชืื ืืื No Code ืฉืืืคืฉืจ ืืื ืฉืื ืืื ืืช ืืคืืืงืฆืืืช ืืงืืืช ืขื ืืกืืก ืชืื ืืช ืงืืืืช. ืื ืื ื ืืืืืื ืืืชืืื ืืืื ืฉืืื ื ืืคืืืงืฆืืืช "ืืจืืืก ืืืงืืจ", ืืื ืฉืืฉืชืืฉ ืืืื ืืืื ืืจืืืช ืืืื ืืงืืืืช ืฉืื ืืคืขืืื ืืช ืืคืืืงืฆืืืช ืืจืืืก ืืืืงืืจ, ืืฉืืื ืืื ื ืืืืคืืงืฆืืืช, ืืืฆืืข ืืืฆืขืื ืืืืจืื ืืกืื ืื.
ืคืืชืื ืจืขืืื ืกืคืฆืืคื ืืืืืืืืช ืืขืื ืจืื ืืช ืืฉืืื ืฉืืื ืขื ืืงืืืืช ืคืืื ืฆืืืืืื. ืืืงืื "ืืชื ืืืืืื ืืืืืจ ืื ืืื, ืืื ื ืื ืืื" ืืคืฉืจ ืืืืื "ืื ืืชื ืืื ืขื ืกืื ืขืืืื ืขื ืขืฉืจืืช ืืืจืื ืคืจืืืื ืฉืืืจ ื ืขืืจืื ืื ืืื ืืชืงืฉืจ ืขื ืืชืืืืืื ืฉืืื. ืืื ืืืืืืืช ืฉืืขืืจื ืื ืืืจืืืื ืืืชืจ ืืกืฃ ืืชืืจ ืืืจื ืคืจืื ืืืื ืืกืืืืช ืืืืื ืืืื ืื ืืืฉืชืืฉ ืืืื".
## ืืงืืคื ืืช ืขืฆืืื ืืื ืฉืื ืืงืฆืืขืืื
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 ืืืืงื ืืช ืื ืืขื ืคืื ืืืื ืืขื ืฃ ืืจืืฉื.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/1 419
# ืืืจืืฉื ืฉืื ืืืชืืื ืืืืืขืช ืืืจืืฉืื
ืื ืืจืงืจ ืขืฉื ืืชืืื ืืชืืช ืกืคืืืฉื ืขื ืื ืืืืจืช ืื ืืจืืฉื ืืืืืขืืช ืืจืืฉืื, ืืื ืืืจืืฉื ืืื ืืฉืืื ืืืื ืื ืืืคืืขื ืืจืฉืืื ืฉืืื, ืืื ืื ืืืคืืขื ืืจืื ืืืืขืืช ืืืจืืฉืื. ืืืจืืฉื ืืื-
"ืืืื ืื ืืืื ื ืืช ืืกืืคืืจ"
ืืืืื ืืช ืืกืืคืืจ ืื ืืืืจ ืฉืืช ืืืืื ืืจืืืช ืงืื ืฉื ืืขืจืืช ืืืืืื:
1. ืื ืืืืจืืช ืฉื ืืงืื ืืื
2. ืื ืืืืืืฆืื ืฉืืงืื ืฆืจืื ืืืชืืืื ืืืชื
3. ืื ืืื ืืืืืืฆืื ืฉื ืื ืฉืืชืื ืืช ืืงืื
4. ืืืื ืืืงืื ืฉื ืืืืื ื ืืื ืฉื ืืืขืืช
5. ืื ืืืืืืช ืืืืืช ืืืขืืืช ืืงืื ืืื ืืขืชืื ืืงืจืื
6. ืืืื ืืขืืืช ืกืืืจ ืืื ืื ืฉืืืื ืืงืื ืืื ืืขืชืื ืืืืชืจ ืจืืืง
7. ืืืืื ืฉืื ืืืื ืืขืืื ืืงืื ืืื ื ืืชื, ืืืืืจ ืืืืื ืืจืืฉืืช ืืืฉืืช ืืืื ืงื ืืืชืืื ืืช ืืงืื
8. ืืืื ืฉืื ืืืื ืืขืืื ืื ืืืืจืื ืืงืจืืช, ืืืืืจ ืืืืื ืืจืืฉืืช ืืืฉืืช ืืืื ืืืื ืงืฉื ืืืชืืื ืืช ืืงืื
ืื ืฉืื ืฉืืืืขืื ืืงืจืื ืงืื ืืืืืื ืืช ืืกืืคืืจ ืฉืื ืืฆืืืื ืืจืื ืืืชืจ ืืงืืืช ืืชืืืง ืืืฉืคืจ ืืขืจืืช ืืื ืืฉืืืจ ืืืชื. ืืจื ืืืื ืืืชืืื ืขื ืื ืืื ืืขื ืืช ืขื 8 ืืฉืืืืช ืืจืฉืืื ืืื ืขื ืงืื ืฉืืชื ืืชืืชื. ืืืจื ืืืื ืืืชืื ืงืื ืืืชืจ ืืืืืง ืืื ืื ืกืืช ืืขื ืืช ืขื ืื 8 ืืฉืืืืช ืืคื ื ืฉืืชืืืืื ืืืชืื ืืช ืืงืื.
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
