uz
Feedback
ToCode

ToCode

Kanalga Telegram鈥檇a o鈥榯ish

讟讬驻讬诐 拽爪专讬诐 诇诪转讻谞转讬诐 诪讗转 讬谞讜谉 驻专拽

Ko'proq ko'rsatish
1 418
Obunachilar
Ma'lumot yo'q24 soatlar
Ma'lumot yo'q7 kunlar
Ma'lumot yo'q30 kunlar
Postlar arxiv
ToCode
1 418
# 诪讻讜谞转 讛讝诪谉 讛诪讜讞 讛讗谞讜砖讬 诪诪砖 讙专讜注 讘诇讝讛讜转 砖讬谞讜讬讬诐 诇讗讜专讱 讝诪谉. 讗诐 讗谞讬 专讜讗讛 拽讜专住 讘讬砖讜诇 讜诇讜诪讚 砖诐 讟讻谞讬拽讛 讞讚砖谞讬转 讗讬讱 诇拽诇祝 讘爪诇 讘诇讬 诇讘讻讜转, 讗讝 讛讞讬讬诐 砖诇讬 讛砖转谞讜 诪拽爪讛 诇拽爪讛 转讜讱 讞诪砖 讚拽讜转 讜讛讻诇 讟讜讘, 讛诪讜讞 砖诪讞. 讗讘诇, 讗诐 讗谞讬 诇讜拽讞 拽讜专住 专讬讗拽讟? 讻讗谉 讛诪爪讘 讛专讘讛 讬讜转专 诪住讜讘讱. 讘爪驻讬讛 专讗砖讜谞讛 讘拽讜专住 讗谞讬 诇讜诪讚 讗讬讱 专讬讗拽讟 注讜讘讚 讜讗讜诇讬 诪讘讬谉 讗讬讱 诇讻转讜讘 拽讜诪驻讜谞谞讟讜转 驻砖讜讟讜转. 讗讞专讬 讝讛 讗谞讬 诪谞住讛 诇转专讙诇 讜诇讗 诪爪诇讬讞 讻诇讜诐, 讗讝 砖讜讗诇 讻诪讛 砖讗诇讜转 讜爪讜驻讛 砖讜讘, 讜讗讝 诪讘讬谉 拽爪转 讬讜转专 讜诪爪诇讬讞 诇驻转讜专 讗转 讛转专讙讬诇讬诐 砖诇 讛拽讜专住. 讜讗讝 讗谞讬 诪谞住讛 诇讻转讜讘 驻专讜讬拽讟 讘注爪诪讬 讜砖讜讘 讜诇讗 诪爪诇讬讞 讻诇讜诐, 讗讝 讞讜讝专 诇爪驻讜转 讘砖讬注讜专讬诐 驻注诐 砖诇讬砖讬转 (讗讜 专讘讬注讬转), 注讜讘专 诪讞讚砖 注诇 讛转专讙讬诇讬诐, 诪转拽讚诐 拽爪转 注诐 讛驻专讜讬拽讟 讜讞讜讝专 诇爪驻讜转 讘拽讜专住, 讜讗讞专讬 讞爪讬 砖谞讛 砖诇 诇讬诪讜讚 讗谞讬 诪爪诇讬讞 诇讛专讬诐 讗转 讛驻专讜讬拽讟 注诇讬讜 讞诇诪转讬. 讘转讜讱 讛讞爪讬 砖谞讛 讛讝讗转 砖诇 讛诇讬诪讜讚 诇诪讚转讬 讻诇 讻讱 讛专讘讛 讟讻谞讬拽讜转 讜讟专讬拽讬诐 拽讟谞讬诐, 讗讘诇 讻诇 讬讜诐 讜讻诇 砖注讛 讛砖讬驻讜专 讛讬讛 讻诇 讻讱 拽讟谉 砖拽砖讛 诇专讗讜转 讗讜转讜, 讜讘讙诇诇 砖拽砖讛 诇专讗讜转 讗转 讛砖讬谞讜讬 拽砖讛 诪讗讜讚 诇砖诪讜专 注诇 讗讜转讛 专诪转 诪讜讟讬讘爪讬讛 讜讘讗诪转 诇砖专讜讚 讗转 讛讞爪讬 砖谞讛 砖诇 诇讬诪讜讚. 讝讗转 讗谞讬 讞讜砖讘 讛住讬讘讛 讛诪专讻讝讬转 砖拽砖讛 讬讜转专 诇讛转诪讬讚 讘拽讜专住讬 讗讜谞诇讬讬谉 讘讛砖讜讜讗讛 诇拽讜专住讬诐 讘讻讬转讜转. 讟专讬拽 拽讟谉 砖注讜讝专 诇讬 诇驻注诪讬诐 讛讜讗 诇讘谞讜转 诪讻讜谞转 讝诪谉. 诇讗 讻讝讗转 诪转讜讞讻诪转 砖讬讜讚注转 诇拽讞转 讗讜转讱 诇注转讬讚, 讗诇讗 诪讻讜谞转 讝诪谉 驻砖讜讟讛 砖讘住讱 讛讻诇 诪爪诇讬讞讛 诇拽讞转 讗讜转讱 砖讘讜注 讗讞讚 讗讞讜专讛 讘讞讬讬诐. 讜讝讛 拽诇: 讗讞专讬 砖讘讜注 砖诇 诇讬诪讜讚 诇讜拽讞讬诐 转专讙讬诇 砖砖讘专谞讜 注诇讬讜 讗转 讛专讗砖 专拽 诇驻谞讬 砖讘讜注, 讜诪谞住讬诐 诇驻转讜专 讗讜转讜 砖讜讘. 讻诪注讟 转诪讬讚 谞讙诇讛 砖讛讚讘专 讛讛讜讗 砖讛讬讛 诪诪砖 拽砖讛 讛驻讱 诇诪砖讛讜 砖讗谞讞谞讜 讻讘专 讬讜讚注讬诐 诇讛住转讚专 讗讬转讜, 讜讗讜诇讬 讗驻讬诇讜 拽爪转 诪砖注诪诐. 讜讝讛 住讜讙 讛砖讬注诪讜诐 砖讗谞讬 讛讻讬 讗讜讛讘 - 讻砖讚讘专讬诐 砖讛讬讜 拽砖讬诐 讛讜驻讻讬诐 诇诪讜讘谞讬诐 诪讗诇讬讛诐.

