uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

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

Ko'proq ko'rsatish
1 417
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kunlar
-430 kunlar
Postlar arxiv
ToCode
1 417
ืœื™ืฆื•ืจ ืื• ืœื‘ื—ื•ืจ? "ื”ื™ ืงืœื•ื“ ืชืŸ ืœื™ ื‘ื‘ืงืฉื” 10 ืจืขื™ื•ื ื•ืช ืœืคื•ืกื˜ื™ื". "ืžืขื•ืœื” ืขื›ืฉื™ื• ืชื›ืชื•ื‘ ืคื•ืกื˜ ืžืœื ืขืœ ื”ืจืขื™ื•ืŸ ื”ืฉืœื™ืฉื™" "ืืคืฉืจ ืคื™ืกืงื” ืฉื ื™ื” ืงืฆืช ื™ื•ืชืจ ืžืคื•ืจื˜ืช?" ... ืื—ืช ื”ื‘ืขื™ื•ืช ืขื ืœื”ืฉืชืžืฉ ื‘ AI ื‘ืœื™ืžื•ื“ื™ื ื”ื™ื ืฉืื ื—ื ื• ืžื”ืžืจื™ื ืขืœ ื”ืขืชื™ื“. ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื‘ืขืชื™ื“ ื‘ื ื™ ืื“ื ืœื ื™ืฆืจื• ื™ื•ืชืจ ื“ื‘ืจื™ื ื—ื“ืฉื™ื ืืœื ืจืง ื™ื‘ื—ืจื• ืžืชื•ืš ืชืคืจื™ื˜. ืฉื”ืชื™ืื•ืจ ืฉื”ืชื—ืœืชื™ ืื™ืชื• ืืช ื”ืคื•ืกื˜ ื™ื”ื™ื” ื‘ื“ื™ื•ืง ื”ืื•ืคืŸ ื‘ื• ืื ืฉื™ื ื™ื•ืฆืจื™ื. ื”ื‘ื™ื ื” ื”ืžืœืื›ื•ืชื™ืช ื”ื™ื•ืฆืจืช, ื›ืฉืžื” ื›ืŸ ื”ื™ื, ืชื”ื™ื” ื”ื›ื— ื”ื™ื•ืฆืจ ืฉืœ ื”ืขื•ืœื. ืื ื—ื ื• ื ืชืžืงื“ ื‘ืžื” ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืœืขืฉื•ืช ื˜ื•ื‘, ื›ืœื•ืžืจ ืœื”ื—ืœื™ื˜ ื•ืœื›ื•ื•ืŸ. ื›ืฉืชืœืžื™ื“ ืžืงื‘ืœ ืคืจื•ื™ืงื˜ ืœื‘ื™ืช ื”ืกืคืจ ืœื›ืชื•ื‘ ืžืฉื—ืง ื‘ืคื™ื™ืชื•ืŸ ื•ืžื—ืœื™ื˜ ืœืชืช ืœ AI ืœืขืฉื•ืช ืืช ืขื‘ื•ื“ืช ื”ื›ืชื™ื‘ื” ื”ื•ื ืžื•ื•ืชืจ ืขืœ ื”"ืœื™ืฆื•ืจ". ื”ืฉืœื‘ ื”ื›ื™ ืงืฉื” ื‘ืœื™ืžื•ื“ ื”ื•ื ื”ืžืขื‘ืจ ืžืฆืคื™ื” ื‘ืกืจื˜ ืœื›ืชื™ื‘ืช ืคื™ืชืจื•ืŸ ืœืชืจื’ื™ืœ. ื•ืœื ืžืฉื ื” ื›ืžื” ื“ื•ื’ืžืื•ืช ืจืื™ืช, ื”ืจื’ืข ื”ื–ื” ืฉืืชื” ื™ื•ืฉื‘ ืžื•ืœ ื“ืฃ ืจื™ืง ื•ืฆืจื™ืš ืœื™ืฆื•ืจ ืจืขื™ื•ืŸ ื—ื“ืฉ ื™ื›ื•ืœ ืœื”ืงืคื™ื. ื•ื›ืŸ ื–ื” ืงืฉื” ื’ื ืœืื ืฉื™ื ืฉืžื‘ื™ื ื™ื ืžืžืฉ ื˜ื•ื‘ ืืช ื”ื—ื•ืžืจ ื•ื™ื•ื›ืœื• ืœื”ื‘ื™ืŸ ืืช ื”ืคื™ืชืจื•ืŸ ืื ื™ืจืื• ืื•ืชื• ื›ืชื•ื‘. "ืœื™ืฆื•ืจ" ื•"ืœื‘ื—ื•ืจ" ื”ืŸ ืฉืชื™ ืžื™ื•ืžื ื•ื™ื•ืช ืฉื•ื ื•ืช. ืื™ืŸ ืœื™ ืชืฉื•ื‘ื•ืช ืขืœ ื”ืฉืืœื•ืช ื”ืืœื” ืื‘ืœ ื”ื™ื™ืชื™ ืจื•ืฆื” ืฉื ืฉืื™ืจ ืื•ืชืŸ ืžื•ืœ ื”ืขื™ื ื™ื™ื ื›ืฉืื ื—ื ื• ืžืฉืœื‘ื™ื AI ื‘ืชื•ื›ื ื™ืช ื”ืœื™ืžื•ื“ื™ื: 1. ื”ืื ืื ื—ื ื• ื—ื•ืฉื‘ื™ื ืฉ"ืœื™ืฆื•ืจ" ื–ื• ืžื™ื•ืžื ื•ืช ื—ืฉื•ื‘ื” ืฉืฉื•ื•ื” ืœืฉืžืจ (ื’ื ืœื‘ื ื™ ืื“ื)? 2. ืื ืžื•ื•ืชืจื™ื ืขืœ "ืœื™ืฆื•ืจ" ื•ื ืฉืืจื™ื ืจืง ืขื "ืœื‘ื—ื•ืจ", ืื™ืš ืฆืจื™ืš ืœืฉื ื•ืช ืืช ื”ืžืฉื™ืžื•ืช ื›ื“ื™ ืฉื”ื‘ื—ื™ืจื” ืชื”ื™ื” ื—ืœืง ื—ืฉื•ื‘ ืžื”ืขื‘ื•ื“ื”? 3. ืžื” ืขื•ืฉื™ื ืขื ื”ื–ืžืŸ ืฉื ื—ืกืš? ืื ื‘ืžืงื•ื ืœืฉื‘ืช ืฉื‘ื•ืข ืขืœ ืคืจื•ื™ืงื˜ ืืคืฉืจ ืœื›ืชื•ื‘ ืืช ืื•ืชื• ืคืจื•ื™ืงื˜ ื‘ืฉืœื•ืฉ ืฉืขื•ืช, ื›ื™ ื”ื—ืœื˜ื ื• ืœื•ื•ืชืจ ืขืœ ืชืจื’ื•ืœ ืžื™ื•ืžื ื•ืช ืžืกื•ื™ืžืช ื‘ืชื”ืœื™ืš, ืื•ืœื™ ื™ืฉ ื“ื‘ืจื™ื ืื—ืจื™ื ืฉื ืจืฆื” ืœืœืžื“ ื‘ื–ืžืŸ ืฉื—ืกื›ื ื•? 4. ื•ืžื” ืื ืื ื—ื ื• ื˜ื•ืขื™ื? ืื•ืœื™ ืฉื•ื•ื” ืœื—ื›ื•ืช ืงืฆืช ืขื ื”ื›ื ืกืช AI ืœืชื•ื›ื ื™ืช ื”ืœื™ืžื•ื“ื™ื ืœืคื—ื•ืช ืขื“ ืฉื ืจืื” ืฉื‘ืืžืช ืื ื—ื ื• ืžื•ื›ื ื™ื ืœื•ื•ืชืจ ืขืœ ืžื™ื•ืžื ื•ืช ื”ื™ืฆื™ืจื”? ืื’ื‘ ืื—ืจื™ ืฉื›ืชื‘ืชื™ ืืช ื”ืคื•ืกื˜ ื ืชืชื™ ืœืงืœื•ื“ ืœื›ืชื•ื‘ ืคื•ืกื˜ ืขืœ ืื•ืชื• ื ื•ืฉื. ื–ื” ืžื” ืฉื”ื•ื ื›ืชื‘: https://claude.ai/public/artifacts/6c4cff06-9fe6-485d-80db-b69704f191b4 ืื•ืœื™ ืฉืœื• ื™ื•ืชืจ ื˜ื•ื‘ ืื ื™ ืœื ื™ื•ื“ืข. ื•ื‘ื›ืœ ื–ืืช ืื ื™ ืฉืžื— ืฉื”ืชืืžืฆืชื™ ืœืืจื’ืŸ ืืช ื”ืžื—ืฉื‘ื•ืช ื•ืœื›ืชื•ื‘ ืœื‘ื“. ื–ืืช ืคื™ืกืงืช ื”ืกื™ื•ื ืฉืœื•: > What's clear is that we cannot afford to let creation become a lost art. In our rush to embrace the convenience of AI tools, we must ensure that students continue to experience the productive struggle and profound satisfaction of bringing something entirely new into the worldโ€”something that began not in an algorithm, but in their own minds. > The blank page may be intimidating, but it remains one of our most powerful teachers. ืื ื™ ืœื ื›ืœ ื›ืš ื‘ื˜ื•ื— ืฉื”ื•ื ืฆื•ื“ืง.

