ToCode
Kanalga Telegramโda oโtish
ืืืคืื ืงืฆืจืื ืืืชืื ืชืื ืืืช ืื ืื ืคืจืง
Ko'proq ko'rsatish1 419
Obunachilar
-124 soatlar
Ma'lumot yo'q7 kunlar
-230 kunlar
Postlar arxiv
1 419
# ืืืื ืืืืชื: ืืื ืืืื ืชืืื ืืช ืืงืื ืืืื ืจ ืืืจ
ืืืงืจ ืื ืื ืื ืื ืืื ืฉืงื ืืฉืืื ืฉืืขืฆื ืื ืืชืืื ืืืช ืฉืจืฆืืช ืืชืื ืงืื ืืืื ืจืื ืจืฆืืช ืขื ืืืืฉื ืฉืื ืืื ืขื ืืืื ืืืื ื ืืืจืืืืืืช. ืืืกืืื ืืืืช ืื ืืื ืืขืื ืืืื ืชืืื ืืช ืืื ืงืื ืืืื ืจืื, ืืฉื gdb ืจืฅ ืืงืื ืืืื ืจ ืืื ืืืชืืื ืืช ืืงืื ืืืื ืจ ืืืจ. ืืื ื ืขืฉื ืืช ืืืืืืจ:
## ืืคืขืืช ืงืื ืืืื ืจ ืขื ืชืืื ืืช ืคืฉืืื
ืืชืืชื ืชืืื ืืช c ืืืื ืคืฉืืื ืฉืืชืื ืืืืื ืืื ืกืืคืืช ืืืคืืกื ืื ืคืขื ืืืืขื ืืืกื ืืื ืืืงืืช ืฉื ืื ืืืฉืื. ืื ืืงืื:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char **argv) {
int c = 0;
while(1) {
sleep(1);
printf("Keep going..., %d seconds passed\n", c);
}
}
ืืฉ ืฉื ืืฉืชื ื ืฉืจืฆืืชื ืืืขืืืช ืืืชื ื-1 ืืื ืืืืจืฆืื, ืืื ืฉืืืชื ืืืชืื ืืช ืืฉืืจื ืืื ืฉืืืื ืืื ืืชืืื ืืช. ืืช ืืชืืื ืืช ืื ืืชื ื gcc ืขื ืกืืื ืืืื ืืืฆืจืชื ืืื ื ืืืื' ื ืืื ืืคืฆื ืขื ื Dockerfile ืืื:
FROM gcc:4.9 as build
COPY . /usr/src/myapp
WORKDIR /usr/src/myapp
RUN gcc -g -o myapp buggy.c
CMD ["./myapp"]
FROM gcr.io/distroless/nodejs:14
WORKDIR /app
COPY --from=build --chown=nonroot:nonroot /usr/src/myapp/myapp .
USER nonroot
ENTRYPOINT ["./myapp"]
ืคืืจืกืืชื ืืืชื ืืืจ ืืืืงืจ ืืื ืื ืืชื ืืืืืื ืื ืืืจืืฅ ืงืื ืืืื ืจ ืืืืืื' ืืื ืขื:
docker run -it ynonp/buggy-demo
## ืืืืืจ gdb ืืงืื ืืืื ืจ ืจืฅ
ืื ื ืืคืขืื ืงืื ืืืื ืจ ืืืืืื' ืืื ืฉืกืืคืจืชื ืืื ืขื:
docker run --name myapp -it ynonp/buggy-demo
ืืขืืฉืื ืจืืฆื ืืืืจ ืืืื gdb ืืื ืืืื ืืืชื. ืืืคืชื ืืื ืืคืงืืื ืืืื ืืืคืขืื ืงืื ืืืื ืจ ืืืืื:
docker run --cap-add=sys_admin --cap-add=sys_ptrace --security-opt seccomp=unconfined --pid container:myapp -it ubuntu
ืงืื ืืืื ืจ ืืืืืื ืฉืืืคืขื ืจืืื ืืช ืืืชื ืชืืืืืื ืฉืืฉ ืืงืื ืืืื ืจ myapp, ืืื ืืฉ ืื ืืืื' ืฉืื ื, ืืื ืจืฅ ืืืืื' ืฉื ubuntu. ืืืื ืื ืื ื ืืืื ืืืชืงืื ืขืืื ืืืื ืืื gdb. ืืชืื ืงืื ืืืื ืจ ืืืืืื ืื ื ืืจืืฅ:
apt-get update
apt-get install gdb
ืขืืฉืื ืฆืจืื ืืืฆืื ืืช ืงืืืฅ ืืชืืื ืืช myapp, ืืืช ืืงืื ืืืงืืจื buggy.c ืื gdb ืฆืจืื ืืช ืฉื ืืื ืืฉืืื ืืขืืื ืืื. ืืืื ืงืืืฅ ืืืงืืจ ืืืื ืฉืื ื ืืฆืจืชื ืืืชื ืื ื ืืืื ืคืฉืื ืืืขืชืืง ืืช ืืงืื ืืงืื ืืืื ืจ ืืืืืื ืืืฉืืืจ ืืืชื ืืฉื /tmp/buggy.c. ืืืื ืืงืืืฅ myapp ืืื ืืกืชืชืจ ืืืขืจืืช ืืงืืฆืื ืฉื ืืงืื ืืืื ืจ myapp. ืืฉืืื ืืืืืข ืืืื ืื ื ืืฉืชืืฉ ืืชืืงืื /proc ืืืคืขืื ืืชืื ืงืื ืืืื ืจ ืืืืืื:
cp /proc/1/root/app/myapp /tmp
ืื ืชืื /proc/1/root ืืื ืืื ืง ืกืืืืืื ืืฉืืจืฉ ืขืฅ ืืขืจืืช ืืงืืฆืื ืฉื ืชืืืื ืืกืคืจ 1. ืืชืื ืืงืื ืืืื ืจ ืชืืืื ืืกืคืจ 1 ืืื ืืืคืืืงืฆืื ืฉืืงืื ืืืื ืจ ืืจืืฅ, ืืืืื ืฉืงืื ืืืื ืจ ืืืืืื ืืืืง ืืช ืืกืคืจื ืืชืืืืืื ืขื ืืงืื ืืืื ืจ myapp ืื ืืชืืืื ืืืื myapp ืืืืืจ ืืชืืืื ืืืชื ืื ื ืจืืฆื ืืืื. ืกื ืืื ืืงืื ืืืื ืจ ืืืืืื ืืฉ ืื ืขืืฉืื ืืชืืงืืืช /tmp ืื ืืช ืืงืืืฅ myapp ืฉืืื ืงืืืฅ ืืชืืื ืืช ืฉืืจืฆืชื ืืื ืืช ืงืืืฅ ืืืงืืจ ืฉืื buggy.c.
ืขื ืฉื ื ืืื ืืคืฉืจ ืืืคืขืื ืืช gdb ืืืืชืืืจ ืืชืืืื ืืกืคืจ 1 ืฉืืจืืข ืจืฅ:
gdb ./myapp 1
ืืืจื ืื ืื ื ื ืืืช ืืชืื gdb, ืืืื ืืืืืฅ l ืืื ืืจืืืช ืืช ืืงืื, next ืืื ืืืจืืฅ ืืช ืืฉืืจื ืืืื ื print ืืื ืืืืคืืก ืชืืื ืฉื ืืฉืชื ืื.
## ื .ื. ืืื ืื ืืืืื ืก ืืงืื ืืืื ืจ ืืงืืื?
ืื ืงืืื ืืืืช ืจืืื ืืื ืืืื ืืืฉืืื ืฉืืื ืืคืฉืจ ืคืฉืื ืืืืื ืก ืืงืื ืืืื ืจ myapp ืืืืจืืฅ ืขืืื gdb, ืืฉืื ืืื:
docker exec -it myapp /bin/bash
ืืชืฉืืื ืฉืืคืืืช ืืืืืื ืืื ืื ืคืฉืื ืื ืขืืื, ืืืื ืื ืืืืืื. ืืงืื ืืืื ืจ myapp ืืื ืงืื ืืืื ืจ "ืืื ืืคืฆื", ืื ืืืืจ ืฉืืืืื' ืฉืืื ืืจืืฅ ืืื shell, ืืื ืื ืื ืืืืืืช, ืืื ืืช gdb ืืืื ืืจื ืงืื ืืืชืงืื ืืื. ืืจืื ืคืขืืื ืืฉืื ืื ื ืืื ืื ืืืื'ืื ืืคืจืืืงืฉื ืื ืื ื ืื ืงืื ืืืชื ืืืื ืฉืืืชืจ ืืืจืื ืื ืืื ืื ืืืฉืืืจ ืืงืื ืืืืจื ืืืืื ืืื ืืฉืืื ืฉืืื ืคืฉืื ืืขืืื ืืืจ ืืืชืจ. ืืฉืงืื ืืืื ืจ ืืืขื ืืืขื ืจืืง, ืืืืืจ ืงืื ืืืื ืจ ื ืืกืฃ ืืืืืื ืืจืื ืืื ืืืจื ืืงืื ืืืืชืจ ืืืืืข ืื ืชืื ืื ืืืืืืง ืื ืฉืืืจ.
ืื ืืขืืืื ืขื ืืืื ืืืจืื (ืื C), ืื ืงืื ืืืื ืจ ืืืขื ืจืืง ืืืคืืื ืื ืืืื Shell, ืชืืื ืืคืฉืจ ืืืฉืชืืฉ ืืืืชื ืืจืืง ืืืืืจ ืงืื ืืืื ืจ ืืืืื, ืืืืืืข ืืืขืจืืช ืืงืืฆืื ืฉื ืงืื ืืืื ืจ ืืืขื ืืจื ืชืืงืืืช /proc ืืฉื ืืืงืืจ ืื ืืืขืื.1 419
# ืืืืจืืช: ืกืงืจืืคืืื ืืคืจืืืงืฉื
ืืืื ืืืืชื ืฉืื ืฉืื ืืืืืื ืืืขืชืืง ืงืืขื ืงืื ืืืืืืืง ืืืชื ืืคืจืืืงืฉื, ืื ืืฉืืชืืฆืื ืขืืืื ืืฉืืืจ ืืื ืืช ืืืขืจืืช. ื Issue ืฉื ืคืชื ืขื ืืืืจืกื ืืืืฉื ืฉื ืืงืกืืืก ืื ืื ื ืืืฆืืื ืืื ืคื ืื ืื:
> I am experiencing this breaking change, my production app is broken and unusable to my clients.
> Me three. Prod is down. Got woken up here by confused users
> It affected my app in production too, axios is not a function.
> Confirmed as breaking production applications on my end as well. This is a big miss in testing coverage for a library like this.
> Also having multiple broken production apps here.
> Experiencing issues as well on production apps. Error: "axios is not a function"
ืืื ืชื ืืช ืืืกืจ, ืืคืฉืจ ืืืืื ืก ืืงืืฉืืจ ืืืฆืื ืขืื.
ืื ืื ืืงืกืืืก ืฉืืจืจื ืืืจืกื ืืืฉื ืฉืื ืชืืืืช ืืืืจื. ืื ืืืื ืืงืจืืช ืขื ืื ืกืคืจืื ืฉื ืขืืื ืืืชื. ืื ืฉืืืืื ืืงืจืืกืช ืืืืืื ื ืืกืืคืืจ ืฉื ืืงืกืืืก, ืืคืืืช ืืื ืฉืืื ืชื ืืงืจืืืช ื Issue, ืืื ืืื ืงืื ื"ืืืจืกื ืืืืฉื ืืืืชืจ" ืืจื unpkg:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
ืงืืคื-ืคืืืกื ืฉื ืื ืืงืืืฅ html ืืฉืืืชื ืืื ื ืขื ืฉืืงืกืืืก ืืขืืื ืืืจืกื ืืืฉื ืขื Breaking Changes. ืืื ืฉืืืื ืคื ืืืืืื ืฉืงืฉื ืืืื ืืขืืืช ืขื ืืขืืืช ืืืื ืืืืืงืืช, ืื ืืื ืขืืื ืืงืฉื ืืกืืืฅ ืืฆื ืฉ unpkg ืฉืืืืื ืื ื ืงืืืฅ ืื ื ืืื.
ืืคื ืืื ืฉื ืืคืชืืื ืืขืืืื ืืคื Best Practices. ืืงืคืื ืขื ืืกืคืจ ืืืจืกื ืืชืืืช script ืืืืคืืื integrity ืืืชื ืืื ืขืช ืืช ืื ืืืขืืืช. ืืืชืืืช ืงืื, ืืืืจื ืฉืื ื ืืื ื ืืืืฆืจ ืงืื "ืขืืื" ืืื ืงืื "ืืฆืื".1 419
# ืื ืืคืจืืืงื ืงืื
ืื ืืคืจืืืงื ืฆื ืงืื ืืคืฉืจ ืืืฉืชืืฉ ื git ืืื ืืขืงืื ืืืจื ืฉืื ืืืื ืืงืืฆืื ืืืืจื ืืื. ืืคืืื ืฉืจืื ืืกืืืืืื ืฉืื ืชืฆืืจืื ืืืฉืืืช ืืืืกืืืจืื.
ืื ืืคืจืืืงื ืฆื ืงืื ืืคืฉืจ ืืืฉืชืืฉ ื Github Actions ืืื ืืืขืืืช ืืืจืกื ืืคืจืืืงืฉื, ืืคืืื ืฉืืชื ืืืืขืื ืืืคืขืื rsync ืืื ืืื ืืืงื ืืื ืืืืืง ืฉืชื ืืงืืช ืืื ืืืจืกื.
ืื ืืคืจืืืงื ืฆื ืงืื ืืคืฉืจ ืืืฉืชืืฉ ืืงืืืฅ ืกืืืืช ืืืฆืคื ืืืงืื ืืฉืืืจ ืืคืชืืืช API ืืชืื ืงืื ืืืืฉืื. ืืคืืื ืฉืืื ืืืืช ืกืื ื ืฉืืคืจืฆื ืืื ืืืขืจืืช ืื ืืชื ืืืืืืื ืฉืขืืืืื ืขื ืืงืื ืืืฉ ืฉื ืืื ืืืฆื ืืฉืชืืฉืื.
ืื ืคืจืืืงื ืฆื ืงืื ืืคืฉืจ ืืืขืืืช ืืคืืืคืืจืืช ืขื ื ืืื AWS ืืืืฉืชืืฉ ืืืืื ืฉืืืืืื ืืืืื. ืืคืืื ืฉืืืื ืื ื ืืจืื ืืืชืจ ืืื ืืืฉืชืืฉ ื VPS ืฉื 5$ ืืืืืฉ.
ืื ืืื ืืขืฆื ืืืชืืืฅ?
ืืืฉืงืขื ืืชืฉืชืืืช ืืืืจืืื ืขืืืื ืืคืจืืืงื ืฆื ืงืื ืืื ืืืืื ืืช ืืืชืจืื ืืขืืืื ื ืืื ื ืืืืืืจ ืืช ืืืืื ืฉืืืื ื ืขืืืื ืืืื ืื ืืชืคืงืืื ืืขืืื ืืืืืชื. ืืจืืจ ืฉืืืืชื ืฉืื ืืืืื ืืื ืฉืื ืคืจืืืงื ืฆื ืฉืชืืชืื ืืขืื ืืืืืืจ ืืืจืืืื ืืืืืื ืื, ืืื ืืคืืืช ืืื ืืกืืื ืฉืื ืื ืื ืืืฉ ืงืืจื. ืื ืฉืื ืงืืจื ืืื ืฉืืื ืคืจืืืงื ืฆื ืฉืื ืื ื ืืืชืืื ืื ืื ื ืืงืืืื ื ืืกืืื, ืืจืืื ืขืืืื, ืืืืจืืช ืขื ืืื ืืืืืืืช ืืืฉืืช ืื ืงืืืช ืคืชืืื ืืืื ืืืชืจ ืืคืจืืืงื ืืื. ืืื ืืืช ืืืืจื ืื ืืืืืฅ ืืืชืื ื ืืื ืจืง ืืงืจื ืืชืื ืืฉื ืืืชืจ ืืืจ.
1 419
# ืืืชืงืื ืืื ืืืื
ืื ืืชื ืชืงืืขืื ืืขืืืื ืขื ืื-ืืืื ืื ืื ืืืืื ืืื ืฉืื ืืืคืฉืจืื ืืืืื, ืืขืืืื ืขื ืืืฆืจ ืืืืฉื, ืืขืืืื ืขื ืืื ืืืืืื ืฉืืืจ ืืฃ ืืื ืื ืฆืจืื, ืืขืืืื ืขื ืฉืืืืช ืืืืฉื ืืช - ืืฉ ืกืืืื ืืื ืฉืืชื ืงืืื ืืืืงืจ ืื ืืกืืืืื ืืช ืืืื ืืชืืืฉื ืฉืื ืืืื ืืืฉืชื ืืช.
ืื ื ืื ืืฉืื ืืช ืืชืืืฉื ืืฉืืืืืชื ืงืืจืกืื ื perl, ืืฉืื ืฉื ื ืืื ืื ืคืืืช ืืคืืืช ืืงืืืืช, ืืืฉืงืืจืกืื ืืืืขืืฆืื ืืชืืืื ืืืชืืื. ืืช ืืืงืืืืช ืฉืืงืื ืงืืจืก ืื ืืืขืืฅ perl ืจืง ืืฉืืื ืฉืืขืืืจ ืืื ืืืืืจ ืืช ืืงืื ืืฉืคื ืืืจืช.
ืืืงืื ืืืจ ืืขื ืืจืื ืืืชืจ ืืกืฃ ืื ืืื ืกืืคื ืืืืืค ืฉื ืืกื ืืช ืืืืื ื ืืืคืืจืกืืช:
> Nokia, our platform is burning.
ืืฉืื ืื ื ื ืืฆืืื ืขื ืคืืืคืืจืื ืืืขืจืช, ืืฉืื ืื ื ืจืืืื ืืื ืื ืฉื ื ืืืืืื ืืช ืฉืื ื ืืืืืื ืืื ืื ื ื ืืืื ืคืืืช ืจืืืื ืืื ืืฉืืง ืืขืืืื, ืืืืงื ืืชืื ืืคืื ืืืื ืืืืฅ ืื ืืื ื ืืชื ืืืืืืช ืืฉืื ืื, ืืืฉื "ืขืืฉืื ืื ืื ืืื ืืื ืืขืืื ืื ืืืืืง ืืืื", ืื "ืื ืืืคืช ืื ืืืืฉืืจ ืื ืขืื ืืฉืืืื ืืื", ืื ืืคืืื "ืื ืงืืืื ืขืืืื ืื ืืชื, ืืื ืืกืชืืจ ืืื ืฉืืกืชืืจืชื ืขื ืขืืฉืื".
ืืืขืื ืืืืืื ืืื ืฉืืืืฉืืจ ืืืงืื ืื ืืืฉ ืขืืืจ, ืืื ืื ื ืขืืืื ืื ื ืืฆืืื ืืืงืื ืฉืืืคืฉืจ ืืฆืืื ืื ืืืืฉืื ืืืื. ืืฃ ืืื ืื ืืงืื ืืืชื ืืืืื ืขื ืื ืืกืืื ืืื ืจืืืื ืื ืืืืืืื ืืช ืืืืืืื.
ืืืื ืืคืืชืจืื ืืคืฉืื ืื ืงืฉื ืืืืฉืื - ืืืืื ืืืคื ืฉืื ืื ื ื ืืฆืืื. ืื ืืืืจ:
1. ืืืฆืื ืืจืืื ืืืื ืืก ืฉืืืืช ืขืืืื ืืชืงืืืืช ืืงืื ืื ืืืื, ืื ืืกืชืจ ืืื ืื ืืืืกืื ืื ืืจืืฆืื ืืื (ืงื ืช'ืืืคืกืื ืคืืชื ืืช ืืื ืืงืก ืืืจืชืฃ ืืืืจื ืฉืืคืจืืืงื ืืืื). ืืืงืจื ืฉืื ื ืืคืฉืจ ืืืืืื ืฉืขื ืื ืคืืฆ'ืจ ื ืืกืืฃ ืื ืืืืงืืช ืืืืืืืืืช ืื ืชืืขืื ืืื, ืืคืฉืจ ืื ืื ืืช ืืฉืื ืืืื ืฉืื ื ืขื ืืืืจ ืืื ืคืจืื, ืืคืฉืจ ืืืชืื ืืืืืืฆืืืช ืื ืื ืื ืืืงืฉื ืืื.
2. ืืืืื, ืื (ืืืืืืื) ืืืจืื ืฉืื ืงืฉืืจืื ืืขืืืื.
3. ืืฉืื ืื ืืืืจืื ืฉืืชื ืื ืืืืืื ืืขืืืื ืืืขืืื ืขื ืืืืฉืจ ืฉืื ื ืืืื ืืื. ืืื ืฉืื ืื ื ืืืชืจ ืืชืืืืื ืืืขืืืื, ืืืื ืฉืื, ืืืืื ืืืืืื ืื ืืื ืืืจ ืืืจ ืฉืงืฉืืจ ืืืืฆืจ, ืื ืืฉ ืื ื ืืืชืจ ืจืฆืื ืืื ืจืืื ืจืืฉืืช ืืฉื ืืช.
ืืืืจื ื"ืืืืื ืืืคื ืฉืื ืื ื ื ืืฆืืื" ืืื ืื ืืืชืืื ืืื ืืขืฉืืช ืืืจืื ืืืฉืื, ืืื ืืืฆืืจ ืืช ืืืจืื ืฉืื ื ืืื ืืืงืืจ ืืืืืื ืขื ืฉื ืืื ืื ืงืืืช ืืืืื ืืืื ืืืชืจ.
ืืกืืคืืจ ืฉืื ืขื perl ืืกืืื ืืื ืืื ืืืื ืืืชืืงื ืืืืชื ืืงืืืืช ืฉืืืืงื ืจืฆื ืืืจืื ื perl. ืืื ืืคืฉืจ ืืืฆืืจ ืงืืจืกืื ืกืคืฆืืคืืื ืฉื "ืคืืืชืื ืืืชืื ืชื ืคืจื", ืืื ืืช ืกืืืจืืจืื ืืกืคืจืืืช ืชืจืืื ืืืืืช ืืืืืื ืืื ืขื ืืืงืืืืช ืืืงืื ืฉืื ืืืืชื ืืื ืืขืฉืืช ืืช ืืืขืืจ ืืื ืขื ืืืงืืืืช.
ืืื ืืฉ ืกืืืื ืืื ืฉืื ืืืื ืขื ืืฉืืื ืืืจืื - ืืชืืืช ืืืืืืฆืื ืืื ืขื ืืฉืืื ืื-ืืืื ืื ืืืืื ืงืฆืจ; ืืืงืจ ืืืืืื ืืืงืืื ืืื ืฉืื ืืืชื ืจืื ืืืื ืืื. ืืื ืืฉืื ืืืืืจ ืฉืืจืื ืืงืืืืช ืืขืืืื ืืฉ ืืื ืืจืื ืืืชืจ ืืืคืฉ ืคืขืืื ืืื ืฉืืชื ืืืืืื ืื, ืืืืืืื ืืืงืืืืช ืขืืืื ืืืืฉื ืื ืฉืืืืขืื ืฉืืื ืืื ืืื ืืืืืก.
ืืคืฉืจ ืืืชืงืื ืืื ืืืื. ืืฉืืื ืืืชืืืฅ ืืฉืืื ืื, ืื ืืืืืจื ืืืื ืงืฉื ืืืชืจ.
1 419
ืืืงืจ ืืื ืืื ืื ืฉืืชืืจื.ืช/ืคืกืคืก.ื/ืฉืื.ื
ืืขืื ืขืฉืจ ืืงืืช ื ืคืืฉืื ืืืื ืืืืื ืขื GraphQL
ืืคืฉืจ ืขืืืื ืืืฆืืจืฃ ืืงืืฉืืจ ืืื:
https://us06web.zoom.us/j/83970209603?pwd=bVZPOCtEaHplVGtzczVWSW5UVk9jZz09
1 419
# ืืกืชืืืืช ืงืืืื ืืืืืืืื ืจืืืืืจืืื
ืฉืคืช Rust ืื ืืืืืช ืชืืืื ืืืื ืืช ืืืืืืืื ืจืืืืืจืืื, ืืืืงืื ืื ืืฉ ืกืคืจืืืช ืืจืืื (crate) ืืฉื regex ืฉืืืืจ ืืชืช ืืขื ื. ืืฉืคื ืืื ืืชืืขืื ืืคืชืื ืฉื ืืกืคืจืื ืืื ืชืืคืก ืืช ืืขืื:
This crate provides a library for parsing, compiling, and executing regular expressions. Its syntax is similar to Perl-style regular expressions, but lacks a few features like look around and backreferences.
ืื ืื ืืืชื look around features ืืืืื ืืืืืช ืขื ืื ืืืกืืคืื ืืืืืืืื ืจืืืืืจืืื? ืืืื ื ืืื.
## ืืชืืจ ืคืจื ืืฉืืืขื 185
ืืืชืืจ ืืคืจื ืืฉืืืขื ืืืืื ืืฆืืข ืืช ืฉื ื ืืชืจืืืืื ืืืืื ืืืืื ืืคื ืืืื ื:
1. ื ืชืื ืงืื ืฉื ืจืื ืืื ืืชืืืช Mac ืืคืืจืื abc1.20f1.345a; ืืคืื ืืืชื ืืคืืจืื ab:c1:20:f1:34:5a.
2. ื ืชืื ืงืื ืฉื ืจืื ืืื ืืืจืืืช ืืงืกื ืขื ืชืืื ืืคืจืื ืืื ืืืง ืืืืืชืืืช (ืืืืืื ืืืืืช ืืื ืืงืื), ืืืืืื 123.abc.420. ืืคืื ืืช 4 ืืืืชืืืช ืืจืืฉืื ืืช ื x-ืื.
ืืฉ ืืืืืื ืืจืืื ืืคืชืืจ ืื ืกืขืืฃ ืืืชื ืืืืืื ืืงืคืืฅ ืืืฃ ืืืชืืจ ืืืืืืฉ ืคืืชืจืื ืืื ืฉืคื ืฉืชืจืฆื. ืื ื ืืกืชืคืง ืืกืขืืฃ ืืจืืฉืื ืืืคืืชืจืื ืืืืฆืขืืช ืืืืื ืจืืืืืจื ืืื ืืืืื ืขื ืืกืชืืืืช ืงืืืื ืืืืืืืื ืจืืืืืจืืื.
## ืืกืชืืืืช ืงืืืื ืืืืืืืื ืจืืืืืจืืื
ืืืืง ืืจืืฉืื ืื ืื ื ืจืืฆืื ืืฉื ืืช ืืช ืืคืืจืื ืฉื ืืชืืืช ืืง ืืืืืกืืฃ ื ืงืืืืชืืื ืืื ืื ืฉืชื ืกืคืจืืช. ืืืืง ืืงื ืืื ืืืืจืื ืืช ืื ืงืืืืช:
echo '1ac2.34f0.b1c2' | perl -pe 's/[^a-z0-9]//g'
1ac234f0b1c2
ืืืฉ ืื ืื ืจืขืืื ืืื ืืืืกืืฃ ื ืงืืืืชืืื ืืื ืื ืฉื ื ืชืืืื:
echo '1ac2.34f0.b1c2' | perl -pe 's/[^a-z0-9]//g' | perl -pe 's/(..)/$1:/g'
ืืื ืืฉ ืืขืื ืขื ืืคืืชืจืื ืืื. ืื ื ืจืื ืืคืื:
1a:c2:34:f0:b1:c2:
ืืืขื ืื ืฉืจืฆืืชื, ืืืื ืื ืงืืืืชืืื ืืกืืฃ. ืืขืฆื ืืืืชื ืจืืฆื ืืขืืื ืืช ืืืืืื ืืจืืืืืจื ืืืืืื "ืชืืืืฃ ืื ืฉื ื ืชืืืื ืืืืชื ืฉื ื ืชืืืื ืขื ื ืงืืืืชืืื ืืืจื, ืืื ืจืง ืื ืื ืื ืืืื ืืืืจืื" ืื ืื ืืกืื ืืืจ "ืชืืืืฃ ืื ืฉื ื ืชืืืื ืฉืืืจืืื ืืฉ ืขืื ืชื ืืืืชื ืฉื ื ืชืืืื ืขื ื ืงืืืืชืืื ืืืจื".
ืืืืืื "ืฉืืืจืืื ืืฉ ืขืื ืชื" ื ืงืจืืืช Positive Look Ahead ืืืืืืื ืจืืืืืจื ืืืชืืื ืืช ืื ืขื ืกืืืจืืื ืขืืืืื ืืืชืืื ืกืืื ืฉืืื, ืกืืื ืฉืืื ืืืืจืื ืื ืฉืจืืฆืื ืืืฆืื. ืืื ืืฉืืื ืืืืืช ืฉื ื ืชืืืื ืฉืืืจืืื ืืฉ ืขืื ืชื ืื ื ืืคืขืื:
echo '1ac2.34f0.b1c2' | perl -pe 's/[^a-z0-9]//g' | perl -pe 's/(..)(?=.)/$1:/g'
1a:c2:34:f0:b1:c2
ืืื ืืชื ืืืฉืืื ืฉืืคืฉืจ ืืื ืืคืชืืจ ืืช ืื ืขื ืืชืืื ืืืชืจ ืืจืืื (ืฉืืืฉื ืชืืืื ืืืงืื ืฉื ืืื), ืชืฆืืจืื ืืงืืช ืืืืืจ ืืืืฉืื ืฉืื - ืื ืืชืืืชื ืืืจ ืืช ืืชื ืืฉืืืฉื ืื ืืืืืื ืืจืืืืืจื ืื ืืืฆื ืืืชื ืืืชืืื ืืืื. ืืืืืื ืืืจืืช ืื ืื ืขืืื:
echo '1ac2.34f0.b1c2' | perl -pe 's/[^a-z0-9]//g' | perl -pe 's/(..)(.)/$1:$2/g'
1a:c23:4f0:b1c:2
ืืช ืืืืง ืืฉื ื ืื ื ืื ืืืฉื ืฉืืคืฉืจ ืืคืชืืจ ืขื ืืืืืืื ืจืืืืืจืืื ืืืื. ืื ืืฉ ืืื ืจืขืืื ืืฉืื ืฉืชืฉืชืคื ืืชืืืืืช.1 419
# ืืชืืืืืช ืื ืืขืจืื
ืืฉืื ื ืืขืจืื ืฉืืืงื ืื ืฉืืืข ืืกืืื ืคืืฆ'ืจ, ืื ื ืืชืืืื ืฉืื ื ืืืื ืืืืฉืื ืืขืืื ืืคื ื Best Practices ืฉืื ื ืืืืจ ืืืืืง ืืื ืฉืขืืืชื ืขื ืขืืฉืื, ืืืืืฆืจ ืชืืื ื ืืืืชื ืจืื ืฉืืืฆืจืชื ืขื ืขืืฉืื, ืืืืื ืชื ืื ืื ืฉืื ื ืืืืข ืขื ืืคืืฆ'ืจ ืืขื ืืืขืจืืช ืืขืื ืฉืืืข ืืคืืฆ'ืจ ืืืื ืืืื.
ืืฉืื ื ืืชืืืื ืืกืืื ืคืืฆ'ืจ ืชืื ืฉืืืข ืื ื ืืชืืืื ืฉืกืืื ืืคืืฆ'ืจ ืืืชืจ ืืฉืื ืืืืืืืช ืืืืืืช ืฉื ืืืขืจืืช ืื ืืืืช ืืืืืื ืฉืืืืฆืจื, ืื ืืคืืื ืื Spec ืืกืคืฆืืคื ืฉื ืืคืืฆ'ืจ. ืื ืื ื ืืชืืืื ืฉืชืื ืฉืืืข ืืคืฉืจ ืืืื ืืฉืื ืืืืืงืืื ืื ื ืืืืชื ื ืฉืืื ืืกืืื ืืืืชืจ ืขื ืชืชื-ืคืืฆ'ืจืื ืืชืื ืืืชื ืคืืฆ'ืจ ืืืื (ืื ืชืืื ืืขืืื? ืื ืืืื ืืืก ืืืืจื? ืืื ืขืืืื ืืฉืชืืฉืื ืืฆืืจืื ืืขืฉืืช ืืื ืืืฉืชืืฉ ืืคืืฆ'ืจ? ืืื ืื ืืืื ืืื ื ืื?).
ืืื ืคืจืืืงื ืืฉ ืืงืื ืืื ืืืช ืืฉืชื ืืจืื ืืขืืืื ืืจืื ืืคืจืืืงืืื ืืฉืืืื ืืช ืืฉืชืืื. ืื ืืฉืื ืืืืืช ืืจืืจืื ืืื ืืชื ืืชืืืื ืื ืืื ืืฆืืคืืืช ืฉื ืฉืืจ ืืฆืืืช ืืฉืืชืืืืื ืืขืืื ืขื ืคืืฆ'ืจ ืื ืืฉืืื.
1 419
# ืืืค ืืืืคืกืงืจืืคื: ืืืืืคืื if ื switch
ืงืื ืืืืืคืกืงืจืืคื ืืื ืื ืืชืงืืคื, ืืืจืืช ืฉืืื ืื ืฉืื ืืืจ ืื ืืกืืจ:
type AB = "a"|"b";
function test(x: AB): number {
if (x === "a") {
return 1;
} else if (x === "b") {
return 2;
}
}
ืื ืืืื ืง ืืคืืืืืจืืื ื ืื ืืชื ืฆืจืืืื ืืืืื:
https://www.typescriptlang.org/play?#code/C4TwDgpgBAggQlAvFARAQxQHxQIxQbgChCAzAVwDsBjYASwHsKpgIBnYACgA8AuWOAJR8KZALY4IAJygBvQlAVRaJKNySJk6FANnzF+yRGBlJTAIxF9AXygQANq2jLVXdZrw65+g0ZNMATJaKVoRWQA
ืืงื ืืืืื ืืื ืืชืืช ืืืืื number ืืชืืืืจ ืขืจื ืืืืืจ ืฉื ืืคืื ืงืฆืื, ืืืื ืฉืืืืคืกืงืจืืคื ืื ืืฉืืื ืข ืฉืืื ืืืงืจืื ืืคืื ืงืฆืื ืืื ืชืืืืจ ืขืจื ืืกืคืจื. ืืืื ืืืืืช, ืืื ืืืฉื, ืฉืืฃ if ืื ืืชืงืืื ืืืคืื ืงืฆืื ืชืืืืจ undefined.
ืื ืื ื ืืืืขืื ืฉืื ืื ืืืื ืืงืจืืช ืื ืืืงื ื ืืช ืื ืืืคืฉืจืืืืช ืฉื x, ืืืืื ื ืจืืฆืื ืืฉืื ืข ืืื ืื ืืช ืืืืคืกืงืจืืคื. ืืจื ืืืช ืืขืฉืืช ืืช ืื ืืื ืืขืืืจ ื switch:
function test(x: AB): number {
switch(x) {
case "a": return 1;
case "b": return 2;
}
}
ืขื ืื ืืื ืืขืื ืื ืืืืคืกืงืจืืคื ืืืื ืฉื switch ืืืกื ืืช ืื ืืืฆืืื. ืืืชืจ ืืื, ืื ืืขืชืื ืื ื ืืฉื ื ืืช ืืืืจืช ืืืืคืืก AB ืื ืืงืื ืงื ืืืื ืืืืืจืช ืืคืื ืงืฆืื ืืืืข ืฉืฆืจืื ืืชืงื ืืืชื.
ืืืฉืืฆืช ืืชืืงืื ืื ืืคืืืช ืืืืื ืืคืฉืจ ืืืฆืื ืืช ืื:
function test(x: AB): number {
if (x === "a") {
return 1;
} else if (x === "b") {
return 2;
} else {
// never happens
return 0;
}
}
ืฉืืชืงื ืืช ืืืขืื ืืื ืื ืืื ืขืืื ืืฉืื ืื ืขืชืืื ื AB.
ืืื ืืช ืื ืฉืกืืื ืืืืชื ืืขืื:
// @ts-ignore
function test(x: AB): number {
if (x === "a") {
return 1;
} else if (x === "b") {
return 2;
}
}
ืชืืงืื ืืืจืื ืืคืืกื ืฉืขืืื ืืคืขื ืืื ืคืืืช ืืืืืฅ ืืืงืจื ืืืืื ืืื:
function test(x: AB): number {
return {
"a": 1,
"b": 2,
}[x];
}
ืืืจืกื ืื ืชืืจืืง ืฉืืืื ืื ื ืฉื ื ืืช ื Union, ืืื ืืืืกืจืื ืฉืื ืืื ืฉืืื ืืืฉืืช ืืช ืื ืืขืจืืื ืืื ืงืฉืจ ืืขืจื ืฉื x. ืืื ืืืช ืื ืืขืื ืื ืืืื ืงืืืขืื ืืื ืืืงืจื ืืืืื ืื ืชืืื ืื ืืคืฉืจื ืื ืจืฆืื.1 419
# ืคืจืืืื ืก ืืขืจื ืืืงืื
ืืขืืื ืืคืืชืื (ืืื ืจืื ืืขืืืืืช ืืฆืืจืชืืื ื ืืกืคืื), ืืืงืืื ืืื ืืืืง ืืงื ืืขืืืื. ืืงืืฉื ืืื ืืืืื ืื ืฆืจืื ืืืชืื.
ืขื ื ืืฉื ืฉืืืจ ืืืืืชื ืขืฉืจืืช ืคืขืืื ืื ื ืืืื ืืฉืขื ืืืชืื ืืฆืืช ืืขืืื ืืืืขืืืจ ืืืชื ืืฆืืจื ืืขื ืืื ืช ืฉืชืขืืืจ ืืื ืฉืื ืืจืืืช ืืช ืืงืกื ืื ืืฉื ืืชืืกืื ืืื ืืขืืืืช ืืืื ืืืืื ืืงืจ.
ืขื ื ืืฉื ืฉืื ืืืืืชื ืืฃ ืคืขื, ืื ื ืืืื ืืฉืืช ืฉืืืขืืช ืืืชืื ืืฆืืช (ืืืืชื ืืืจื), ืืืืืืข ืืชืืฆืื ืืจืื ืคืืืช ืืืื.
ืืืื ืืกืื ืฉื ืคืจืืืื ืก - ืื ืืชื ืืืืืื ืืืฆืื ืืืจ ืงืื ืฉืืชื ืขืืฉืื ืืืชืจ ืืืจ ืืืืชืจ ืืื ืืื ืืืืจืื (ืื ืขืฉืืชื ืืช ืื ืืืจ ืขืฉืจืืช ืคืขืืื, ืื ืืฉ ืืื ืืืฉืจืื ืืืืจ ืืื, ืื ืืฉืงืขืชื ืืจืื ืืืชืจ ืืื ืฉืื ืืื ืืืจ ืืืื ืืืฉืงืืข ืืืืืืช ืืื ืืืืื ืืขืืื ืืืืจ ืืงืื ืืื), ืืงืืฆืืจ "ืื" ืขืฉืืชื ืืช ืืขืืืื, ืชืืืื ืืืืืจ ืืช ืืชืืฆืื ืืืืืจ ืืืื ืืืจืื ืืืขืืืช ืืฉืขืชืืช ืฉื ืืืชื ืคืจืืืงื.
ืืชืฉืืื ืืื ืื ืคืจ-ืฉืืจืช ืงืื, ืืื ืขืืืจ ืขืฉืจืืช ืื ืืืืช ืืฉืขืืช ืฉืืืฉืงืขื ืืืืืืข ืืืืชื ืืืืื ืืช ืืืชืืืช ืืฉืืจื. ืืืื ืื ืืืคืชื ืืืฆืืื ืืคืจืืืื ืกืจืื - ืืืงืื ืืืคืฉ ืคืจืืืงืืื ืืฉ ืืืคืฉ ืืืจืื ืฉืืชื ืืกืืืืื ืืืืืช ืืืืื ืืื, ืืฉืื ืฉืื ืืืจืื ืจืืฆืื ืื ืงืื ืื ืืืชื ืืืจ ืืืื.
1 419
# ืืืื ื ืืืืืื ืจ: ืืืืจืืช ืขื GraphQL
ืืืืฉืื ืืืืืจื REST ืืืชื ืืืื ืืช ืืคืฉืืืชื - ืคืจืืืืงืื ืฉืืืจืื ืขื ืืขืืจืช State ืืฉืจืช ืืืงืื, ืืืฉืื ืืืื Representational State Transfer. ืืืงืื ื ืื ืก ืืงืืฉืืจ ืฉืืืืฆื State ืืกืืื ืืืืฉืื, ืืืฉืจืช ืืชืืืื ืฉืืื ืืช ืื ืืืืืข ืฉื ืืกืืืื ืืื ืืืจื ืืื ืืืืืืงื JSON.
ืจืกื ืืื (ืืื ืจืื ืขืืื ืขืืืื) ืืืจื ืืจืืืื ืืืชืืืช ืคืจืืืืงืืื ืชืงืฉืืจืช ืืขืืื ื Web, ืืคืืืช ืืื ืฉืืคืกืงื ื ืืืฉืชืืฉ ื SOAP ืืืฉืืื XML-ืื ืืฆื ืืฆื.
ืืื ืืคืฉืืืช ืฉื REST ืืื ืื ืืืขืื ืืื ืืืืื ืืืชื, ืฉืืื ืืืื ืืืืื ืืื ืฉืืืฉืืืื ืืืคืืื ืืืืืื ืืืชืจ ืืืื ืฉืืชืืืงืช ืืืคืจืื ืืื ืฆืืืชื ืืคืืชืื:
1. ืืืขืจืืช ืืฉ ืืกืคืจ ืืงืืืืช (ืืืฉื Web ื Mobile), ืืื ืืื ืืื ืฆืจืื ืืืฆืื ืืืืข ืฉืื ื, ืืืืืจ State-ืื ืฉืื ืื.
2. ืืืืจ ืืื State ืืืืฆื ื REST ืขื ืืื Endpoint ืืฉืจืช, ืื ืื ื ื ืฉืืจืื ืืืืืจ ืืืช ืืฉืชื ืืืฉืืช ืืขืืืชืืืช - ืื ืฉื ืื ื Endpoints ื ืคืจืืื ืืฉืจืช ืืื ืืืฉืื, ืื ืฉืื ืืืฉืื ืืฆืืจื ืืืฉืช ืืืื Endpoints ืืื ืืืฉืื ืืช ืืืืืข ืฉืืื ืฆืจืื.
ืืจืฃ ืงืื ืื ืืื ืืจื ืืืฉื ืืืชืื ืคืจืืืืงืืื ืจืฉืช ืฉืืขืืืจ ืืช ืืื ืืืฉืจืช ืืืงืื, ืืืืคืฉืจ ืืฉืจืช ืืืืฆื "ืืฉืืืื" ืืืืงืื ืืืืืื ืืืื ืืฉืืืื ืืื ืฆืจืื ืืื ืืกื. ืืขืืจืช GraphQL ืืคืฉืจ ืืืชืื ืงืื ืฆื-ืฉืจืช ืืืืฉืืื ืฆื-ืืงืื ืืฆืืจื ืื ืืชืงืช ืืื ืืืฉื ื.
ืืจืฃ ืงืื ืื ืืืคืฉืจ ืืฆืืืชืื ืืืืืื ืืขืืื ืืื ืืื ืืคืืืข ืืืืืืช ืืืืฆืจ ืืืืืฆืืขืื, ืืืื ืืืฆืืจ ืชืืืืืช ืืื ืืฆืืืชืื, ืืื ืืื ืืืืื ืคืืชืจืื ืืืฉืื ืืืขืจืืืช ืฉืืคืืชืืืช ืืืืฉืช Micro Services.
ืืืื ืืืืฉื ืืงืจืื ืืชืืจืื 6/10 ืืฉืขื 10:00 ืฉืขืื ืืฉืจืื ืืขืืืจ ืืืืื ืจ ืฉื ืฉืขื ืขื GraphQL ืื ืืกืคืจ ืขื ืืคืจืืืืงืื ืืืจืื ืืื ืืงืืช ืืืฉืื Node.JS ืฉืื ืื ืืืืฉืช REST ืืืืคืื ืืืชื ื GraphQL ืืืืฆืขืืช ืืชืืืช Schema ื Resolver.
ืืืืืื ืจ ืืขืืืจ ืืืื ืืืชื ืืืืื ืื ืืืืจืฉื ืืืืฆืืจืฃ ืืงืืฉืืจ:
https://www.tocode.co.il/workshops/123
Endi mavjud! Telegram Tadqiqoti 2025 โ yilning asosiy insaytlari 