ToCode
1 418
# 诪讜讟讬讘爪讬讛 讛专讘讛 驻注诪讬诐 讗谞讬 讘讟讜讞 砖讛讘注讬讛 砖诇讬 讛讬讗 砖讗谞讬 诇讗 讬讜讚注 讗讬讱- 讗谞讬 诇讗 讬讜讚注 讗讬讱 诇讻转讜讘 拽讜讚 Python 讘砖讘讬诇 诇注谞讜转 注诇 讛砖讗诇讜转 讘专讗讬讜谉 注讘讜讚讛 讗谞讬 诇讗 讬讜讚注 讗讬讱 诇讻转讜讘 讗驻诇讬拽爪讬讛 砖转讛讬讛 诪住驻讬拽 驻讜驻讜诇专讬转 讻讚讬 砖讗讜讻诇 诇讛转驻专谞住 诪诪谞讛 讗谞讬 诇讗 讬讜讚注 讗讬讱 诇讘谞讜转 转讬拽 注讘讜讚讜转 砖讬讙专讜诐 诇诇拽讜讞讜转 诇诪爪讜讗 讗讜转讬 讜诇讛转拽砖专 讗诇讬讬 讗讘诇 讗诇讛 谞讬住讜讞讬诐 诪讟注讬诐 讜诇讗 诪讚讜讬拽讬诐. 讗诐 谞砖谞讛 拽爪转 讗转 讛谞讬住讜讞 诇- 讗谞讬 诇讗 讬讜讚注 讗讬讝讛 注讘讜讚讛 讗谞讬 专讜爪讛, 讜诇讻谉 讗谞讬 诇讗 诪爪诇讬讞 诇讛转讗诪谉 讜诇讛讬讜转 诪住驻讬拽 讟讜讘 讘讚讘专 讛讗讞讚 砖讬讻谞讬住 讗讜转讬 诇注讘讜讚讛 讛讝讗转. 讗谞讬 诇讗 讬讜讚注 诪讬 拽讛诇 讛讬注讚 砖诇讬, 诪讛 转讞讜诪讬 讛注谞讬讬谉 砖诇讛诐 讜讗讬驻讛 讛诐 诪住转讜讘讘讬诐, 讜诇讻谉 讗谞讬 诇讗 诪爪诇讬讞 诇讻转讜讘 讗驻诇讬拽爪讬讛 砖转拽诇注 讘讜诇 诇讟注诐 砖诇讛诐. 讗谞讬 诇讗 讬讜讚注 讗讬讝讛 诇拽讜讞讜转 讗谞讬 专讜爪讛 诇诪砖讜讱, 诪讛 讛讘注讬讜转 讗讬转谉 讛诐 诪转诪讜讚讚讬诐, 讗讬讝讛 驻讬转专讜谞讜转 讛诐 诪讬讬砖诪讬诐 讛讬讜诐 讜讗讬驻讛 讛诐 诪讞驻砖讬诐 驻讬转专讜谞讜转 讞诇讜驻讬讬诐. 讜诇讻谉 讗谞讬 诇讗 诪爪诇讬讞 诇讘谞讜转 诪住诇讜诇 讙讬讜住 诇拽讜讞讜转 砖讬讘讬讗 讗谞砖讬诐 专爪讬谞讬讬诐 诇住诪讜讱 注诇讬讬 讜诇注讘讜讚 讗讬转讬. 讘谞讬住讜讞 讻讝讛 讘专讜专 砖讛讘注讬讛 讛讬讗 讘诪拽讜诐 讗讞专, 讗讘诇 讗讜诇讬 讬讜转专 讞砖讜讘 讛谞讬住讜讞 谞讜转谉 诇讬 讗转 讛讻诇讬诐 诇讛转诪讜讚讚 注诐 讛讘注讬讛 讜诇讛转拽讚诐 讻讚讬 诇驻转讜专 讗讜转讛. 讘讚讜讙诪讗 住驻爪讬驻讬转, 讗诐 讗谞讬 诪讞驻砖 注讘讜讚讛 讘转讜专 诪驻转讞 Front End 讜诇讗 诪爪诇讬讞 诇拽讘诇 讝讬诪讜谞讬诐 诇专讗讬讜谞讜转, 讘诪拽讜诐 诇住讙讜专 讗转 讝讛 讘"讗谞讬 诇讗 讬讜讚注 讗讬讱 诇砖驻专 讗转 讛拽讜专讜转 讞讬讬诐" 讗谞讬 讬讻讜诇 诇拽讞转 讛讬诪讜专 讜诇诇诪讜讚 诇讚讜讙诪讗 React. 注讻砖讬讜 讗谞讬 讬讻讜诇 诇讘谞讜转 驻专讜讬拽讟 讚讜讙诪讗 讟讜讘 讘 React 讜诇砖诇讜讞 讗讜转讜 讘爪讬专讜祝 拽讜专讜转 讛讞讬讬诐 砖诇讬. 讘讛谞讞讛 砖讗谞讬 注讚讬讬谉 诇讗 诪拽讘诇 讝讬诪讜谞讬诐 诇专讗讬讜谞讜转 讗谞讬 讬讻讜诇 诇拽讞转 爪注讚 谞讜住祝 讜诇砖驻专 讗转 讛驻专讜讬拽讟, 诇诪砖诇 诇砖诇讜讞 讗讜转讜 诇讞讘专讬诐 砖注讜讘讚讬诐 讘转注砖讬讛 讜诪讞驻砖讬诐 注讜讘讚讬诐 讜诇砖讗讜诇 诪讛 讚注转诐 讜讗讬讱 讛诐 讛讬讜 诪砖驻专讬诐, 讜讛讗诐 讛驻专讜讬拽讟 讛讬讛 注讜砖讛 注诇讬讛诐 专讜砖诐 讟讜讘. 注讻砖讬讜 讛砖讗诇讛 砖诇讬 讛讬讗 讻讘专 诪讗讜讚 住驻爪讬驻讬转 "讗讬讱 诪砖驻专讬诐 讗转 讛驻专讜讬拽讟 讛讝讛 砖讘谞讬转讬 讻讚讬 砖诪讬砖讛讜 讬专讗讛 讗讜转讜 讜讬专爪讛 诇讚讘专 讗讬转讬", 讜讗谞讬 诪驻谞讛 讗讜转讛 诇讗谞砖讬诐 诪讗讜讚 住驻爪讬驻讬讬诐 - 诇讞讘专讬诐 讘转注砖讬讛 砖诪谞讛诇讬诐 诪转讻谞转讬 专讬讗拽讟 讜讙讬讬住讜 讗讜 诪讙讬讬住讬诐 注讚讬讬谉 诪转讻谞转 诇转驻拽讬讚 讚讜诪讛 诇诪讛 砖讗谞讬 专讜爪讛 诇诪爪讜讗. 诇诪讜讟讬讘爪讬讛 讬砖 谞讟讬讛 诇讛转讗讬诐 诇专诪转 讛诪讬拽讜讚 讜诇转讞讜砖转 讛诪住讜讙诇讜转. 讻讻诇 砖讗谞讞谞讜 诪诪讜拽讚讬诐, 讻讻诇 砖讗谞讞谞讜 诪讞驻砖讬诐 讗转 讛爪注讚 讛拽讟谉 讛讘讗 讜砖诪讞讬诐 诇拽讞转 讗讜转讜 - 讻讱 讙诐 讛诪讜讟讬讘爪讬讛 诇诇诪讜讚 讙讚诇讛, 讜讻讱 讙讚诇 讛住讬讻讜讬 砖谞爪诇讬讞 诇注讘讜专 讙诐 诪专讞拽讬诐 讙讚讜诇讬诐.