ToCode
1 417
ื›ื–ื” ื ื™ืกื™ืชื™: ื“ื™ืคืœื•ื™ืžื ื˜ ืขื Kamal ืื—ื“ ื”ืจืขื™ื•ื ื•ืช ื”ืžืจื›ื–ื™ื™ื ื‘ื’ื™ืจืกืื•ืช ื”ืื—ืจื•ื ื•ืช ืฉืœ ืจื™ื™ืœืก ื”ื•ื ื”ืžืขื‘ืจ ืœื“ื™ืคืœื•ื™ืžื ื˜ ืขืœ ืฉืจืช ื‘ืžืงื•ื ืœื”ืฉืชืžืฉ ื‘ืฉื™ืจื•ืชื™ ืขื ืŸ, ืื‘ืœ ื‘ืœื™ ืœื”ืชืคืฉืจ ืขืœ ื—ื•ื•ื™ืช ื”ืžืคืชื—ื™ื. ื›ืฉืื ื—ื ื• ืคื•ืชื—ื™ื ืคืจื•ื™ืงื˜ ืจื™ื™ืœืก ื—ื“ืฉ ื”ื™ื•ื ื”ื•ื ืžื’ื™ืข ืžื•ื›ืŸ ืœื“ื™ืคืœื•ื™ืžื ื˜ ื‘ืขื–ืจืช ืงืžืืœ ืฉืžื’ื™ืข ืžื•ืชืงืŸ ืขื ื”ืคืจื•ื™ืงื˜. ืœืงื—ืชื™ ืฉืจืช ืž Digital Ocean ื•ื”ืœื›ืชื™ ืœื‘ื“ื•ืง ืื™ืš ื–ื” ืขื•ื‘ื“. ื—ื•ื•ื™ืช ื”ืคื™ืชื•ื— ืงืžืืœ ืžื‘ืฆืข Deployment ืžื‘ื•ืกืก ืงื•ื ื˜ื™ื™ื ืจื™ื ืขืœ ืฉืจืช ืฉืœื ื•. ืœื›ืŸ ืคืจื•ื™ืงื˜ ืจื™ื™ืœืก ื—ื“ืฉ ืžื’ื™ืข ืขื Dockerfile ืžื•ื›ืŸ ืœืคืจื•ื“ืงืฉืŸ ื•ื”ืขืœืื” ืœืคืจื•ื“ืงืฉืŸ ืื•ืžืจืช: 1. ืงืžืืœ ื‘ื•ื ื” ืืช ื”ืื™ืžื’'. 2. ืงืžืืœ ื“ื•ื—ืฃ ืืช ื”ืื™ืžื’' ืœืจื’'ื™ืกื˜ืจื™. 3. ืงืžืืœ ืžืชื—ื‘ืจ ืœืฉืจืช ื•ืžื•ืฉืš ืืช ื”ืื™ืžื’' ื”ืขื“ื›ื ื™ ืžื”ืจื’'ื™ืกื˜ืจื™. 4. ืงืžืืœ ืžืคืขื™ืœ ืืช ื”ืคืจื•ื™ืงื˜ ืขื ื“ื•ืงืจ. ื”ื“ื™ืคืœื•ื™ืžื ื˜ ื”ื•ื Zero Downtime ืžื”ืงื•ืคืกื”. ืงืžืืœ ืžืคืขื™ืœ ืกืจื‘ื™ืก ืชืงืฉื•ืจืช ืขืœ ื”ืฉืจืช ืฉื ืงืจื kamal-proxy ืฉืžื—ื•ื‘ืจ ืชืžื™ื“ ืœืคื•ืจื˜ 80 ื• 443, ื•ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืžื ืชื‘ ื›ืœ ื”ื•ื“ืขื” ืฉืžื’ื™ืขื” ืœืงื•ื ื˜ื™ื™ื ืจ. ื‘ืขืช ื”ืขืœืืช ื’ื™ืจืกื” ื—ื“ืฉื” ื”ื•ื ื™ืžืฉื™ืš ืœื ืชื‘ ืืช ื”ื”ื•ื“ืขื•ืช ืœืงื•ื ื˜ื™ื™ื ืจ ื”ื™ืฉืŸ ืขื“ ืฉื”ื’ื™ืจืกื” ื”ื—ื“ืฉื” ืกื™ื™ืžื” ืœืขืœื•ืช. ืžื‘ื—ื™ื ืช ื”ืจื’'ื™ืกื˜ืจื™ ืงืžืืœ ืฉื•ืžืจ 5 ื’ื™ืจืกืื•ืช ืื—ื•ืจื” ืฉืœ ื”ืคืจื•ื™ืงื˜ ื•ื”ื“ื•ืงืจืคื™ื™ืœ ืžืฉืชืžืฉ ื‘ืฉื›ื‘ื•ืช ื•ื‘ Buils Stage ื›ืš ืฉืื™ืžื’'ื™ื ื—ื“ืฉื™ื ืœื ืืžื•ืจื™ื ืœื”ื™ื•ืช ื’ื“ื•ืœื™ื ืžื“ื™. ืกืš ื”ื›ืœ 5 ื’ื™ืจืกืื•ืช ืื—ืจื•ื ื•ืช ื‘ืคืจื•ื™ืงื˜ ื“ื•ื’ืžื” ืฉืœื™ ืœื•ืงื—ื•ืช ื—ืฆื™ ื’'ื™ื’ื” ื‘ืจื™ืคื•ืกื™ื˜ื•ืจื™ ืฉื–ื” ื‘ื“ื™ื•ืง ื”ื ืคื— ืฉ Digital Ocean ื ื•ืชื ื™ื ื‘ื—ื™ื ื. ื‘ืฉื‘ื™ืœ ืœื”ืขืœื•ืช ื’ื™ืจืกื” ืื ื™ ืฆืจื™ืš ืจืง ืœื›ืชื•ื‘ ืžืฉื•ืจืช ื”ืคืงื•ื“ื”:
kamal deploy
ื•ื™ืฉ ืœื™ ื‘ื ื™ื” ืฉืœ ืื™ืžื’' ื—ื“ืฉ, ื“ื—ื™ืคื” ืœืจื’'ื™ืกื˜ืจื™ ื•ืฉื™ื ื•ื™ ื’ื™ืจืกื” ืขืœ ื”ืฉืจืช. ื™ืฉ ื’ื ืชืžื™ื›ื” ื‘ื—ื–ืจื” ืื—ื•ืจื” ื•ืžืกืคื™ืง ืœื›ืชื•ื‘ kamal rollback ื›ื“ื™ ืœื—ื–ื•ืจ ื’ื™ืจืกื”. ืขื•ื“ ื›ืžื” ืคืงื•ื“ื•ืช ืฉื™ืžื•ืฉื™ื•ืช ื”ื™ื•:
* show all app images in the registry *
kamal app images