ToCode
1 418
# 讗讬讱 诇讗 诇讻转讜讘 讛讜讚注讜转 Debug 诇讗讞专讜谞讛 谞转拽诇转讬 讘诪讬诪讜砖 讛讘讗 诇驻讜谞拽爪讬讛 砖讗诪讜专讛 诇讛讚驻讬住 讛讜讚注转 Debug 专拽 讻砖讛诪注专讻转 专爪讛 讘诪爪讘 Debugging, 讗讘诇 诇讗 诇注砖讜转 讻诇讜诐 讘专讬爪讛 专讙讬诇讛:
function debug_log(msg) {
  if (DEBUG_MODE) {
    console.log(msg);
  }
}
讗驻砖专 诇讛砖转诪砖 讘驻讜谞拽爪讬讛 讘转讜讻谞讬转 讘爪讜专讛 讛讘讗讛:
const DEBUG_MODE = false;

function debug_log(msg) {
  if (DEBUG_MODE) {
    console.log(msg);
  }
}

debug_log("hello world");
讗讘诇 - 讬砖 注诐 讝讛 讚讬 讛专讘讛 讘注讬讜转: 1. 讛讘注讬讛 讛专讗砖讜谞讛 讛讬讗 砖讙诐 讻砖讗谞讞谞讜 诇讗 讘诪爪讘 讗讬转讜专 砖讙讬讗讜转, 注讚讬讬谉 讗谞讞谞讜 转拽讜注讬诐 注诐 拽专讬讗讛 诇驻讜谞拽爪讬讛 砖诇讗 注讜砖讛 讻诇讜诐. 讝讛 驻砖讜讟 讘讝讘讜讝. 2. 讘注讬讛 砖谞讬讛 讛讬讗 砖讘讻诇 诪拽专讛 讛驻专诪讟专 砖诪注讘讬专讬诐 诇驻讜谞拽爪讬讛 讬注讘讜专 砖讬注专讜讱. 讻诇讜诪专 讘讛驻注诇讛 讻讝讜:
debug_log(`1 + 1 = ${1+1}`);
讛诪讞砖讘 讬驻转讜专 讗转 转专讙讬诇 讛讞砖讘讜谉 讜讙诐 讬讻谞讬住 讗转 讛注专讱 诇诪讞专讜讝转, 讜讻诇 讝讛 诇驻谞讬 砖讛讜讗 讬专讬抓 讗转 讛驻讜谞拽爪讬讛 讜讬讘讬谉 砖诇讗 爪专讬讱 诇注砖讜转 讻诇讜诐 注诐 讛转讜爪讗讛. 诪讛 讗驻砖专 诇注砖讜转 讘诪拽讜诐? 诪讗讞专 讜 DEBUG_MODE 诇讗 讗诪讜专 诇讛砖转谞讜转 诇讗讜专讱 专讬爪转 讛转讜讻谞讬转 讗驻砖专 诇讛转讞讬诇 诪诇讞砖讘 讗转 讛驻讜谞拽爪讬讛 debug_log 驻注诐 讗讞转, 讻诇讜诪专 诇讻转讜讘 讗转 讛拽讜讚 讛讘讗:
const DEBUG_MODE = false;

if (DEBUG_MODE) {
  function debug_log(msg) {
    console.log(msg);
  }
} else {
  function debug_log(msg) {}
}


debug_log("hello world");
讗讘诇 讝讛 注讚讬讬谉 诇讗 诪住驻讬拽 讟讜讘 讻讬 讛诪讞砖讘 注讚讬讬谉 讬砖注专讱 讗转 讛驻专诪讟专 砖诇 讛驻讜谞拽爪讬讛. 转讬讘讜诇 拽讟谉 砖诇 Arrow Function 讬讻讜诇 诇砖驻专 讗转 讛诪爪讘:
const DEBUG_MODE = true;

if (DEBUG_MODE) {
  function debug_log(msg) {
    console.log(msg());
  }
} else {
  function debug_log(msg) {}
}


debug_log(() => "hello world");
谞.讘. 讗诐 讗转诐 诪砖转诪砖讬诐 讘 Webpack 讬砖 讚讬 讛专讘讛 驻诇讗讙讬谞讬诐 砖讬诪讞拽讜 讗转 讻诇 讛 console.log-讬诐 诇驻谞讬 诪注讘专 诇驻专讜讚拽砖谉 讜讗谞讬 讞讜砖讘 砖讝讜 讛讚专讱 讛诪讜诪诇爪转 讘讬讜转专. 讛驻诇讗讙讬谉 谞拽专讗 terser 讜讛讗讜驻爪讬讛 讛专诇讜讜谞讟讬转 谞拽专讗转 drop_console.

ToCode
1 418
# 讜讜讘讬谞专 Github Actions 谞诪讗住 诇讬 诪讝讜诐. 讗谞讬 讬讜讚注, 讗谞讬 诇讗 讛专讗砖讜谉 砖讗讜诪专 讗转 讝讛 讜注讻砖讬讜 注诐 讻诇 讝讛 砖讻讜诇诐 讘讝讜诐 讻诇 讛讬讜诐 讛专讘讛 讗谞砖讬诐 诪转讞讬诇讬诐 诇讛转注讬讬祝. 讜讗讜诇讬 讛讬讬转讬 爪专讬讱 讗转 讛转拽讜驻讛 讛讝讗转 讻讚讬 诇讛讘讬谉 注讚 讻诪讛 讝讛 诪注讬讬祝 诇砖讘转 诇讛拽砖讬讘 砖注讛 砖诇诪讛 诇砖讬讞讛 讗讜 诇讛专爪讗讛, 讗讜 讬讜转专 讙专讜注, 诇讛砖转转祝 讘驻讙讬砖转 注讘讜讚讛 讜诇谞拽专 诪讜诇 讛诪住讱. 讗讝 讛讞诇 诪讛砖讘讜注 讗谞讞谞讜 讞讜讝专讬诐 诇讛讬驻讙砖 诇讜讜讘讬谞专讬诐 讗讘诇 讛讜诇讻讬诐 注诇 讜讜讘讬谞专讬诐 讘住讙谞讜谉 讗讞专. 讗谞讬 诇讗 讘讟讜讞 砖讝讛 讬注讘讜讚, 讗讘诇 诪拽讜讜讛 砖讬讛讬讛 讻讬祝 诇谞住讜转. 讛谞讬住讬讜谉 讛专讗砖讜谉 砖诇讬 诇诪爪讜讗 诪砖讛讜 讬讜转专 诪注谞讬讬谉 诇注砖讜转 诪讝讜诐 讬讛讬讛 讘讬讜诐 讞诪讬砖讬. 讙讬讟讛讗讘 讗拽砖谞住 讛讜讗 诪注专讻转 CI/CD 砖诇 讙讬讟讛讗讘 砖注讜讝专转 诇谞讜 诇讛讜住讬祝 诇驻专讜讬拽讟 转讛诇讬讻讬诐 讗讜讟讜诪讟讬讬诐 讻诪讜 Deployment, 讛专爪讛 讗讜讟讜诪讟讬转 砖诇 讘讚讬拽讜转, 讘谞讬讛, 转讬讜讙 讜注讜讚 讛诪讜谉 讛诪讜谉 讚讘专讬诐. 讘讬讜诐 讞诪讬砖讬 讛拽专讜讘 谞讬驻讙砖 讘讝讜诐 诇讚讘专 注诇 Github Actions, 讗讘诇 诪讛专 诪讗讜讚 讗讞专讬 讛拽讚诪讛 拽爪专讛 砖诇讬 谞讘专讞 诪讛讝讜诐. 讛讻谞转讬 诪住驻专 驻专讜讬拽讟讬诐 诇讚讜讙诪讗 注诐 讚驻讬 注讘讜讚讛 讜讛住讘专讬诐 讗讬讱 诇讛讜住讬祝 讬讻讜诇转 讗讜讟讜诪爪讬讛 诪住讜讬诪转 诇讻诇 驻专讜讬拽讟 - 诇讚讜讙诪讗 讘驻专讜讬拽讟 讗讞讚 谞讬讬爪专 讘谞讬讛 讘爪讜专讛 讗讜讟讜诪讟讬转, 讘驻专讜讬拽讟 讗讞专 谞讙专讜诐 诇讙讬讟讛讗讘 诇讛专讬抓 讗转 讛讘讚讬拽讜转 讜讻讱 讛诇讗讛. 讗转诐 转讜讻诇讜 诇讘讞讜专 驻专讜讬拽讟 (讗讜 讬讜转专, 诇驻讬 诪讛 砖转住驻讬拽讜) 讜诇讛讜住讬祝 讗诇讬讜 诇驻讬 讚祝 讛讛讜专讗讜转 讗转 讛讗讜讟讜诪爪讬讛. 讘诪讛诇讱 讛注讘讜讚讛 讛讝讜诐 谞砖讗专 驻转讜讞 讗讝 讗诐 转转拽注讜 转讜讻诇讜 诇砖转祝 讗讬转讬 讗转 讛诪住讱 讜诇拽讘诇 注讝专讛 讘讝诪谉 讗诪转. 讘住讜祝 谞讬驻讙砖 诪讞讚砖 讘讝讜诐 讻讚讬 诇住讻诐 讗转 诪讛 砖注砖讬谞讜 讜诇专讗讜转 专注讬讜谞讜转 诇讛专讞讘讛. 讗诐 讗转诐 诪专讙讬砖讬诐 讛专驻转拽谞讬诐 诪住驻讬拽 讻讚讬 诇讛爪讟专祝, 讜讻诪讜讘谉 住拽专谞讬诐 诪住驻讬拽 诇讙讘讬 Github Actions, 讗谞讬 讚讬 讘讟讜讞 砖转爪讗讜 注诐 讛讘谞讛 讟讜讘讛 砖诇 讛讻诇讬 讜诇驻讞讜转 2-3 专注讬讜谞讜转 诇砖讬诪讜砖 讘讜 讘驻专讜讬拽讟 砖诇讻诐. 讗讬驻讛 诪爪讟专驻讬诐? 砖诪讞 砖砖讗诇转诐: https://www.tocode.co.il/workshops/97. 谞转专讗讛 讘讞诪讬砖讬 讘注砖专 讘讘讜拽专.

ToCode
1 418
# 注讝讜讘 讝讛 诇讗 讬讻讜诇 诇讛讬讜转 讛谞讛 拽讜讚 JavaScript 拽爪专 讜诇讙诪专讬 诪讜诪爪讗 砖转驻拽讬讚讜 诇住驻讜专 讘讬拽讜专讬诐 讘讗转专. 讻诇 驻注诐 砖讗转诐 诪讙讬注讬诐 诇讗转专 注诐 讛拽讜讚 讛讝讛 诪砖转谞讛 讘 local storage 讬注诇讛 讘-1, 讜讬讜爪讙 注诇 讛诪住讱 讘转讜讱 讛 body:
const visits = localStorage.getItem('visits');
if (visits == null) {
  localStorage.setItem('visits', 1);
} else {
  localStorage.setItem('visits', Number(visits) + 1);
}

document.body.textContent = Number(visits) + 1;
诪专讜爪讬诐? 讗谞讬 诪拽讜讜讛 砖诇讗. 讛驻讜谞拽爪讬讛 getItem 诪讞讝讬专讛 诪讞专讜讝转, 讜讘诪讞专讜讝转 讛讝讗转 讘讛讞诇讟 讬讬转讻谉 砖诪讜驻讬注 诪住驻专 (讝讛 砖讗谞讞谞讜 砖诪谞讜 砖诐), 讗讘诇 讬讬转讻谉 讙诐 砖讬砖 讘讛 诪砖讛讜 讗讞专. 讘诪拽专讛 砖讛驻讜谞拽爪讬讛 诪讞讝讬专讛 诪讞专讜讝转 砖讗讬谞讛 诪住驻专 讛拽讜讚 讬讚驻讬住 NaN 讜讬诪砖讬讱 诇讛讚驻讬住 注专讱 讝讛 诇注讜诇诪讬 注讜诇诪讬诐 (讗讜 诇驻讞讜转 注讚 砖讛诪砖转诪砖 讬诪讞拽 讗转 讛 localStorage). 讗讝 谞讻讜谉 讻砖讗谞讞谞讜 诪住转讻诇讬诐 注诇 讛拽讜讚 诇讗 讘专讜专 讗讬讱 讬讻讜诇 诇讛讬讻谞住 诇 localStorage 讘诪驻转讞 visits 注专讱 砖讗讬谞谞讜 诪住驻专. 讜谞讻讜谉, 讝讛 诪驻转讛 诇讟讗讟讗 讗转 诪拽专讛 讛拽爪讛 讛讝讛 讘"注讝讜讘, 讝讛 诇讗 讬讻讜诇 诇拽专讜转", 讗讘诇 讛讗诪转 砖讛讘讗讙讬诐 讛讻讬 诪注谞讬讬谞讬诐 讜讛驻专讬爪讜转 讛讻讬 诪注谞讬讬谞讜转 拽讜专讬诐 讚讜讜拽讗 讘诪拽讜诐 讛讝讛 砖诇 讚讘专讬诐 砖诇讗 讬讻讜诇讬诐 诇讛讬讜转. 讘诪拽讜诐 诇住诪讜讱 注诇 讛诪讝诇 讗讜 注诇 讛讬爪讬专转讬讜转 砖诇谞讜, 讛专讘讛 讬讜转专 诪讜注讬诇 诇讜讜讚讗. 讻讻讛 讝讛 谞专讗讛 讗讞专讬 转讬拽讜谉:
let visits = localStorage.getItem('visits');

if (visits == null || isNaN(Number(visits))) {
  visits = 1;
} else {
  visits = Number(visits) + 1;
}

localStorage.setItem('visits', visits);
document.body.textContent = visits;
谞.讘. 讛住讬驻讜专 砖诇 localStorage 讻讗谉 讛讜讗 专拽 讚讜讙诪讗 拽讟谞讛. 讘讞讬讬诐 讛讗诪讬转讬讬诐 转拽诇讜转 讻讗诇讛 诪讜驻讬注讜转 讘讛诪讜谉 爪讜专讜转 讜讘讛诪讜谉 诪拽专讬诐. 讘讚讬拽讛 转讜讱 讻讚讬 转谞讜注讛 讝讛 讛专讙诇 讟讜讘 讘讻诇 讛砖驻讜转.