* show application logs *
kamal app logs
ื”ืงืžืช ื”ืกื‘ื™ื‘ื” ื›ื“ื™ ืœื”ื’ื™ืข ืœื›ืœ ื”ื˜ื•ื‘ ื”ื–ื” ื”ื™ื™ืชื™ ืฆืจื™ืš ืงืฆืช ืœืขื‘ื•ื“, ื‘ืžื™ื•ื—ื“ ืœืงื— ืœื™ ื–ืžืŸ ืœื”ื‘ื™ืŸ ืื™ืš ืขื•ื‘ื“ ืžื ื’ื ื•ืŸ ื” Secrets ืฉืœ ืงืžืืœ. ื‘ืขื™ืงืจื•ืŸ ืœืงืžืืœ ื™ืฉ ืฉื ื™ ืงื‘ืฆื™ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืžืจื›ื–ื™ื™ื ื”ืจืืฉื•ืŸ ื”ื•ื config/deploy.yml ืฉืžืชืืจ ืืช ื”ืคืจื•ื™ืงื˜ ื•ื”ืฉืจืชื™ื ื• .kamal/secrets ืฉืžืชืืจ ืื™ืš ืœื”ืฉื™ื’ ืืช ื”ืกื•ื“ื•ืช ืฉืงืžืืœ ืฆืจื™ืš ืขื‘ื•ืจ ื”ื“ื™ืคืœื•ื™ืžื ื˜. ื ืชื—ื™ืœ ืขื config/deploy.yml - ืชื‘ื ื™ืช ื‘ืกื™ืกื™ืช ืฉืœื• ื™ื›ื•ืœื” ืœื”ื™ืจืื•ืช ื›ืš:
service: hey
image: 37s/hey
servers:
  - 192.168.0.1
  - 192.168.0.2
registry:
  username: registry-user-name
  password:
    - KAMAL_REGISTRY_PASSWORD
builder:
  arch: amd64
env:
  secret:
    - RAILS_MASTER_KEY
ื”ืงื•ื‘ืฅ ืžืคืจื˜ ืื™ืš ื ืงืจื ื”ื™ื™ืฉื•ื, ืื™ืš ืœืงืจื•ื ืœืื™ืžื’', ืœืื™ื–ื” ืฉืจืชื™ื ืœื”ืขืœื•ืช ืืช ื”ื™ื™ืฉื•ื, ืื™ืคื” ื” registry ื•ืื™ื–ื” ืกื•ื“ื•ืช ื”ื™ื™ืฉื•ื ืฆืจื™ืš. ื”ืงื•ื‘ืฅ ื”ืฉื ื™ ื ืงืจื .kamal/secrets ื•ืฉื ืื ื—ื ื• ื›ื•ืชื‘ื™ื ืœืงืžืืœ ืื™ืš ืœืงื‘ืœ ืืช ื”ืกื•ื“ื•ืช ืฉืžืคื•ืจื˜ื™ื ื‘ืจืฉื™ืžืช ื”ืกื•ื“ื•ืช ื‘ืงื•ื‘ืฅ ื” deploy. ื”ื ื” ื”ื“ื•ื’ืžื” ืžื”ืชื™ืขื•ื“ ืฉืœื”ื:
KAMAL_REGISTRY_PASSWORD=$KAMAL_REGISTRY_PASSWORD
RAILS_MASTER_KEY=$(cat config/master.key)
ืขื›ืฉื™ื• ื”ื“ื•ื’ืžื” ื”ื–ืืช ื‘ืœื‘ืœื” ืื•ืชื™ ื›ื™ ื”ืฉื•ืจื” ื”ืฉื ื™ื™ื” ื‘ื” ืžืชื™ื—ืก ืœืงื•ื‘ืฅ master.key ืฉืœ ืกื‘ื™ื‘ืช ื”ืคื™ืชื•ื—. ื‘ืฉื‘ื™ืœ ืฉื–ื” ื™ืขื‘ื•ื“ ื‘ืกื‘ื™ื‘ืช ืคืจื•ื“ืงืฉืŸ (ืื ื™ืฉ ืœื›ื ืงื•ื‘ืฅ ืกื•ื“ื•ืช ืฉื•ื ื” ืœืคืจื•ื“ืงืฉืŸ) ื™ืฉ ืœื”ื—ืœื™ืฃ ืืช ื”ืฉื•ืจื” ื”ืฉื ื™ื™ื” ื•ืœื”ืฉืชืžืฉ ื‘ืžืคืชื— config/credentials/production.key. ืฆืจื™ืš ืœื–ื›ื•ืจ ืฉื”ืกื•ื“ื•ืช ืขืฆืžื ืฉืœ ื™ื™ืฉื•ื ืจื™ื™ืœืก ืฉืžื•ืจื™ื ืžื•ืฆืคื ื™ื ื‘ืงื•ื‘ืฅ credentials ื•ืœื›ืŸ ืขื•ืœื™ื ืœื’ื™ื˜ ื•ื’ื ื™ื™ืฉืžืจื• ื‘ืชื•ืš ื”ืื™ืžื’'. ื”ืžืคืชื— ืœืงืจื™ืืช ื”ืกื•ื“ื•ืช ื”ื•ื ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืฆืจื™ืš ืœื”ื™ืฉืžืจ ืžื—ื•ืฅ ืœื’ื™ื˜ ื•ืœื›ืŸ ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉืฆืจื™ืš ืœื”ืขื‘ื™ืจ ืœืงืžืืœ. ืžื—ืฉื‘ื•ืช ืœื”ืžืฉืš ืื”ื‘ืชื™ ืฉืงืžืืœ ืœืงื— ืฉืจืช ืฉืœื ื”ื™ื” ืขืœื™ื• ื›ืœื•ื ื•ื”ืชืงื™ืŸ ื›ืœ ืžื” ืฉืฆืจื™ืš ื›ื“ื™ ืœื”ืจื™ืฅ ืฉื ื“ื•ืงืจ ื•ืื– ื”ืชื—ื‘ืจ ืœื‘ื“ ืœ letsencrypt ื•ืœืงื— ืกืจื˜ื™ืคื™ืงื˜ื™ื ืœื“ื•ืžื™ื™ืŸ ืฉืœื™. ืื”ื‘ืชื™ ื’ื ืฉื›ืœ ื”ื”ืชืงื ื” ื”ื™ื ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ื•ืœื›ืŸ ื™ื”ื™ื” ืœื™ ืงืœ ืœืฉื“ืจื’ ืืช ื”ืฉืจืช ื›ืฉืืฆื˜ืจืš ื‘ืœื™ ืœืฉื‘ื•ืจ ืืช ื”ื™ื™ืฉื•ื. ื‘ื ื™ืกื•ื™ ืฉืœื™ ืœืงื—ืชื™ ื‘ืกื™ืก ื ืชื•ื ื™ื ืžื ื•ื”ืœ ืขืœ neon ืื– ืœื ื™ืฆื ืœื™ ืœืขื‘ื•ื“ ืขื accessories, ืฉื–ื” ืžื ื’ื ื•ืŸ ืฉืœ ืงืžืืœ ืœื ื™ื”ื•ืœ ื‘ืกื™ืกื™ ื ืชื•ื ื™ื ื•ืกืจื‘ื™ืกื™ื ืื—ืจื™ื ื‘ื“ื•ืงืจ. ื”ื‘ื ืชื™ ืฉื™ืฉ ืืคืฉืจื•ืช ืœื—ื‘ืจ ืืช ืงืžืืœ ืฉื™ืจื•ืฅ ืžืชื•ืš Github Action ืื—ืจื™ ืงื•ืžื™ื˜ ืื• ืื—ืจื™ ืงื•ืžื™ื˜ ืขื tag ืžืกื•ื™ื. ืกืš ื”ื›ืœ ืื ื™ ืฉืžื— ืฉืžื ื’ื ื•ืŸ ื”ื“ื™ืคืœื•ื™ืžื ื˜ ื”ื•ืคืš ืœื”ื™ื•ืช ื—ืœืง ืžืจื™ื™ืœืก ื•ื”ื‘ื—ื™ืจื” ื‘ืงื•ื ื˜ื™ื™ื ืจื™ื ืžืื•ื“ ื”ื’ื™ื•ื ื™ืช. ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื™ืฉ ืœืงื˜ืจ ืขืœื™ื• ื–ื” ื”ื’ื•ื“ืœ ืฉืœ ื”ืจื’'ื™ืกื˜ืจื™. ื ืงื•ื“ื” ื ื•ืกืคืช ืฉื”ืคืจื™ืขื” ืœื™ ื‘ืงืžืืœ ื”ื™ื ื”ืงืคื™ืฆื” ืžื’ื™ืจืกื” 1 ืœื’ื™ืจืกื” 2. ืœื ืฉืื›ืคืช ืœื™ ืฉื™ืฉ ื’ื™ืจืกื” ื™ืฉื ื” ืืœื ืฉื›ืœ ื ื™ืกื™ื•ืŸ ืœืงื‘ืœ ืขื–ืจื” ืž AI ืขืœ ืงืžืืœ ื’ืจื ืœื• ืœื™ื™ืฆืจ ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืœื’ื™ืจืกื” 1 ืื• ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืžืขื•ืจื‘ื‘ืช ืฉื”ื•ื ื”ืžืฆื™ื. ืœืžื™ื“ืข ื ื•ืกืฃ ืขืœ ืงืžืืœ ืฉื•ื•ื” ืœื‘ืงืจ ืืฆืœื ื‘ืชื™ืขื•ื“ ื‘ื›ืชื•ื‘ืช: https://kamal-deploy.org/

ToCode
1 417
ืื•ืคืก ืฉื‘ืจืชื™ ืืช next ืืช ื”ืงื•ื“ ื”ื‘ื ื›ืชื‘ืชื™ ื‘ื˜ืขื•ืช ื•ืื ื™ ืžื•ื“ื” ืฉื”ืชื•ืฆืื” ื”ืคืชื™ืขื” ืื•ืชื™:
const data = await fetch('https://api.vercel.app/blog', {
    cache: 'no-store',
    next: {
        revalidate: 60
    }
})
ื”ืงื•ื“ ืขื‘ื“ ื‘ืคื™ืชื•ื— ืื‘ืœ ื’ืจื ืœ build ืœื”ื™ืชืงืข. ื‘ื•ืื• ื ื‘ื™ืŸ ืžื” ืงื•ืจื” ืคื”. ืœืžื” ื” build ื ืชืงืข ื”ื‘ืขื™ื” ืขื ื”ืงื•ื“ ื”ื™ื ืฉื”ืขื‘ืจืชื™ ืฉื ื™ ืขืจื›ื™ื ืžืชื ื’ืฉื™ื ื‘ืื•ื‘ื™ืงื˜ ื”ืื•ืคืฆื™ื•ืช: 1. ื”ืื•ืคืฆื™ื” no-store ืœ cache ื’ื•ืจืžืช ืœ next ืœื ืœืฉืžื•ืจ ืืช ื”ืชื•ืฆืื” ืฉืœ ื” fetch ื•ื›ืš ืœืžืขืฉื” ืœื”ืคื•ืš ื›ืœ ืขืžื•ื“ ืฉืžืฉืชืžืฉ ื‘ืงื•ื“ ื”ื–ื” ืœื“ื™ื ืžื™. 2. ื”ืื•ืคืฆื™ื” revalidate ื’ื•ืจืžืช ืœ next ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ISR. ื‘ืžื ื’ื ื•ืŸ ื–ื” ื” fetch ืžื—ื•ืฉื‘ ื‘ื–ืžืŸ ื”ื‘ื ื™ื™ื” ืื‘ืœ ืชื•ืฆืืช ื”ื‘ื ื™ื™ื” ืชื™ืฉืžืจ ืจืง ืœ 60 ืฉื ื™ื•ืช. ื‘ืงืฉืช ื”ืขืžื•ื“ ืื—ืจื™ 60 ืฉื ื™ื•ืช ืชื’ืจื•ื ืœ next ืœื‘ืฆืข ืืช ื” fetch ืžื—ื“ืฉ. ื‘ื“ืจืš ื›ืœืœ ื›ืฉื™ืฉ ืฉืชื™ ืื•ืคืฆื™ื•ืช ืžืชื ื’ืฉื•ืช ืœืื—ืช ืžื”ืŸ ืชื”ื™ื” ืขื“ื™ืคื•ืช, ืื‘ืœ ื‘ืžืงืจื” ืฉืœ ื ืงืกื˜ (ื‘ื“ืงืชื™ ืขืœ ื’ื™ืจืกื” 15.3) ืฉื™ืœื•ื‘ ืฉืชื™ ื”ืื•ืคืฆื™ื•ืช ื’ืจื ืœ build ืœื”ื™ืชืงืข ื•ืœื”ื™ื›ืฉืœ ื‘ื™ืฆื™ืจืช ื’ื™ืจืกืช ื” ISR. ืœื›ืŸ ื”ื”ืžืœืฆื” ืฉืœื™ ื‘ืขื‘ื•ื“ื” ืขื ื ืงืกื˜ ื”ื™ื ืœื•ื•ืชืจ ืขืœ ื”ื’ื“ืจืช cache: 'no-store' ื‘ืื•ืคืŸ ื’ื•ืจืฃ. ื›ืฉืฆืจื™ื›ื™ื ื‘ื ื™ื™ื” ื“ื™ื ืžื™ืช ืืคืฉืจ ืœื”ืขื‘ื™ืจ ืขืจืš 0 ืœ revalidate ื•ื›ืš ืžืงื‘ืœื™ื ืืช ืื•ืชื” ื”ืชื ื”ื’ื•ืช:
const data = await fetch('https://api.vercel.app/blog', {
    // same as cache: 'no-store'
    next: {revalidate: 0}
})

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