ToCode
1 418
# 专讬讗拽讟 讘 33 砖讜专讜转 讗讜诇讬讘专 专讗住诇 驻讬专住诐 诇讗 诪讝诪谉 诪讬诪讜砖 砖诇 专讬讗拽讟 讘-33 砖讜专讜转 砖注讜专专 讛转诇讛讘讜转 专讘讛 讜讘爪讚拽. 讛专讘讛 驻注诪讬诐 讻砖讗谞讞谞讜 诪住转讻诇讬诐 注诇 住驻专讬讛 讙讚讜诇讛 讗讜 诪注专讻转 住讜驻专 诪转讜讞讻诪转 拽诇 诇砖讻讜讞 砖诪讗讜讞专讬 讻诇 讛拽讜讚 讬砖 讛专讘讛 驻注诪讬诐 专注讬讜谉 讗讞讚 驻砖讜讟, 砖讗诐 谞爪诇讬讞 诇讛讘讬谉 讗讜转讜 砖讗专 讛讚讘专讬诐 讬住转讚专讜 诪注爪诪诐. 讛讬讻讜诇转 诇讻转讜讘 讗转 讛专注讬讜谉 讛诪专讻讝讬 讛讝讛 讘爪讜专讛 诪讚讜讬拽转 讜转诪爪讬转讬转 讛讬讗 诪专砖讬诪讛 讜讗谞讬 诪讗讜讚 诪诪诇讬抓 诇拽专讜讗 讗转 讛驻讜住讟 讜讛拽讜讚 砖诇 讗讜诇讬讘专 诇讻诇 诪讬 砖专讜爪讛 诇讙诇讜转 讬讜转专 注诇 JavaScript 讜专讬讗拽讟. 讗讘诇 - 讞砖讜讘 诇讝讻讜专 砖讘谞讬讬转 POC, 讘谞讬讬转 驻专讬讬诪讜讜专拽 讗讜 砖讬诪讜砖 讘 Framework 讗诇讛 砖诇讜砖讛 转驻拽讬讚讬诐 砖讜谞讬诐 砖讻诇 讗讞讚 诪讛诐 讚讜专砖 住讟 诪讬讜诪谞讜讬讜转 讗讞专. 讗诐 讗转讛 讬讜讚注 诇转诪爪转 讗转 讛专注讬讜谉 讛诪专讻讝讬 讘 33 砖讜专讜转 讝讛 诇讗 讗讜诪专 砖转爪诇讬讞 诇讘谞讜转 驻专讬讬诪讜讜专拽 讙讚讜诇 砖讬爪诇讬讞 诇注谞讜转 注诇 爪专讻讬诐 砖诇 诪讗讜转 讗诇驻讬 诪转讻谞转讬诐 讜诇注讘讜讚 讘爪讜专讛 讬注讬诇讛 注讘讜专 讻讜诇诐, 讜讗诐 讗转 讬讜讚注转 诇讘谞讜转 驻专讬讬诪讜讜专拽 讙讚讜诇 讝讛 诇讗 讗讜诪专 砖讗转 讬讜讚注转 诇讛砖转诪砖 讘讜 讘爪讜专讛 讛讟讜讘讛 讘讬讜转专 诇驻专讜讬拽讟 住驻爪讬驻讬. 讻砖讗谞讞谞讜 诪讙讬讬住讬诐 诪转讻谞转讬诐, 讞砖讜讘 诇讝讻讜专 诪讛 讛转驻拽讬讚 讜诪讛 住讟 讛诪讬讜诪谞讜讬讜转 讛讟讜讘 讘讬讜转专 讘砖讘讬诇 诇讗讬讬砖 讗讜转讜. (讗讜 讘谞讬住讜讞 讗讞专, 讛拽讜讚 砖诇 讗讜诇讬讘专 讗讻谉 诪讚讜讬拽 讗讘诇 讬砖 砖诐 砖讜专讜转 砖讛讬讬转讬 爪专讬讱 诪诪砖 诇讛转讗诪抓 讻讚讬 诇讛讘讬谉. 讝讛 注讜讘讚 讻砖讗转讛 诇讘讚 讗讘诇 诇讗 讛讬讬转讬 专讜爪讛 诇讞驻砖 讜诇转拽谉 讗爪诇讜 讘讗讙讬诐)

ToCode
1 418
# 诪诪砖讬讻讬诐 诪讗讜转讛 谞拽讜讚讛 诇驻讬 讛讙讚专讛 驻讜驻讜诇专讬转 砖诇 拽讜讚 Legacy, 拽讜讚 讛讜驻讱 诇 Legacy 讘专讙注 砖讗讬谉 诇讜 讘讚讬拽讜转. 讗谞讬 讞讜砖讘 砖讝讜 讛讙讚专讛 拽爪转 谞讜拽砖讛 讗讘诇 讛讬讗 讘讗讛 诇转讗专 讗转 讛讞讜讜讬讛 砖诇 拽讜讚 砖讬砖 诇谞讜 讘诪注专讻转 讗讘诇 讗谞讞谞讜 诇讗 讬讜讚注讬诐 讗讬讱 诇讛转诪讜讚讚 讗讬转讜, 诇讗 讛讻讬 诪讘讬谞讬诐 讗讜转讜 讜讛讻讬 讙专讜注 - 讻砖转讛讬讛 讘讜 讘注讬讛 诇讗 谞讜讻诇 诇讛转诪讜讚讚 讗讬转讛. 讘讚讬拽讜转 讛谉 讘讗诪转 讚专讱 讟讜讘讛 诇讛转诪讜讚讚 注诐 讘注讬讜转 讗讘诇 讛讬讗 诇讗 讛讬讞讬讚讛. 讚专讱 谞讜住驻转 砖讗谞讬 诪讗讜讚 讗讜讛讘 讛讬讗 讛讬讻讜诇转 诇讛诪砖讬讱 诪讗讜转讛 谞拽讜讚讛 讗讜 诇谞住讜转 砖讜讘 讗转 诪讛 砖诇讗 注讘讚. 讘 Redux 诇诪砖诇 讗谞讬 讬讻讜诇 讘拽诇讜转 诇拽讞转 讗转 讻诇 讛 State 砖诇 讛讬讬砖讜诐 讜诇砖诪讜专 讗讜转讜 讘 DB 讻诇 驻注诐 砖讬砖 诇讬 砖讙讬讗讛. 讘砖讘讬诇 诇诪爪讜讗 诪讛 拽专讛 诇讗 讘住讚专 讻诇 诪讛 砖爪专讬讱 讝讛 诇讟注讜谉 讗转 讗讜转讜 State 讜诇谞住讜转 诇注砖讜转 讗转 诪讛 砖讛诪砖转诪砖 谞讬住讛 讜讻讱 诇专讗讜转, 诇讞拽讜专 讜讙诐 诇转拽谉. 讻讻诇 砖讛讗专讻讬讟拽讟讜专讛 讛讜驻讻转 讬讜转专 诪讜专讻讘转 诪讬诪讜砖 诪谞讙谞讜谉 砖诇 "谞住讛 砖谞讬转" 讛讜驻讱 讛专讘讛 讬讜转专 诪住讜讘讱. 讻砖讬砖 诇谞讜 Micro Services 砖诪转拽砖专讬诐 讗讞讚 注诐 讛砖谞讬 讗讜诇讬 注诇 砖专转讬诐 砖讜谞讬诐, 讜讻诇 转讛诇讬讱 诪注专讘 砖讬谞讜讬 State 驻谞讬诪讬 砖诇 讛专讘讛 住专讘讬住讬诐 讛讘讜专讜转 专拽 讬注诪讬拽讜. 讟讬驻 砖注讝专 诇讬 讘讘谞讬讬转 Micro Services 讟讜讘讬诐 讛讜讗 诇讛砖讗讬专 讻诪讛 砖讬讜转专 谞拽讜讚讜转 讛转注专讘讜转, 讜诇砖诪讜专 讻诪讛 砖驻讞讜转 State. 诇讚讜讙诪讗 - 讗诐 讬砖 诇讬 住专讘讬住 砖诇讬讞转 诪讬讬诇 转讝讻讜专转 砖驻讜谞讛 诇住专讘讬住 讗讞专 讻讚讬 诇拽讘诇 诪诪谞讜 专砖讬诪转 诇拽讜讞讜转, 讗谞讬 讗专爪讛 诇讘谞讜转 讗转 住专讘讬住 讛诪讬讬诇讬诐 注诐 砖转讬 谞拽讜讚讜转 讻谞讬住讛: 讘 Default 讛讜讗 讬讬拽讞 讗转 专砖讬诪转 讛诇拽讜讞讜转 诪讛住专讘讬住 砖诪讞讝讬拽 讗转 讛诇拽讜讞讜转, 讗讘诇 谞拽讜讚转 讻谞讬住讛 谞讜住驻转 转讗驻砖专 讛驻注诇讛 讘诪注讬谉 Debug Mode, 讻讗砖专 专砖讬诪转 讛诇拽讜讞讜转 注讜讘专转 讻驻专诪讟专. 讘爪讜专讛 讻讝讗转 讗谞讞谞讜 讬讻讜诇讬诐 诇讘讚讜拽 讻诇 讗讞讚 诪讛住专讘讬住讬诐 讘谞驻专讚 讜诇谞住讜转 砖讜讘 讜砖讜讘 诇讛专讬抓 专拽 讗转 讛诇拽讜讞讜转 砖谞讻砖诇讜.