ToCode
1 417
ื›ืžื” ื–ืžืŸ ืฆืจื™ืš ืœื”ืฉืงื™ืข ื‘"ืœื”ื‘ื™ืŸ ืื™ืš ื–ื” ืขื•ื‘ื“"? ื‘ื”ื™ื ืชืŸ AI ืฉื™ื›ื•ืœ ืœื›ืชื•ื‘ ืืช ื›ืœ ืงื‘ืฆื™ ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉืœ ื”ืขื•ืœื, ื›ืžื” ื–ืžืŸ ื›ื“ืื™ ืœื”ืฉืงื™ืข ื‘ืœื”ื‘ื™ืŸ ืื™ืš ื“ื‘ืจื™ื ืขื•ื‘ื“ื™ื? ื•ืžืื™ืคื” ื ืžืฆื ืืช ื”ืžื•ื˜ื™ื‘ืฆื™ื”? ื—ื‘ืจ ื”ื™ื” ืฆืจื™ืš ืœื”ืขืœื•ืช ืžืขืจื›ืช ืœ AWS ืขื ื˜ืจืคื•ืจื. ืœืคื ื™ 3 ืฉื ื™ื ื”ื•ื ื”ื™ื” ืฆืจื™ืš ืœืฉื‘ืช ืฉื‘ื•ืขื™ื™ื ื‘ืงื•ืจืก ื˜ืจืคื•ืจื ื•ืื—ืจื™ ื–ื” ืœื‘ืœื•ืช ืขื•ื“ ืฉื‘ื•ืขื™ื™ื ื‘ื›ืชื™ื‘ืช ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื•ืชื™ืงื•ืŸ ืชืงืœื•ืช (ื•ื‘ืกื•ืฃ ื›ื ืจืื” ืฉืขื“ื™ื™ืŸ ื”ื™ื• ื ืฉืืจื•ืช ื‘ืขื™ื•ืช ืฉื™ืชื’ืœื• ืจืง ืื—ืจื™ ื—ื•ื“ืฉื™ื ืื• ืฉื ื™ื). ืขื›ืฉื™ื• ืื•ืชื• ื—ื‘ืจ ื™ื›ื•ืœ ืœืชืืจ ืœ AI ืžื” ืฉื”ื•ื ืฆืจื™ืš ื•ืœืงื‘ืœ ืืช ื›ืœ ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ื•ื–ื” ืืคื™ืœื• ืขื•ื‘ื“ ื‘ืคืขื ื”ืจืืฉื•ื ื”. ืžื” ื–ื” ืื•ืžืจ ืขืœื™ื ื•, ืขืœ ื”ืžื•ื˜ื™ื‘ืฆื™ื” ืœืœืžื•ื“ ื•ืขืœ ื”ืขืชื™ื“? ื›ืžื” ืžื—ืฉื‘ื•ืช: 1. ื›ืœ ืžื™ ืฉืœืžื“ ื›ืœื™ื ืจืง ื‘ืฉื‘ื™ืœ "ืœื’ืจื•ื ืœื“ื‘ืจื™ื ืœืขื‘ื•ื“" ืขื•ื‘ืจ ืื• ื™ืขื‘ื•ืจ ืœ AI. 2. ื›ืฉืื ืฉื™ื ืฉืœื ืžื‘ื™ื ื™ื ืืช ื”ื›ืœื™ ืžืชืืจื™ื ืœ AI ืžื” ื”ื ืจื•ืฆื™ื ื™ืฉ ื”ื—ืœื˜ื•ืช ืฉื”ื ืœื ืœื•ืงื—ื™ื. ื›ืฉื” AI ืœื•ืงื— ื”ื—ืœื˜ื” ื–ื” ืงืฆืช ืœื•ื˜ื•, ืœืคืขืžื™ื ื”ื•ื ืžื—ืœื™ื˜ ื ื›ื•ืŸ ื•ืœืคืขืžื™ื ืœื (ืชืœื•ื™ ื‘ืคืจื•ืžืคื˜, ื ืชื•ื ื™ ื”ืื™ืžื•ืŸ ื•ืืœืžื ื˜ ืฉืœ ืืงืจืื™ื•ืช). 3. ื‘ืฉืœื‘ ืžืกื•ื™ื ื” AI ื›ื‘ืจ ืœื ืขื•ื–ืจ ื•ืื– ื ืฆื˜ืจืš ืœื”ื—ืœื™ื˜ - ืœืœืžื•ื“ ืืช ื”ื›ืœื™ ื‘ืขืฆืžื ื•, ืœื”ื™ืขื–ืจ ื‘ื™ื™ืขื•ืฅ ืื• ืœื›ืชื•ื‘ ืžืฉื”ื• ื—ื“ืฉ ืขื AI ืื—ืจ. ื‘ื ืงื•ื“ื” ื”ื–ืืช ืœืœืžื•ื“ ืืช ื”ื›ืœื™ ืœื‘ื“ ื™ื”ื™ื” ืžืืชื’ืจ ื›ื™ AI ื›ื•ืชื‘ ืงื•ื“ ืžืื•ื“ Verbose ื•ืžื ืกื” ืœื˜ืคืœ ื‘ื›ืœ ื”ืžืงืจื™ื, ื›ืœื•ืžืจ ืงื•ื“ ืืจื•ืš ืฉืœื ืชืžื™ื“ ื™ื“ื™ื“ื•ืชื™ ืœื‘ื ื™ ืื“ื. ื•ื”ื ื” ื”ื‘ื—ื™ืจื” ืฉืชืžื™ื“ ื”ื™ืชื”, ื•ื” AI ืจืง ื”ื•ืคืš ืื•ืชื” ืœื”ืจื‘ื” ื™ื•ืชืจ ืงืฉื” - ื›ืžื” ื–ืžืŸ ืฆืจื™ืš ืœื”ืฉืงื™ืข ื‘"ืœื”ื‘ื™ืŸ ืื™ืš ื–ื” ืขื•ื‘ื“" ื‘ืขื™ื“ืŸ ื” AI? ื”ืื ืื ื™ ืขื“ื™ื™ืŸ ืžืจืฉื” ืœืขืฆืžื™ ืœืฉื‘ืช ืฉื‘ื•ืขื™ื™ื ืœืœืžื•ื“ ื˜ืจืคื•ืจื, ื›ืฉื” AI ื™ื›ื•ืœ ืœื’ืจื•ื ืœื›ืœ ื”ืขืกืง ืœืขื‘ื•ื“ ื‘ืขืฉืจ ื“ืงื•ืช? ืื• ืื•ืœื™ ืœื•ื•ืชืจ ืขืœ ื”ื›ืœื™ ื”ืžืชื•ื—ื›ื ื•ืœืขื‘ื•ื“ ืจืง ืขื ื›ืœื™ื ื™ื•ืชืจ ืคืฉื•ื˜ื™ื ืฉืื ื™ ื›ื‘ืจ ืžื›ื™ืจ, ื•ืœืชืช ืœ AI ืœื›ืชื•ื‘ ืืช ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉืœื”ื, ืืคื™ืœื• ืฉื”ื™ื ืชื”ื™ื” ื™ื•ืชืจ ืืจื•ื›ื” ื•ืžืกื•ืจื‘ืœืช? ื•ื”ืื‘ืกื•ืจื“ ื›ืืŸ ื”ื•ื ืฉ"ืœืœืžื•ื“ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ AI" ื–ื” ื‘ืจื•ื‘ื• ืคื™ื™ืง. 90% ืžื”ื™ื›ื•ืœืช "ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ AI" ื”ื™ื ื‘ืกืš ื”ื›ืœ ื”ื‘ื ื” ืžืขืžื™ืงื” ืฉืœ ืขื•ืœื ื”ืชื•ื›ืŸ ื”ืจืœื•ื•ื ื˜ื™. ื›ื›ืœ ืฉืื ื—ื ื• "ื ืขื–ืจื™ื" ื™ื•ืชืจ ื‘ AI ืขืœ ื—ืฉื‘ื•ืŸ ื”ื”ื‘ื ื” ืฉืœื ื• ื›ืš ื”ืžื™ื•ืžื ื•ืช ืฉืœื ื• ื‘ืฉื™ืžื•ืฉ ื‘ AI ื ืคื’ืขืช.

ToCode
1 417
[Symbol.asyncDispose]: async () => {
            await fh.close();
        },
    };
};
{
    const env_1 = { stack: [], error: void 0, hasError: false };
    try {
        const file = __addDisposableResource(env_1, await getFileHandle("thefile.txt"), true);
        const { fh } = file;
        fh.write('hello world');
    }
    catch (e_1) {
        env_1.error = e_1;
        env_1.hasError = true;
    }
    finally {
        const result_1 = __disposeResources(env_1);
        if (result_1)
            await result_1;
    }
} // Automatically disposed!
ื•ืœืžื” ืื ื™ ืžืกืคืจ ืœื›ื ืืช ื›ืœ ื–ื” ืขื›ืฉื™ื•? ื”ืกื™ื‘ื” ืคืฉื•ื˜ื” ื•ื‘ื›ื•ืชืจืช. ื”ืคื™ืฆ'ืจ ื”ื’ื™ืขื” ื”ืฉื‘ื•ืข ืœ node.js ื•ืชื•ื›ืœื• ืœื”ืฉืชืžืฉ ื‘ื• ื’ื ื‘ืœื™ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืขื node 24. ืื ื™ ื—ื•ืฉื‘ ืฉื™ืฉ ืคื” ืžื“ื™ื ื™ื•ืช ืฉืœ node.js ืœืชืžื•ืš ื‘ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื‘ืœื™ ืœืงืžืคืœ ืœื˜ื™ื™ืคืกืงืจื™ืคื˜ - ืžื“ื™ื ื™ื•ืช ืฉื”ืชื—ื™ืœื” ืขื ืžื ื’ื ื•ืŸ ื” strip types ืฉืœื”ื ื•ืžืžืฉื™ื›ื” ืขื ื˜ื™ืคื•ืœ ื‘ืคืงื•ื“ื•ืช ื”ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืฉืœื ืงืฉื•ืจื•ืช ืจืง ืœื˜ื™ืคื•ืกื™ื. ืขื›ืฉื™ื• ื ืฉืืจ ืœื—ื›ื•ืช ืœ enum.