ToCode
1 418
# 诪讬诪讜砖 TCO 讘 Python 诇讗 诪讝诪谉 讻转讘转讬 驻讛 注诇 诪讬诪讜砖 讗诇讙讜专讬转诐 专拽讜专住讬讘讬 讘 Python 讘爪讜专讛 讗讬讟专讟讬讘讬转 讻讚讬 诇讛转讙讘专 注诇 讛注讜讘讚讛 砖驻讬讬转讜谉 诇讗 讬讜讚注转 诇注砖讜转 讗讜驻讟讬诪讬讝爪讬讛 诇专拽讜专住讬讜转 讝谞讘, 讜诇讻谉 讬砖 讛讙讘诇讛 注诇 注讜诪拽 讛专拽讜专住讬讛. 讻诪讛 讞讘专讬诐 砖拽专讗讜 讗转 讝讛 砖讗诇讜 讗诐 讗讬谉 讚专讱 讟讜讘讛 讬讜转专 诇讻转讜讘 讗诇讙讜专讬转诐 砖讬专讗讛 专拽讜专住讬讘讬 讗讘诇 注讚讬讬谉 讬讻诇讜诇 TCO 讜讬讗驻砖专 专拽讜专住讬讛 讘讻诇 注讜诪拽. 讗讝 讛讗诪转 砖讬砖 讚专讱 讜讛讬讗 讗驻讬诇讜 讚讬 驻砖讜讟讛 - 驻砖讜讟 爪专讬讱 诇拽讞转 讗转 讛拽讜讚 砖讻转讘谞讜 讜诇讗专讙谉 讗讜转讜 讻讱 砖讗驻砖专 讬讛讬讛 诇讛砖转诪砖 讘讜 砖讜讘 讜砖讜讘. 讛专注讬讜谉 讘讙讚讜诇: 1. 谞讻转讜讘 Decorator 砖讬专讬抓 讗转 讛驻讜谞拽爪讬讛 砖诇谞讜 讘诇讜诇讗转 while 砖诪讜爪讬讗讛 讗诇诪谞讟讬诐 诪转讜专 讜诪诪砖讬讻讛 诇讛驻注讬诇 讗转 讛拽讜讚 砖讜讘 讜砖讜讘 注讚 砖讛转讜专 诪转专讜拽谉. 2. 谞讻转讜讘 驻讜谞拽爪讬讛 讘砖诐 recur 砖转讚诪讛 讗转 讛拽专讬讗讛 讛专拽讜专住讬讘讬转. 讘注爪诐 诪讛 砖讛驻讜谞拽爪讬讛 转注砖讛 讝讛 讘住讱 讛讻诇 诇讛讜住讬祝 讗转 讛驻专诪讟专讬诐 砖讛注讘专谞讜 诇讛 诇转讜专 诪讛 Decorator. 3. 谞驻注讬诇 讗转 recur 讘诪拽讜诐 讗转 讛拽专讬讗讛 讛专拽讜专住讬讘讬转, 讗讘诇 注诐 讗讜转诐 驻专诪讟专讬诐 讜讘诇讬 诇讛砖转诪砖 讘诪讬讚注 砖讞讜讝专. 拽讜讚 诇讛诪讞砖讛? 讘专讜专-
def tco(f):
    q = []
    def recur(*args):
        q.append(args)

    def inner(*args):
        q.append(args)
        while len(q) > 0:
            next_call_args = q.pop()
            res = f(*next_call_args)
        return res

    inner.recur = recur
    return inner

@tco
def fact(n, start=1):
    if n <= 1:
        return start

    return fact.recur(n - 1, start * n)

print(fact(1_000))
讛驻讜谞拽爪讬讛 fact 讛讬讗 驻讜谞拽爪讬讛 专拽讜专住讬讘讬转 讛诪讞砖讘转 注爪专转. 讛讬讗 讻转讜讘讛 讻讱 砖转讜讻诇 诇讛砖转诪砖 讘讗讜驻讟讬诪讬讝爪讬讬转 诪讞讬拽转 讝谞讘 讛专拽讜专住讬讛, 讜讘砖讘讬诇 讝讛 诪拽讘诇转 讙诐 驻专诪讟专 砖谞讬 砖谞拽专讗 start 砖讘注爪诐 诪讞讝讬拽 讗转 讞讬砖讜讘 讛讘讬谞讬讬诐 砖诇 讛专拽讜专住讬讛. 诇驻谞讬 讛讗讜驻讟讬诪讬讝爪讬讛 讛讬讗 讛讬转讛 谞讻转讘转 讻讱:
def fact(n, start=1):
    if n <= 1:
        return start

    return fact(n - 1, start * n)
讜讛讬转讛 谞讜驻诇转 讘讞讬砖讜讘 注诇 Stack Overflow 讗诐 讛讬讬转诐 诪谞住讬诐 诇讞砖讘 注爪专转 砖诇 诪住驻专 讙讚讜诇 (诇诪砖诇 讗诇祝). 讘砖讘讬诇 诇讛讜住讬祝 讗讜驻讟讬诪讬讝爪讬讬转 TCO 讻诪注讟 讜诇讗 爪专讬讱 砖讬谞讜讬讬诐: 诪住驻讬拽 讛讬讛 诇讛讜住讬祝 讗转 讛 Decorator 讜诇讛讞诇讬祝 讗转 讛拽专讬讗讛 诇 fact 讘拽专讬讗讛 诇 fact.recur. 讜讻谉 讗谞讬 讞讜砖讘 砖讝讛 讞诇拽 诪讛讬讜驻讬 砖诇 Python 讜讘讗讜驻谉 讻诇诇讬 砖诇 讛专讘讛 砖驻讜转 讚讬谞诪讬讜转 - 讛讬讻讜诇转 诇拽讞转 拽讜谞住驻讟 砖讗转讛 爪专讬讱 砖讗讜诇讬 诇讗 谞诪爪讗 讘砖驻讛, 讜诇讘谞讜转 讗讜转讜 讘爪讜专讛 驻砖讜讟讛 讜讙谞专讬转 讻讱 砖讗驻砖专 讬讛讬讛 诇讛砖转诪砖 讘讜 砖讜讘 讜砖讜讘 讘讛诪砖讱 讛驻专讜讬拽讟.

ToCode
1 418
# 讜讜转拽 讘讛讜专讗讛 讗讬转诪专 拽专诪专 讻转讘 诇讗讞专讜谞讛 讗转 讛讚讘专讬诐 讛讘讗讬诐: > 讛讜专讗讛 讛讜讗 讗讞讚 讛转讞讜诪讬诐 讛讬讞讬讚讬诐 砖讘讜 诇讜讜转拽 讗讬谉 讞砖讬讘讜转 讗诪讬转讬转 讘诪注砖讛 讛诪讬讬讚讬, 诪诇讘讚 讛砖讻专. 诪砖驻讟 诪讟诇讟诇 讻砖讬讜爪讗 诪驻讬讜 砖诇 诪谞讛诇 讘讬转 住驻专 转讬讻讜谉 诇砖注讘专. 讗谞讬 讞讜砖讘 砖谞讬住讜讞 讬讜转专 诪讚讜讬拽 砖诇 讛转讞讜砖讛 讛讜讗 砖讘讛讜专讗讛 讗谞讞谞讜 讬讻讜诇讬诐 诇驻讙讜砖 讗谞砖讬诐 注诐 讜讜转拽 讜谞讬住讬讜谉 砖诇 注砖专 砖谞讬诐 砖诪诇诪讚讬诐 驻讞讜转 讟讜讘 诪讗谞砖讬诐 注诐 谞讬住讬讜谉 砖诇 讻诪讛 讞讜讚砖讬诐. 讜注诇 谞讬住讜讞 讻讝讛 讗谞讬 讞讜转诐 讘讚讬 讛专讘讛 转讞讜诪讬诐 讜讙诐 讻诪讜讘谉 讘转讻谞讜转. 讛讘讞讬专讛 讛拽诇讛 诇注砖讜转 讻砖讗谞讞谞讜 讻讘专 诪爪诇讬讞讬诐 诪砖讛讜 讛讬讗 诇讛诪砖讬讱 诇注砖讜转 讗转 讗讜转讜 讚讘专 砖注讘讚 讜诇讛讬讝讛专 诪讻诇 诪讛 砖注诇讜诇 诇讗 诇讛爪诇讬讞. 讻砖诪诪砖讬讻讬诐 注诐 讝讛 砖谞讛 讗讞专讬 砖谞讛 讘诪拽讜诐 诇谞爪诇 讗转 砖谞讜转 讛讜讜转拽 诇诇诪讬讚讛 讗谞讞谞讜 驻砖讜讟 诪讘讝讘讝讬诐 讗讜转谉 注诇 讞讝专讛. 诪讜专讬诐 讟讜讘讬诐 (讜诪转讻谞转讬诐 讟讜讘讬诐) 讬讜讚注讬诐 诇谞爪诇 讻诇 砖谞转 谞讬住讬讜谉 讻讚讬 诇讛砖转驻专. 讛诐 注讜砖讬诐 诪讗诪抓 诇讙诇讜转 讚专讻讬诐 讗讞专讜转, 讟讜讘讜转 讬讜转专 (讗讜 驻讞讜转) 诇讛注讘讬专 讗转 讛讞讜诪专, 讜诪诪砖讬讻讬诐 诇砖讞拽 注诐 讛讻讬转讛. 讞讜讚砖 讗讞专讬 讞讜讚砖 讜砖谞讛 讗讞专讬 砖谞讛 讘讙讬砖讛 讻讝讜 诪讬讬爪专转 讙专祝 讛爪诇讞讜转 注诐 注诇讬讜转 讜讬专讬讚讜转 讗讘诇 讘诪讙诪讛 讻诇诇讬转 砖诇 注诇讬讛. 讻诇诇 讗爪讘注 讟讜讘 讻讚讬 诇讚注转 砖讗谞讞谞讜 诇讜诪讚讬诐 讘讗诪转 诪讛谞讬住讬讜谉 讛讜讗 诇砖讬诐 诇讘 讙诐 诇讻讬砖诇讜谞讜转. 诇驻注诪讬诐 砖谞讬住讬转诐 诪砖讛讜 讜讛转诇诪讬讚讬诐 诇讗 讗讛讘讜 讗转 讝讛, 讗讜 砖讻转讘转诐 诪谞讙谞讜谉 讞讚砖 讘拽讜讚 砖注讘讚 诪诪砖 讙专讜注. 诇驻注诪讬诐 讛讚专讱 诇讛砖转驻专 讜诇谞爪诇 讟讜讘 讬讜转专 讗转 砖谞讜转 讛谞讬住讬讜谉 砖讬砖 诇讻诐 讛讬讗 诇谞住讜转 诇砖讘讜专 拽爪转 讬讜转专 讚讘专讬诐.