ToCode
1 417
ื—ื“ืฉ ื‘ node - ื ื™ืงื•ื™ ืžืฉืื‘ื™ื ืื•ื˜ื•ืžื˜ื™ ืขื using ื˜ื™ื™ืคืกืงืจื™ืคื˜ 5.2 ื”ื’ื™ืขื” ืคืงื•ื“ื” ื—ื“ืฉื” ื‘ืฉื using ืฉืชืคืงื™ื“ื” ืœืืคืฉืจ ืœื ื• ืœื ืงื•ืช ืื•ื˜ื•ืžื˜ื™ืช ืžืฉืื‘ื™ื, ืงืฆืช ื›ืžื• with ืฉืœ ืคื™ื™ืชื•ืŸ. ื”ืžื ื’ื ื•ืŸ ื‘ื ื•ื™ ื‘ืฉืชื™ ืฉื›ื‘ื•ืช: 1. ืžืงื•ื ืื—ื“ ื‘ืงื•ื“ ืื—ืจืื™ ืขืœ ื™ืฆื™ืจืช ื”ืžืฉืื‘ื™ื. ืื•ืชื• ืžืงื•ื ืฉืžืงืฆื” ืืช ื”ืžืฉืื‘ื™ื ื’ื ืžื’ื“ื™ืจ ืืช ืคื•ื ืงืฆื™ื™ืช ื”ื ื™ืงื•ื™ ืฉืœื”ื. 2. ืžืงื•ื ืื—ืจ ื‘ืงื•ื“ "ืžืคืขื™ืœ" ืืช ื”ืžืงื•ื ืฉื™ื•ืฆืจ ืžืฉืื‘ื™ื, ืžืงื‘ืœ ืžืฉืื‘ ื•ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืžื–ื”ื” ืžืชื™ ื”ืžืฉืื‘ ืฉื™ืฆืจื ื• ื™ื•ืฆื ืž scope ื•ืžื ืงื” ืื•ืชื•. ื˜ื›ื ื™ืช ื–ื” ืขื•ื‘ื“ ืขื Symbol ืžื™ื•ื—ื“ ื‘ืฉื [Symbol.dispose]. ื”ืงื•ื“ ืฉื™ื•ืฆืจ ืžืฉืื‘ื™ื ืžื—ื–ื™ืจ ืื•ื‘ื™ืงื˜ ืฉืื—ื“ ื”ืžืคืชื—ื•ืช ื‘ื• ื”ื•ื ืื•ืชื• Symbol.dispose, ื”ืขืจืš ืฉืœ ื”ืžืคืชื— ื”ื–ื” ื”ื•ื ืคื•ื ืงืฆื™ื™ืช ื”ื ื™ืงื•ื™ ื•ื›ืฉืฆืจื™ืš ืœืžื—ื•ืง ืืช ื”ืžืฉืื‘ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื™ืคืขื™ืœ ืืช ื”ืคื•ื ืงืฆื™ื”. ื“ื•ื’ืžื” ืคืฉื•ื˜ื” ืœืงื•ื“ ืฉืคื•ืชื— ืงื•ื‘ืฅ ื ืจืื™ืช ื›ืš:
import { open } from "node:fs/promises";