ToCode
1 418
# 驻讜拽讜住 拽讞讜 砖转讬 砖讗诇讜转 诇讛转讞诇讛. 砖讬诪专讜 讗转 讛转砖讜讘讛 讘住讜讚 诇讗 爪专讬讱 诇住驻专 诇讬, 诇讗 诇讘谞讬 讝讜讙, 诇讗 诇诪砖驻讞讛, 诇讗祝 讗讞讚. 住讜讚. 讛谞讛 讝讛 讘讗: 1. 讻诪讛 讟讻谞讜诇讜讙讬讜转 讞讚砖讜转 诇诪讚转诐 讘砖谞转讬讬诐 讛讗讞专讜谞讜转? 2. 讛讗诐 讗转诐 诪专讙讬砖讬诐 砖讗讬谉 诪住驻讬拽 讛讝讚诪谞讜讬讜转 讟讜讘讜转 讘转注砖讬讛? 诇诪专讜转 砖讛谉 诇讗 谞专讗讜转 拽砖讜专讜转, 砖转讬 讛砖讗诇讜转 讛讗诇讛 讛讜诇讻讜转 讬讞讚 讻诪讜 讞讜讟 讜诪讞讟, 讻诪讜 驻讟专讜讝讬诇讬讛 讜讟讞讬谞讛, 讻诪讜... 谞讜 讛讘谞转诐 讗谞讬 诪拽讜讜讛. 讻砖拽讜驻爪讬诐 诪谞讜砖讗 诇谞讜砖讗, 讻砖诇讜诪讚讬诐 讬讜转专 诪讚讬 讟讻谞讜诇讜讙讬讜转 讬讜转专 诪讚讬 诪讛专, 拽砖讛 诇讛讙讬注 诇专诪讛 讙讘讜讛讛 讘讟讻谞讜诇讜讙讬讛 诪住讜讬诪转. 讜讘转注砖讬讛 诪讛 诇注砖讜转 爪专讬讻讬诐 诪转讻谞转讬诐 诪诪砖 讟讜讘讬诐 讘讟讻谞讜诇讜讙讬讛 诪住讜讬诪转. 讛讻住祝 讛讙讚讜诇 讜讛讛讝讚诪谞讜讬讜转 讛讙讚讜诇讜转 讚讜专砖讬诐 诪讻诐 专讬讻讜讝 讜诇讬诪讜讚 诇注讜诪拽 砖诇 讛讚讘专 砖讗讜转讜 讛诇拽讜讞 爪专讬讱 (讜讝讛 谞讻讜谉 讙诐 诇砖讻讬专讬诐, 讛诇拽讜讞 讬讻讜诇 诇讙诪专讬 诇讛讬讜转 讛诪注住讬拽 讛驻讜讟谞爪讬讗诇讬 砖诇讻诐). 注讻砖讬讜 讻讜诇谞讜 讬讜讚注讬诐 讗讬讱 拽讜专讛 砖讬讜爪讗讬诐 诪专讬讻讜讝: 讗谞讞谞讜 诪转讞讬诇讬诐 诇诇诪讜讚 专讬讗拽讟, 讘讟讜讞讬诐 砖讝讛 讛讚讘专 讛讙讚讜诇 讛讘讗, 诪砖拽讬注讬诐 讘讝讛 讻诪讛 砖讘讜注讜转 讜讗讝 讻诇 讛讗谞砖讬诐 住讘讬讘谞讜 诪转讞讬诇讬诐 驻转讗讜诐 诇讚讘专 注诇 Vue. 谞讚诪讛 砖讻诇 诪讜讚注讜转 讛讚专讜砖讬诐 砖诇 专讬讗拽讟 谞注诇诪讜 讜讛驻讻讜 诇诪讜讚注讜转 讚专讜砖讬诐 诇 Vue, 讜讻驻专讬诇讗谞住专 驻转讗讜诐 讗转讛 诪拽讘诇 注砖专讛 讟诇驻讜谞讬诐 讘讬讜诐 诪诇拽讜讞讜转 砖专讜爪讬诐 讬讬注讜抓 注诇 Vue. 谞讜, 讛讘谉 讗讚诐 讗讜诪专 诇注爪诪讜, 讻谞专讗讛 砖讗谞讬 诇讗 讘讻讬讜讜谉. 讻谞专讗讛 砖爪专讬讱 诇诇诪讜讚 Vue. 讻谞专讗讛 砖讻诇 讛专讬讗拽讟 讛讝讛 砖谞专讗讛 诇讬 诇驻谞讬 讞讜讚砖 讜讞爪讬 讻诪讜 讛讚讘专 讛讙讚讜诇 讛讘讗 讘注爪诐 诇讗 讛讞讝讬拽 诪注诪讚 讻诇 讻讱 讛专讘讛 讝诪谉. 爪专讬讱 诇讛转拽讚诐. 讜讻谉 讘讚讬讜拽 讘专讙注 讛讝讛 讘诪拽讜诐 诇讛转拽讚诐 讗转诐 讘注爪诐 讞讜讝专讬诐 讞讜讚砖 讜讞爪讬 讗讞讜专讛. 诪转讞讬诇讬诐 诇诇诪讜讚 Vue 专拽 讘砖讘讬诇 诇讙诇讜转 注讜讚 讞讜讚砖讬讬诐 砖讻诇 "讛诇拽讜讞讜转" 专讜爪讬诐 讗转 讛讚讘专 讛讙讚讜诇 讛讘讗. 讛讘讗讙 讘住讬驻讜专 讛讜讗 诇讗 讛诇拽讜讞讜转 砖讛讙讬注讜 讗诇讬讻诐 讗诇讗 讛诇拽讜讞讜转 砖诇讗 专讗讬转诐. 诪讜讚注讜转 讛讚专讜砖讬诐 讛谉 专拽 讞诇拽 拽讟谉 诪讛讚专讱 讘讛 诪注住讬拽讬诐 诪讙讬讬住讬诐 注讜讘讚讬诐, 讜讟诇驻讜谞讬诐 砖诪讙讬注讬诐 诪砖讜诐 诪拽讜诐 讛诐 讗讞讜讝 拽讟谉 诪讗讜讚 诪讛诇拽讜讞讜转 砖诇 专讜讘 讛驻专讬诇讗谞住专讬诐. 讛讚专讱 诇讛讙讬注 诇讛讝讚诪谞讜讬讜转 讛讟讜讘讜转 讛讬讗 砖讛诇拽讜讞讜转 讛谞讻讜谞讬诐 讬讙讬注讜 讗诇讬讻诐 讻砖讛诐 讘讗诪转 爪专讬讻讬诐 诪讜诪讞讛 讘讟讻谞讜诇讜讙讬讛 砖诇讛诐. 讗转诐 专讜爪讬诐 诇讛讬讜转 讛讘谉 讗讚诐 砖 Head Hunters 爪讚讬诐. 讗转 讛讛讝讚诪谞讜讬讜转 讛讟讜讘讜转 讘讗诪转 讗转诐 驻砖讜讟 诇讗 专讜讗讬诐 讻专讙注. 讜诇讗 转专讗讜 注讚 砖转讛讬讜 诪住驻讬拽 讟讜讘讬诐 讜注讚 砖讗谞砖讬诐 讗讞专讬诐 讬讚注讜 砖讗转诐 诪住驻讬拽 讟讜讘讬诐 讻讚讬 诇驻转讜专 诇讛诐 讗转 讛讘注讬讛. 讝讛 诇讜拽讞 讝诪谉, 讝讛 诇讜拽讞 专讬讻讜讝 讗讘诇 讛讻讬 拽砖讛 - 讝讛 讚讜专砖 诇讛转注诇诐 诪讻诇 讗诇驻讬 讛讛讝讚诪谞讜讬讜转 砖讻诇 讛讝诪谉 诪讜驻讬注讜转 讜讬注砖讜 讛讻诇 讻讚讬 诇讛住讬讟 讗讜转谞讜 诪讛诪住诇讜诇.