const getFileHandle = async (path: string) => {
  const fh = await open(path, "w");

  return {
    fh,
    [Symbol.asyncDispose]: async () => {
      await fh.close();
    },
  };
};
ื”ืคื•ื ืงืฆื™ื” ืคื•ืชื—ืช ืงื•ื‘ืฅ ื•ืžื—ื–ื™ืจื” ื’ื ืืช ื”ืงื•ื‘ืฅ ื•ื’ื ืืช ืคื•ื ืงืฆื™ื™ืช ื”ืกื’ื™ืจื” ื‘ืื•ื‘ื™ืงื˜ ืื—ื“, ื›ืฉืคื•ื ืงืฆื™ื™ืช ื”ืกื’ื™ืจื” ื ืฉืžืจืช ื‘ืžืคืชื— Symbol.dispose ืื• ืื ื”ื™ื ืืกื™ื ื›ืจื•ื ื™ืช ื›ืžื• ื‘ื“ื•ื’ืžื” ื–ื” ื™ื”ื™ื” Symbol.asyncDispose. ื‘ืžืงื•ื ืื—ืจ ื‘ืงื•ื“ ืื ื—ื ื• ื™ื•ืฆืจื™ื ืืช ื”ืžืฉืื‘ ืขื ื”ืžื™ืœื” ื”ื—ื“ืฉื” using:
{
  await using file = await getFileHandle("thefile.txt");
  const { fh } = file;
  fh.write('hello world');
}
ื•ื›ืš ื‘ื™ืฆื™ืื” ืžื”ื‘ืœื•ืง ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืื•ื˜ื•ืžื˜ื™ ื™ื•ื“ืข ืœื”ืคืขื™ืœ ืืช ืคื•ื ืงืฆื™ื™ืช ื”ื ื™ืงื•ื™. ืงื•ื“ ื”ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื‘ื“ื•ื’ืžื” ื™ื”ืคื•ืš ืœืงื•ื“ ื” JavaScript ื”ื‘ื:
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
    if (value !== null && value !== void 0) {
        if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
        var dispose, inner;
        if (async) {
            if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
            dispose = value[Symbol.asyncDispose];
        }
        if (dispose === void 0) {
            if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
            dispose = value[Symbol.dispose];
            if (async) inner = dispose;
        }
        if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
        env.stack.push({ value: value, dispose: dispose, async: async });
    }
    else if (async) {
        env.stack.push({ async: true });
    }
    return value;
};
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
    return function (env) {
        function fail(e) {
            env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
            env.hasError = true;
        }
        var r, s = 0;
        function next() {
            while (r = env.stack.pop()) {
                try {
                    if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
                    if (r.dispose) {
                        var result = r.dispose.call(r.value);
                        if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
                    }
                    else s |= 1;
                }
                catch (e) {
                    fail(e);
                }
            }
            if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
            if (env.hasError) throw env.error;
        }
        return next();
    };
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
    var e = new Error(message);
    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
});
import { open } from "node:fs/promises";
const getFileHandle = async (path) => {
    const fh = await open(path, "w");
    return {
        fh,

ToCode
1 417
https://hardcover.app/blog/part-1-how-we-fell-out-of-love-with-next-js-and-back-in-love-with-ruby-on-rails-inertia-js ืžืกืชื‘ืจ ืฉืื ื™ ืœื ื”ื™ื—ื™ื“ ื‘ืขื•ืœื ๐Ÿ˜‚

ToCode
1 417
ืขืœ ืžื” ื”ืœืš ื”ื–ืžืŸ ื‘ืคืจื•ื™ืงื˜ Unvibing ื‘ื™ืžื™ื ื”ืื—ืจื•ื ื™ื ืื ื™ ืžืืจื’ืŸ ืžื—ื“ืฉ ืงื•ื“ ืฉืœ ืคืจื•ื™ืงื˜ ืงื˜ืŸ ืฉื›ืชื‘ AI. ื”ืงื•ื“ ืฉืœ ื” AI ืžื›ื™ืœ ื‘ืขืจืš ืืœืฃ ืฉื•ืจื•ืช, ืขื•ื‘ื“ ืขื ืงืฆืช ื‘ืื’ื™ื ืื‘ืœ ื‘ื ื•ื™ ื›ืžื• ืกืคื’ื˜ื™ ื•ื›ื‘ืจ ืžืชื—ื™ืœ ืœื”ื™ื•ืช ืงืฉื” ืœ AI ื•ื’ื ืœืื ืฉื™ื ืœืชืงืŸ ืืช ื”ื‘ืื’ื™ื. ืžื‘ื—ื™ื ืช ื–ืžื ื™ื ืœื•ืงื— ืœื™ ื‘ืขืจืš 4-5 ืฉืขื•ืช ืขืœ ื›ืœ ืฉืขื” ืฉืœ ื•ื™ื™ื‘ ืงื•ื“. ืืœื” ื”ื“ื‘ืจื™ื ื”ืžืจื›ื–ื™ื™ื ืฉืœื•ืงื—ื™ื ื–ืžืŸ: 1. ืืจื›ื™ื˜ืงื˜ื•ืจื” - ื‘ Vibe Code ืื ื™ ื›ืžืขื˜ ืœื ืžืกืชื›ืœ ืขืœ ื”ืงื•ื“ ื•ืžืžืงื“ ืืช ื”ืคืจื•ืžืคื˜ ืฉืœื™ ื‘ืžื‘ื ื” ื”ื›ืœืœื™ ื•ื‘ืคื™ืฆ'ืจื™ื. ื‘ืžืขื‘ืจ ื”ืฉื ื™ ืขืœ ื”ืงื•ื“ ืื ื™ ืงื•ืจื ื›ืœ ืฉื•ืจื” ืฉื” AI ื›ืชื‘, ืžื‘ื™ืŸ ืžื” ื”ื•ื ื ื™ืกื” ืœืขืฉื•ืช ืฉื ื•ืžืืจื’ืŸ ืืช ื”ืงื•ื“ ื‘ืžืงื•ืžื•ืช ื ื›ื•ื ื™ื ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœืขืฉื•ืช ืฉื™ืžื•ืฉ ื—ื•ื–ืจ ืžื•ืฉื›ืœ ื‘ืงื˜ืขื™ื ืฉื—ื•ื–ืจื™ื ืขืœ ืขืฆืžื. ืจืง ื–ื” ืœืคื ื™ ืฉืžื’ื™ืขื™ื ืœืฉื ื•ืช ืžื™ืžื•ืฉื™ื ื—ื•ืชืš ื‘ืขืจืš 30% ืžื”ืงื•ื“ ืฉื” AI ื›ืชื‘. 2. ื ื™ืงื™ื•ืŸ ื•ืชื™ืงื•ืŸ ืžื™ืžื•ืฉื™ื - ืงื•ื“ ืฉืœ AI ืขื•ื‘ื“ ืื‘ืœ ืœื ืชืžื™ื“ ืžืฉืชืžืฉ ื‘ APIs ื”ื›ื™ ื—ื“ืฉื™ื, ืขื‘ื•ื“ื” ืขื ืกืคืจื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช ืขื“ื™ื™ืŸ ืงืฉื” ืœื• ื•ืื™ืŸ ืœื• ื”ื‘ื ื” ืฉืœ ืžื” ื—ืฉื•ื‘ ื•ืžื” ืœื ื•ืœื›ืŸ ืœืคืขืžื™ื ื”ืงื•ื“ ื™ืขืฉื” ื™ื•ืชืจ ืžื“ื™ ื›ืฉืœื ืฆืจื™ืš ื•ืœืคืขืžื™ื ืœื ื™ืขืฉื” ืžืกืคื™ืง ื“ื‘ืจื™ื ืฉื›ืŸ ืฆืจื™ืš. ืœื ืคืขื ืžืฆืืชื™ ืื•ืชื• ืฉื•ืžืจ ืขืจืš ื–ืžื ื™ ืœืžืฉืชื ื” ืžืžื ื• ื”ื•ื ืœืขื•ืœื ืœื ื™ืงืจื, ืื• ืžืชืืžืฅ ืžืื•ื“ ืœืืจื’ืŸ ืžื—ื“ืฉ ืžื‘ื ื” ืฉืœ ืžื™ื“ืข ืžื‘ืกื™ืก ื”ื ืชื•ื ื™ื ืžืงื•ื ืœืฉืžื•ืจ ืžืจืืฉ ืืช ื”ืžื™ื“ืข ื‘ืฆื•ืจื” ืฉืชื”ื™ื” ื™ื•ืชืจ ืงืœื” ืœืขื™ื›ื•ืœ, ืื• ื›ื•ืชื‘ ื”ืžื•ืŸ ืงื•ื“ ื›ื“ื™ ืฉื”ืืคืœื™ืงืฆื™ื” ืชื™ืจืื” ื ื›ื•ื ื” ืืคื™ืœื• ืฉื™ืฉ ื˜ืขื•ืช ื‘ Data (ื•ืื– ื›ืฉืžื’ื™ืข Data ืื—ืจ ื•ื ื›ื•ืŸ ืจื•ืื™ื ืืช ื”ื‘ืื’). 3. ื–ืžืŸ ืœื™ืžื•ื“ - ืจื•ื‘ ื”ื–ืžืŸ ืื ื™ ืžื‘ื™ืŸ ืืช ื”ืงื•ื“ ืฉืœ ื” AI ืื‘ืœ ืœืคืขืžื™ื ื”ื•ื ืžืฉืชืžืฉ ื‘ืชื‘ื ื™ื•ืช ืื• ื™ื›ื•ืœื•ืช ืฉืœื ื”ื›ืจืชื™, ืœื“ื•ื’ืžื” ื‘ืงื•ื“ JavaScript ื”ื™ื” ืฉื™ืžื•ืฉ ื‘ Passive Event Listeners ืฉืœื ื”ื›ืจืชื™ ื•ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื”ืฉืœื™ื ืคืขืจื™ื. ืกืš ื”ื›ืœ ื”ืขื•ื‘ื“ื” ืฉื™ืฉ ืืช ื›ืœ ื”ืงื•ื“ ื›ืชื•ื‘ ื•ืืคืฉืจ ืœื”ืชืžืงื“ ื‘ื—ืฉื™ื‘ื” ื•ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื” ืžืื•ื“ ืขื•ื–ืจืช ืœื”ื’ื™ืข ื‘ืกื•ืฃ ืœืžืขืจื›ืช ื˜ื•ื‘ื” ื™ื•ืชืจ. ืฉืžืชื™ ืœื‘ ื’ื ืฉื›ื›ืœ ืฉื” AI ืžืฉืชืžืฉ ื‘ืคื—ื•ืช ืกืคืจื™ื•ืช ื‘ Vibe Coding ื›ื›ื” ื™ื•ืชืจ ืงืœ ืœื™ ืœืขื‘ื•ืจ ืขืœ ื”ืงื•ื“ ืฉืœื• ื‘ืกื™ื‘ื•ื‘ ืฉื ื™ ื›ื™ ืื™ืŸ ื—ืฉืฉ ืฉื”ื•ื ื™ืฉืชืžืฉ ื‘ืกืคืจื™ื” ืฉืื ื™ ืœื ืžื›ื™ืจ ื•ื›ืš ืื ื™ ื—ื•ืกืš ื–ืžืŸ ืœื™ืžื•ื“ ืฉืœ ืžืฉื”ื• ืฉืœื ื‘ื˜ื•ื— ืืฆื˜ืจืš.

ToCode
1 417
ื”ืกืคืจื™ื” ื”ื”ื™ื ืฉืืฃ ืื—ื“ ืœื ืžื›ื™ืจ ืžืืคื™ื™ืŸ ืžืจื›ื–ื™ ืฉืœ ืฉืคืช ืชื›ื ื•ืช ืื• ืคืจื™ื™ืžื•ื•ืจืง ื”ื•ื ื›ืžื” ืืคืฉืจ "ืœื”ืชืื™ื" ืืช ื”ืกืคืจื™ื” ืœืกื‘ื™ื‘ื” ืžืฉืชื ื”. ืžื‘ื—ืŸ ื˜ื•ื‘ ื™ื”ื™ื” ืœื”ืกืชื›ืœ ืขืœ ืคืจื•ื™ืงื˜ื™ื ืืžื™ืชื™ื™ื ื•ืœื‘ื“ื•ืง ื‘ืื™ื–ื” ืกื‘ื™ื‘ื•ืช ืžืฉืชืžืฉื™ื ื‘ืื•ืชื” ืกืคืจื™ื” ื•ื›ืžื” ื”ืŸ ืฉื•ื ื•ืช ืื—ืช ืžื”ืฉื ื™ื™ื”. ืจื™ืืงื˜ ื”ื™ื ื“ื•ื’ืžื” ืœืกืคืจื™ื” ืฉื™ื›ื•ืœื” ืœื”ืชืื™ื ืœื›ืœ ื—ื•ืจ: 1. ื”ื™ื ืจืฆื” ื‘ืฆื“ ืœืงื•ื— ื•ื‘ื•ื ื” DOM 2. ื”ื™ื ืจืฆื” ื‘ืฆื“ ืฉืจืช ื•ื‘ื•ื ื” ืžื—ืจื•ื–ืช HTML 3. ืืคืฉืจ ืœื—ื‘ืจ ืื•ืชื” ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืฉืœ Mobile ื•ืœืงื‘ืœ ืืคืœื™ืงืฆื™ื•ืช. 4. ืืคืฉืจ ืœื—ื‘ืจ ืื•ืชื” ืœืงื•ืžืคื•ื ื ื˜ื•ืช ืฉืœ ืžื™ื™ืœื™ื ื•ืœืงื‘ืœ ืื™ืžื™ื™ืœื™ื ืจื™ืกืคื•ื ืกื™ื‘ื™ื™ื. 5. ืืคืฉืจ ืœื‘ื ื•ืช ืื™ืชื” ื™ื™ืฉื•ืžื™ Text UI. 6. ืืคืฉืจ ืœื‘ื ื•ืช ืื™ืชื” Prompt-ื™ื ืœ AI (ื›ืŸ ื”ืคืจื•ืžืคื˜ ืฉืœ ืงืจืกืจ ื ื‘ื ื” ื‘ืฆื•ืจื” ื“ื™ื ืžื™ืช ื‘ื›ืชื™ื‘ JSX). ื‘ืฆื“ ื”ืฉื ื™ ืกื˜ื™ืžื•ืœื•ืก ื”ื™ื ืกืคืจื™ื™ืช JavaScript ืฉืœื›ืื•ืจื” ืžืชืื™ืžื” ืœื›ืœ ืžืงื•ื, ืื‘ืœ ืชื›ืœ'ืก ื”ื™ื ืžืชืื™ืžื” ื›ืžื• ื›ืคืคื” ืœื™ื“ ืœืคืจื•ื™ืงื˜ื™ ืจื™ื™ืœืก ื•ืœื”ื ื‘ืœื‘ื“. ืžื‘ื—ื™ื ืชื ื• ื›ืžืชื›ื ืชื™ื ื™ืฉ ื™ื™ืชืจื•ืŸ ืขืฆื•ื ืœืœื™ืžื•ื“ ืกืคืจื™ื” ื›ืžื• ืจื™ืืงื˜, ื›ื™ ื ื•ื›ืœ ืœื”ืฉืชืžืฉ ื‘ื” ื‘ื›ืœ ืžืงื•ื ื•ื‘ื›ืœ ื”ื–ื“ืžื ื•ืช. ืกืคืจื™ื•ืช ื›ืžื• ืกื˜ื™ืžื•ืœื•ืก ื ืจืื•ืช ื›ืžื• Dead End ืžื‘ื—ื™ื ืช ืงืจื™ื™ืจื” - ืืชื” ืœื•ืžื“ ืื•ืชืŸ ืœืงืจืืช ืขื‘ื•ื“ื” ืขืœ ืคืจื•ื™ืงื˜ ืจื™ื™ืœืก ื•ืฉื•ื›ื— ื›ืฉืขื•ื‘ืจ ืœืขื‘ื•ื“ ืขืœ ืคืจื•ื™ืงื˜ ืžืกื•ื’ ืื—ืจ. ื•ื‘ื›ืœ ื–ืืช ืื ื™ ื—ื•ืฉื‘ ืฉืžืชื›ื ืชื™ื ื˜ื•ื‘ื™ื ืฆืจื™ื›ื™ื ืœื”ื›ื™ืจ ืืช ืฉื ื™ ืกื•ื’ื™ ื”ื›ืœื™ื, ื’ื ืืช ื”ื›ืœืœื™ื™ื ื•ื’ื ืืช ื”ืกืคืฆื™ืคื™ื™ื: 1. ื›ืœื™ื ืกืคืฆื™ืคื™ื™ื ื ื•ืชื ื™ื ืœื ื• ื”ื‘ื ื” ื˜ื•ื‘ื” ื™ื•ืชืจ ืฉืœ ืชืคื™ืกืช ื”ืขื•ืœื ืขื‘ื•ืจื” ื”ื ื ื•ืฆืจื•. ื”ื™ื›ืจื•ืช ืขื ืกื˜ื™ืžื•ืœื•ืก (ืื• htmx ืฉืžืงื‘ื™ืœ ืœื•) ืชืœืžื“ ืืชื›ื ืœืขื‘ื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ ืขื ืžืขืจื›ื•ืช Rails ื• Django ื•ืงื•ื“ ื”ืคืจื•ื ื˜ ืื ื“ ืฉืœื”ืŸ. 2. ื›ืœื™ื ืกืคืฆื™ืคื™ื™ื ื ื•ืชื ื™ื ืœื ื• ื”ืฉืจืื”, ื‘ื’ืœืœ ืฉื”ืคื™ืชืจื•ื ื•ืช ืฉืœื”ื ื›ืœ ื›ืš ืžื“ื•ื™ืงื™ื ื•ืชืคื•ืจื™ื ืœื‘ืขื™ื”. ืกื˜ื™ืžื•ืœื•ืก ื”ื™ื ืกืคืจื™ื™ื” ื”ืจื‘ื” ื™ื•ืชืจ ืงื˜ื ื” ืžืจื™ืืงื˜ ื•ื‘ื™ื™ืฉื•ืžื™ ืจื™ื™ืœืก ื”ืจื‘ื” ืคืขืžื™ื ืชืชืŸ ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ื™ื•ืชืจ. ืืคื™ืœื• ืื ืื ื™ ื›ื•ืชื‘ React ื• Rails ืขื“ื™ื™ืŸ ื˜ื•ื‘ ืฉื™ืฉ ืœื™ ืœืžื” ืœื”ืฉื•ื•ืช ื•ืœืžื” ืœืฉืื•ืฃ ืžื‘ื—ื™ื ืช ื’ื•ื“ืœ ืงื‘ืฆื™ ื” JavaScript. 3. ื›ืœื™ื ืกืคืฆื™ืคื™ื™ื ืžืœืžื“ื™ื ืื•ืชื™ ืขื•ื“ ืคืจื“ื™ื’ืžืช ืคื™ืชื•ื—, ืžื” ืฉืขื•ื–ืจ ืœื™ ืœื”ื’ื™ืข ืœืคื™ืชืจื•ื ื•ืช ื™ื•ืชืจ ื™ืฆื™ืจืชื™ื™ื ืœื‘ืขื™ื•ืช ื‘ืขืชื™ื“. ื‘ืขื‘ื•ื“ื” ืขืœ ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื ืขื ื”ืจื‘ื” ืื ืฉื™ื ื™ืฉ ื™ื™ืชืจื•ืŸ ืขืฆื•ื ืœื‘ื—ื™ืจื” ื‘ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืฉื›ื•ืœื ืžื›ื™ืจื™ื, ืื‘ืœ ื‘ืขื‘ื•ื“ื” ืขืœ ืคืจื•ื™ืงื˜ื™ ืฆื“ ืื ื™ ืžืฉืชื“ืœ ืœืฉืœื‘ ืชืžื™ื“ ืกืคืจื™ื” ืื• ืฉืชื™ื™ื ืฉืœื ืขื‘ื“ืชื™ ืื™ืชืŸ ื•ืœื ืืขื‘ื•ื“ ืื™ืชืŸ ื™ื•ืชืจ ืฉื•ื‘.