uz
Feedback
ToCode

ToCode

Kanalga Telegramโ€™da oโ€˜tish

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

Ko'proq ko'rsatish
1 419
Obunachilar
Ma'lumot yo'q24 soatlar
-17 kunlar
+230 kunlar
Postlar arxiv
ToCode
1 419
ื‘ื ื•ืกืฃ ื” API ืฉืœ testing-library ื ื•ืขื“ ืœืขื–ื•ืจ ืœื ื• ื”ืžืชื›ื ืชื™ื ืœื‘ื ื•ืช ืงื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ - ืœื“ื•ื’ืžื” ืžืชื›ื ืช ื™ืฆื˜ืจืš ืžืื•ื“ ืœื”ืชืืžืฅ ื›ื“ื™ ืœืชืคื•ืก ืืœืžื ื˜ ืœืคื™ CSS Selector, ื•ื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ื•ืžื•ื‘ื ื” ืœื”ืกืชื›ืœ ืฉื ืขืœ ืืœืžื ื˜ื™ื ืœืคื™ Aria Role. ื”ืžื˜ืจื” ื”ื™ื ื›ืžื•ื‘ืŸ ืœืขื•ื“ื“ ืžืชื›ื ืชื™ื ืœื”ื˜ืžื™ืข Aria Roles ื‘ืžืงื•ืžื•ืช ื”ื ื›ื•ื ื™ื ื•ื‘ืื•ืคืŸ ื›ืœืœื™ ืœืขื‘ื•ื“ ื‘ืฆื•ืจื” ื ื’ื™ืฉื”. ## ืžื” ืจืข ื‘ Cypress ืกื™ื™ืคืจืก ืžืคืขื™ืœ ื“ืคื“ืคืŸ ื—ื™ืฆื•ื ื™ ื•ืœื›ืŸ ื–ืžืŸ ื”ืขืœื™ื” ืฉืœื• ืืจื•ืš ื™ื•ืชืจ. ื‘ืžืฉื—ืงื™ื ืฉืœื™ ืื™ืชื• ื”ื•ื ื’ื ื ืชืงืข ืœืขืชื™ื ื™ื•ืชืจ ืงืจื•ื‘ื•ืช ื•ื”ื™ื™ืชื™ ืฆืจื™ืš ืœืกื’ื•ืจ ืืช ื” GUI ื•ืœืคืชื•ื— ืžื—ื“ืฉ. ื” API ืฉืœ ืกื™ื™ืคืจืก ืžื‘ื•ืกืก ืขืœ jQuery ื•ื’ื ื–ื” ืžืจื’ื™ืฉ ืงืฆืช ืžื™ื•ืฉืŸ ื”ื™ื•ื. ## ืžื” ืจืข ื‘ Testing Library ืกืคืจื™ื•ืช testing-library ื ื•ืขื“ื• ืœื‘ื“ื•ืง ืงื•ืžืคื•ื ื ื˜ื” ืกืคืฆื™ืคื™ืช ื•ืœืขื–ื•ืจ ืœืžืชื›ื ืชื™ื ืœื›ืชื•ื‘ ืงื•ื“ ื˜ื•ื‘ ื™ื•ืชืจ ืœืื•ืชื” ืงื•ืžืคื•ื ื ื˜ื”. ืื ืืชื ื‘ื•ื“ืงื™ื ืงื•ื“ ืฉืœื›ื ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืื•ื“ ื ื•ื—, ืื‘ืœ ืื ื‘ื•ื“ืงื™ื ืงื•ื“ ืฉืื™ืŸ ืœื›ื ืฉืœื™ื˜ื” ืขืœื™ื• ืื• ืฉืฆืจื™ื›ื™ื ืœื›ืชื•ื‘ ื‘ื“ื™ืงืช ืื™ื ื˜ื’ืจืฆื™ื” ืฉืžืฉืœื‘ืช ืžืกืคืจ ืงื•ืžืคื•ื ื ื˜ื•ืช ืื– testing-library ืžืชื—ื™ืœ ืœื”ื™ืจืื•ืช ืžืกื•ืจื‘ืœ. ื”ืžืžืฉืง ืฉืœ testing-library ืžืื•ื“ ื ื•ื— ื›ืฉืฆืจื™ืš ืœื‘ื“ื•ืง ืงื•ืžืคื•ื ื ื˜ื” ืฉื›ืชื•ื‘ื” ื˜ื•ื‘ ื•ืžืชื ื”ื’ืช ื›ืžื• ืฉืฆืจื™ืš, ืื‘ืœ ืื™ืŸ ืœื• ื”ืจื‘ื” ืกื‘ืœื ื•ืช ืœืงื•ื“ ื’ืจื•ืข. ื’ื ื™ื›ื•ืœืช ื” Debugging ืฉืœ testing-library ื”ื•ื ื‘ืขื™ื™ืชื™ืช. ื™ืฉ ื˜ืขื ื•ืช ืฉืืคืฉืจ ืœื—ื‘ืจ ืื•ืชื• ืœ VS Code ื•ืœื”ืฉืชืžืฉ ื‘ื“ื™ื‘ื’ืจ ื”ืžื•ื‘ื ื” ืฉืœื”ื, ืื‘ืœ ืื ื™ ืœื ื”ืฆืœื—ืชื™ ืœื’ืจื•ื ืœื–ื” ืœืขื‘ื•ื“. ## ืื– ื‘ืžื” ืœื‘ื—ื•ืจ? ื”ืืž;ืœืง ืฉืœื ื• ืœื”ื™ื•ื ื”ื•ื ืคืฉื•ื˜: 1. ืื ืืชื ืฆืจื™ื›ื™ื ืœื‘ื“ื•ืง ืงื•ืžืคื•ื ื ื˜ื” ืกืคืฆื™ืคื™ืช ืฉืืชื ื›ื•ืชื‘ื™ื ื•ืจื•ืฆื™ื ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ืฉืชืขื•ื“ื“ ืืชื›ื ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“ ืฉืœื” ื›ืžื” ืฉื™ื•ืชืจ ื ืงื™ - ืœื›ื• ืขืœ testing-library ื• Jest. 2. ืื ืืชื ืฆืจื™ื›ื™ื ืœื‘ื“ื•ืง ืื™ื ื˜ื’ืจืฆื™ื” ื‘ื™ืŸ ื›ืžื” ืงื•ืžืคื•ื ื ื˜ื•ืช ืื• ืงื•ืžืคื•ื ื ื˜ื” ืžืกื•ื‘ื›ืช ืฉืื™ืŸ ืœื›ื ื“ืจืš ืงืœื” ืœืฉื ื•ืช ืืช ื” Markup ืฉืœื” - ืœื›ื• ืขืœ Cypress. ื‘ื›ืœ ืžืงืจื” ืฉื•ื•ื” ืœืฉื—ืง ืขื ืฉื ื™ ื”ื›ืœื™ื. ืืฃ ืคืขื ืื™ ืืคืฉืจ ืœื“ืขืช ืžืจืืฉ ืื™ื–ื” ื›ืœื™ ื™ื–ืจื•ื ื™ื•ืชืจ ื˜ื•ื‘ ืขื‘ื•ืจื›ื, ืขื‘ื•ืจ ื”ืฆื•ื•ืช ืฉืœื›ื ื•ืขื‘ื•ืจ ื”ืคืจื•ื™ืงื˜ ืฉืœื›ื.

ToCode
1 419
# ื”ืฉื•ื•ืื” ื–ืจื™ื–ื” ื‘ื™ืŸ Cypress ืœ testing-library ืกื™ื™ืคืจืก ื”ื•ื ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ื” End-to-end ื”ืื”ื•ื‘ื” ื‘ื™ื•ืชืจ ืขืœ ืžืชื›ื ืชื™ Front End ื”ื™ื•ื ื• testing-library ื”ื™ื ืกืคืจื™ื™ืช ื” Unit Test ื”ืžื•ื‘ื™ืœื”. ื”ื ื” ืกื™ื›ื•ื ืงืฆืจ ืฉืœ ื”ื”ื‘ื“ืœื™ื ื‘ื™ืŸ ืฉื ื™ ื”ื“ื‘ืจื™ื ื•ื‘ืกื•ืฃ ื”ืžืœืฆื” ื‘ืžื” ื›ื“ืื™ ืœื”ืฉืชืžืฉ. ## ืžื” ื–ื” Cypress ืกื™ื™ืคืจืก ื”ื™ื ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ืฉืžื˜ืจืชื” ืœื”ื—ืœื™ืฃ ืืช Selenium ื‘ืชื•ืจ ืกืคืจื™ื™ืช ื‘ื“ื™ืงื•ืช ื” End To End ื”ืžื•ื‘ื™ืœื” ื•ื”ื ื•ื—ื” ื‘ืขื•ืœื. ื–ื• ื‘ืขืฆื ืชื•ื›ื ื” ืฉืจืฆื” ืืฆืœื›ื ืขืœ ื”ืžื—ืฉื‘ ื•ืžืคืขื™ืœื” ื“ืคื“ืคืŸ ื‘ืฆื•ืจื” ืžืกื•ื™ืžืช ื›ืš ืฉื”ื™ื ืชื•ื›ืœ ืœืฉืœื•ื˜ ื‘ื“ืคื“ืคืŸ ื“ืจืš ืกืงืจื™ืคื˜ื™ื. ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื” ื‘ Cypress ื”ื™ื ืชื•ื›ื ื™ืช JavaScript ืฉืจืฆื” ื‘ืชื•ืš ืกื™ื™ืคืจืก ื•ื ื•ืชื ืช ื”ื•ืจืื•ืช ืœื“ืคื“ืคืŸ ื‘ืืžืฆืขื•ืช API ืฉืกื™ื™ืคืจืก ืคื™ืชื—ื•. ืชื•ื›ื ื™ืช ืœื“ื•ื’ืžื” ื ืจืื™ืช ื›ืš:
describe('My First Test', () => {
  it('clicking "type" navigates to a new url', () => {
    cy.visit('https://example.cypress.io')

    cy.contains('type').click()

    // Should be on a new URL which includes '/commands/actions'
    cy.url().should('include', '/commands/actions')
  })
})

ื›ืชื™ื‘ ื” describe/it ืฆืจื™ืš ืœื”ื™ื•ืช ืžื•ื›ืจ ื’ื ืžืคืจื™ื™ืžื•ื•ืจืงื™ื ืื—ืจื™ื. ืชื•ื›ืŸ ื” it ื”ื•ื ื”ื‘ื“ื™ืงื” ืขืฆืžื”. ื”ืžืฉืชื ื” ื”ืžื™ื•ื—ื“ cy ืžื’ื™ืข ืžืกื™ื™ืคืจืก ื•ื”ื•ื ืื•ื‘ื™ืงื˜ ื”ื—ื™ื‘ื•ืจ ืฉืœื ื• ืœ API ืฉืœ ื”ืกื‘ื™ื‘ื”: ื‘ืขื–ืจืชื• ื ื’ืจื•ื ืœื“ืคื“ืคืŸ ืœื‘ืงืจ ื‘ืืชืจ ืžืกื•ื™ื (ืขื ื”ืคืงื•ื“ื” visit), ืœืžืฉื•ืš DOM Element ืžืกื•ื™ื ืขื ื”ืคืงื•ื“ื” get, ืœืœื—ื•ืฅ ืขืœ ืื•ืชื• ืืœืžื ื˜ ืขื ื”ืคืงื•ื“ื” click ื•ืœื”ืกืชื›ืœ ืขืœ ื” URL ืฉืœ ื”ืขืžื•ื“. ื”ื‘ื“ื™ืงื” ื‘ื“ื•ื’ืžื” ืื’ื‘ ืžื—ืคืฉืช ืืœืžื ื˜ ืขื ื”ื˜ืงืกื˜ type, ืœื•ื—ืฆืช ืขืœื™ื• ื•ืื– ืžื•ื•ื“ืืช ืฉื” URL ื”ื—ื“ืฉ ืฉืœ ื”ืขืžื•ื“ ืžื›ื™ืœ ืืช ื”ื˜ืงืกื˜ /commands/actions. ืžื” ืฉื—ืฉื•ื‘ ืœืจืื•ืช ื›ืืŸ ื”ื•ื ืฉื”ื‘ื“ื™ืงื” ื‘ืกื™ื™ืคืจืก ืจืฆื” ื‘ืชื•ืš ื“ืคื“ืคืŸ ื—ื™ืฆื•ื ื™ ืฉื™ื›ื•ืœ ืœื”ืชื—ื‘ืจ ืœื›ืœ ืืชืจ ืฉื ืจืฆื” - ื•ื‘ื–ื” ื”ื•ื ืžืื•ื“ ื“ื•ืžื” ืœืกืœื ื™ื•ื. ## ืžื” ื–ื” Testing Library ื˜ืกื˜ื™ื ื’ ืœื™ื™ื‘ืจืจื™ ื”ื•ื ืื•ืกืฃ ืฉืœ ืกืคืจื™ื•ืช ื‘ื“ื™ืงื” ืœ Components Based Frameworks. ื™ืฉ ืœื ื• react-testing-library ืœืจื™ืืงื˜, vue-testing-library ืœ Vue, ื•ื’ื angular-testing-library, reason-testing-library, svelte-testing-library ื•ืจื‘ื•ืช ื ื•ืกืคื•ืช. ืกืคืจื™ื•ืช ืืœื” ืขื•ื‘ื“ื•ืช ื‘ืฉื™ืชื•ืฃ ืคืขื•ืœื” ืขื ื›ืœื™ ื”ืจืฆืช ื‘ื“ื™ืงื•ืช ื›ืžื• jest ืื• mocha, ื•ืžืืคืฉืจื•ืช ืœืงื•ื“ ื”ื‘ื“ื™ืงื” ืœืชืงืฉืจ ืขื ืงื•ื“ ื”ืคืจื™ื™ืžื•ื•ืจืง. ื”ืŸ ื›ื•ืœืœื•ืช ืคื•ื ืงืฆื™ื•ืช ื›ื“ื™ ืœืจื ื“ืจ ืงื•ืžืคื•ื ื ื˜ื” ืžืกื•ื™ืžืช ืœืกื‘ื™ื‘ืช ื‘ื“ื™ืงื”, ืœื’ืฉืช ืœ DOM Elements ืฉืื•ืชื” ืงื•ืžืคื•ื ื ื˜ื” ื™ืฆืจื”, ืœืฉืœื•ื— ืื™ืจื•ืขื™ื ืœืื•ืชื” ืงื•ืžืคื•ื ื ื˜ื” ื•ื›ืš ื”ืœืื”. ื‘ืžื™ืœื™ื ืื—ืจื•ืช testing-library ื”ื™ื ืกืคืจื™ื” ืฉืื—ืจืื™ืช ืจืง ืขืœ ื”ืงื•ื“ ืฉืœ ื”ื‘ื“ื™ืงื” ืขืฆืžื”, ื•ืœื ืขืœ ื”ืžื ื’ื ื•ืŸ ืฉืžืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื”. ื”ื™ื ืชืžื™ื“ ืฆืจื™ื›ื” ืœืขื‘ื•ื“ ื‘ืฉื™ืœื•ื‘ ืขื ื›ืœื™ ื”ืจืฆืช ื‘ื“ื™ืงื•ืช. ื•ืื’ื‘ ืฉื ื™ ื•ืืจื™ืื ื˜ื™ื ืžืขื ื™ื™ื ื™ื ืฉืœ testing-library ื”ื cypress-testing-library ื• webdriverio-testing-library ืฉืžืืคืฉืจื™ื ืœื”ืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื•ืช ื‘ืกื’ื ื•ืŸ testing-library ื‘ืชื•ืš ื›ืœื™ ื”ืจืฆืช ื‘ื“ื™ืงื•ืช cypress ืื• selenium. ืงื•ื“ ื‘ื“ื™ืงื” ืฉืœ react-testing-library ืœื“ื•ื’ืžื” ื ืจืื” ื›ืš:
test('loads and displays greeting', async () => {
  render(<Fetch url="/greeting" />)

  fireEvent.click(screen.getByText('Load Greeting'))

  await waitFor(() => screen.getByRole('heading'))

  expect(screen.getByRole('heading')).toHaveTextContent('hello there')
  expect(screen.getByRole('button')).toBeDisabled()
})
## ืžื” ื˜ื•ื‘ ื‘ Cypress ืžืชื›ื ืชื™ื ืื•ื”ื‘ื™ื ืืช ืกื™ื™ืคืจืก ื›ื™ ืžืื•ื“ ืงืœ ืœื”ืชืงื™ืŸ ืื•ืชื•, ื”ื•ื ืขื•ื‘ื“ ืขืœ ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื”, ืœื ืฆืจื™ืš ืœื”ื•ืจื™ื“ ืงื•ื‘ืฅ ื“ืจื™ื™ื‘ืจ ืžื™ื•ื—ื“ ื›ืžื• ื‘ืกืœื ื™ื•ื (ื•ืื– ืœื”ื•ืจื™ื“ ื—ื“ืฉ ื›ืฉื™ื•ืฆืืช ื’ื™ืจืกื” ื—ื“ืฉื” ืฉืœ ื”ื“ืคื“ืคืŸ), ื•ืงื•ื“ ื”ื‘ื“ื™ืงื” ื™ื—ืกื™ืช ืื™ื ื˜ื•ืื™ื˜ื™ื‘ื™. ื™ื•ืชืจ ืžื–ื”, ื” GUI ืฉืœ ืกื™ื™ืคืจืก ืžืขื•ืœื” ื•ืžืจืื” ืœื ื• ืืช ื›ืœ ื”ืฉืœื‘ื™ื ืฉืœ ื”ื‘ื“ื™ืงื” ืขื ืืคืฉืจื•ืช ืœื—ื–ื•ืจ ืื—ื•ืจื” ื‘ื–ืžืŸ ืœื›ืœ ืฉืœื‘ - ื•ื›ืœ ื–ื” ืœื™ื“ ื”ื“ืคื“ืคืŸ ืฉืžืจื™ืฅ ื‘ืคื•ืขืœ ืืช ื”ื‘ื“ื™ืงื”. ืืคืฉืจ ืœืฉื™ื ื ืงื•ื“ืช ืขืฆื™ืจื” ืื™ืคื” ืฉืจื•ืฆื™ื ืœืื•ืจืš ื”ื‘ื“ื™ืงื” ื•ืœื”ืžืฉื™ืš ื‘ื“ื™ืงื” ื“ืจืš ื” console ืฉืœ ื”ื“ืคื“ืคืŸ, ื•ื›ื›ื” ื–ื” ืžืื•ื“ ื ื•ื— ืœืžืฆื•ื ื‘ืขื™ื•ืช. ืœืกื™ื™ืคืจืก ื™ืฉ ื’ื ืžื ื’ื ื•ืŸ ืฉืœ ืฉื™ืชื•ืฃ ื”ื‘ื“ื™ืงื•ืช ืขื ืื ืฉื™ื ืื—ืจื™ื ื•ืื– ืืชื ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช ื•ืื ืฉื™ ืฆื•ื•ืช ืื—ืจื™ื, ืื ืฉื™ ืคืจื•ื“ืงื˜ ืื• ืืคื™ืœื• ื”ืœืงื•ื— ื™ื›ื•ืœื™ื ืœื”ืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื•ืช ื•ืœืจืื•ืช ืืช ื”ื”ืชื ื”ื’ื•ืช ื”ืื•ื˜ื•ืžื˜ื™ืช. ืœืกื™ื™ืคืจืก ื™ืฉ ื’ื ืื™ื ื˜ื’ืจืฆื™ื” ืขื Front End Frameworks ื•ื›ื›ื” ืืชื ื™ื›ื•ืœื™ื ืœื”ืจื™ืฅ ื‘ื“ื™ืงื” ืจืง ืขืœ ืงื•ืžืคื•ื ื ื˜ืช ืจื™ืืงื˜ ืกืคืฆื™ืคื™ืช ืœื“ื•ื’ืžื” ื‘ืžืงื•ื ืœืจื•ืฅ ืขืœ ื›ืœ ื”ืขืžื•ื“. ## ืžื” ื˜ื•ื‘ ื‘ Testing Library ื”ื•ื•ืจื™ืื ื˜ื™ื ื”ืคื•ืคื•ืœืจื™ื ืฉืœ testing-library ืžืฉืชืžืฉื™ื ื‘ jest ื›ื“ื™ ืœื”ืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื•ืช. ื’'ืกื˜ ื”ื•ื ื›ืœื™ ื”ืจืฆื” ืฉืžื“ืœื’ ืœื’ืžืจื™ ืขืœ ื”ื“ืคื“ืคืŸ ื•ืžืจื™ืฅ ืืช ื”ื‘ื“ื™ืงื” ื‘ืชื•ืš Node.JS. ื”ื™ืชืจื•ืŸ ืฉืœ ื’'ืกื˜ ื‘ืชื•ืจ ืกื‘ื™ื‘ืช ื”ืจืฆืช ื‘ื“ื™ืงื•ืช ื”ื•ื ื”ืžื”ื™ืจื•ืช: ื‘ื’ืœืœ ืฉืœื ืฆืจื™ืš ื“ืคื“ืคืŸ ื”ื‘ื“ื™ืงื” ืจืฆื” ื”ืจื‘ื” ื™ื•ืชืจ ืžื”ืจ.

ToCode
1 419
# ื•ืื ื”ื™ื™ืช ื—ื•ืฉื‘ ืฉื–ื” ืืคืฉืจื™? ื•ืื ื”ื™ื™ืช ื—ื•ืฉื‘ ืฉื–ื” ืืคืฉืจื™, ื”ืื ื”ื™ื™ืช ืžื•ื•ืชืจ ืขืœ ืฉืขื” ื‘ืคื™ื™ืกื‘ื•ืง ื›ืœ ื™ื•ื ื‘ืฉื‘ื™ืœ ืœื”ืชืงื“ื ื‘ืคืจื•ื™ืงื˜ ื”ื–ื”? ื•ืื ื”ื™ื™ืช ื—ื•ืฉื‘ ืฉื–ื” ื—ืฉื•ื‘, ื”ื™ื™ืช ืžืกื›ื™ื ืœืงื•ื ืฉืขื” ืงื•ื“ื ื›ืœ ื™ื•ื ื‘ืฉื‘ื™ืœ ืœืขื‘ื•ื“ ืขืœ ื–ื”? ื•ืื ื”ื™ื™ืช ืžื‘ื™ืŸ ืฉื–ืืช ื”ื”ื–ื“ืžื ื•ืช ื”ืื—ืจื•ื ื”, ื”ืื ื”ื™ื™ืช ืžื•ืฆื ื“ืจืš ืœืคื ื•ืช ืฉืขื” ื‘ื™ื•ื ื‘ืฉื‘ื™ืœ ืœื‘ื ื•ืช ืืช ื–ื”? ื›ื•ืœื ื• ืขื‘ืจื ื• ืฉื˜ื™ืคืช ืžื•ื— ืงื•ืœืงื˜ื™ื‘ื™ืช. ืœื™ืžื“ื• ืื•ืชื ื• ืฉื–ื” ืœื ืืคืฉืจื™, ืฉื–ื” ืœื ื—ืฉื•ื‘ ื•ืฉืชืžื™ื“ ื™ื”ื™ื” ื–ืžืŸ ื™ื•ืชืจ ื˜ื•ื‘. ืฉืงื•ื“ื ื›ืœ ืฆืจื™ืš ืœื”ืชืžืงื“ ื‘ืžื” ืฉืืคืฉืจ ืœืžื“ื•ื“ ื•ืฉื—ืœื•ืžื•ืช ื™ื›ื•ืœื™ื ืœื—ื›ื•ืช ืœื–ืžืŸ ืฉื‘ื• ื”ื›ืœ ื™ื”ื™ื” ืžืกื•ื“ืจ (ื›ืœื•ืžืจ ืœืขื•ืœื ืœื). ื”ื“ื‘ืจ ื”ื–ื” ืฉืจืฆื™ืช ืœื‘ื ื•ืช ืื• ืœืœืžื•ื“? ืืชื” ื™ื›ื•ืœ ืœื”ืฆืœื™ื— ื‘ื•; ื”ื”ืฆืœื—ื” ืฉืœื• ื™ื•ืชืจ ื—ืฉื•ื‘ื” ืžืจื•ื‘ ื”ื“ื‘ืจื™ื ืฉืืชื” ืขื•ืฉื” ืขื›ืฉื™ื• ื•ื”ื”ื–ื“ืžื ื•ืช ืฉื™ืฉ ืœืš ืขื›ืฉื™ื• ืœื ืชื—ื–ื•ืจ. ืขื›ืฉื™ื• ื”ื–ืžืŸ ืœื”ืชื—ื™ืœ.

ToCode
1 419
ืื—ืจื™ ืฉืฉื™ื›ื ืขื ื• ืืช ื”ืžื—ืฉื‘ ืœื•ื•ืชืจ ืขืœ Modern Standby ื•ืœื—ื–ื•ืจ ืœื”ืฉืชืžืฉ ื‘ืžืฆื‘ ืฉื™ื ื” ืงืœืืกื™ ื ืฉืืจื” ืจืง ื‘ืขื™ื” ืื—ืช - ื–ื” ืœื ืขื‘ื“. ืœืคื—ื•ืช ืืฆืœื™ ืขืœ ื”ืžื›ื•ื ื”. ืžื” ืฉืงืจื” ืฉืขื›ืฉื™ื• ื‘ื—ืœืง ืžื”ืคืขืžื™ื ืฉื”ืžื—ืฉื‘ ื ื›ื ืก ืœืžืฆื‘ ืฉื™ื ื” ื”ื•ื ื”ืชืจืกืง ืžื™ื“ ื‘ื›ื ื™ืกื” ืœืžืฆื‘ ืฉื™ื ื” ื•ื›ืฉื ื™ืกื™ืชื™ ืœื”ืขื™ืจ ืื•ืชื• ื’ื™ืœื™ืชื™ ืžื—ืฉื‘ ืชืงื•ืข. ื‘ื—ื™ืคื•ืฉ ื‘ืื™ื ื˜ืจื ื˜ ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื”ืฆืœื—ืชื™ ืœืžืฆื•ื ื”ื™ื” ืื ืฉื™ื ืฉืžืงื˜ืจื™ื ืขืœ ืžืฉื”ื• ืฉื ืงืจื BSOD, ื•ืื—ืจื™ ืขื•ื“ ื—ื™ืคื•ืฉื™ื ืœืžื“ืชื™ ืฉื–ื” ืจืืฉื™ ืชื™ื‘ื•ืช ืฉืœ Blue Screen Of Death ืฉื–ืืช ื”ื“ืจืš ืฉืœ ืื ืฉื™ื ืœื“ื‘ืจ ืขืœ ื”ืชืจืกืงื•ื™ื•ืช ืฉืœ Windows (ืœืžืจื•ืช ืฉื‘ื”ืชืจืกืงื•ืช ื”ืกืคืฆื™ืคื™ืช ืืฆืœื™ ืœื ื”ื™ื” ืฉื•ื ืžืกืš ื›ื—ื•ืœ ื›ื™ ื–ื” ื”ื™ื” ื‘ื›ื ื™ืกื” ืœืžืฆื‘ ืฉื™ื ื”). ื”ืคื™ืชืจื•ืŸ ื‘ื›ืœ ืžืงืจื” ื”ื™ื” ืœื”ื™ื›ื ืก ืœ Event Viewer ื•ืฉื ืœืžืฆื•ื ืืช ื”ื”ื•ื“ืขื” ืขืœ ืื•ืชื” ื”ืชืจืกืงื•ืช. ื”ื”ื•ื“ืขื” ื”ื™ืชื” ืžืกื•ื’ Bugcheck ื•ืœื•ื•ืชื” ื‘ื˜ืงืกื˜ ื”ืกื‘ืจ ืงืฆืจ ืฉืื•ืžืจ ืฉืžืฆื‘ ื”ื–ื™ื›ืจื•ืŸ ืฉื’ืจื ืœื”ืชืจืกืงื•ืช ื ืฉืžืจ ื‘ืงื•ื‘ืฅ C:\Windows\memory.dmp. ืืช ื”ืงื•ื‘ืฅ ื”ื–ื” ืืคืฉืจ ืœืคืชื•ื— ื‘ืืžืฆืขื•ืช ืชื•ื›ื ื” ื‘ืฉื windbg ืฉืื•ืชื” ืืคืฉืจ ืœื”ื•ืจื™ื“ ืžื›ืืŸ: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools ืคืชื™ื—ื” ืฉืœ ื”ืงื•ื‘ืฅ ื”ืขื‘ื™ืจื” ืื•ืชื™ ืœื”ื•ื“ืขืช ื”ืฉื’ื™ืื” ื”ืืžื™ืชื™ืช ืฉื”ื•ื‘ื™ืœื” ืœื”ืชืจืกืงื•ืช. ื”ื”ื•ื“ืขื” ื”ื’ื™ืขื” ืžื“ืจื™ื™ื‘ืจ ืฉืœ ื“ืœ ืฉืื—ืจืื™ ืœืžืจื‘ื” ื”ืื™ืจื•ื ื™ื” ืขืœ ื ื™ื˜ื•ืจ ืชืงืœื•ืช ื‘ืžื—ืฉื‘. ื‘ื™ื˜ื•ืœ ืฉืœ ื”ื“ืจื™ื™ื‘ืจ ื’ืจื ืœืžื—ืฉื‘ ืœื”ืคืกื™ืง ืœื”ืชืจืกืง ื•ืœืžืฆื‘ ืฉื™ื ื” ืœื”ืชื—ื™ืœ ืœืขื‘ื•ื“.

ToCode
1 419
# ืžืฆื‘ ืฉื™ื ื” ื‘ื—ืœื•ื ื•ืช: ืงืฆืช ื™ื•ืชืจ ืžืžื” ืฉืจืฆื™ืชื ืœื“ืขืช ืžืฆื‘ ืฉื™ื ื” ื”ื•ื ืžื”ืคื™ืฆ'ืจื™ื ื”ื›ื™ ืžืฉืขืžืžื™ื ืฉื™ืฉ ื‘ืžื—ืฉื‘. ื›ืœ ืžื” ืฉืืชื” ืจื•ืฆื” ื–ื” ืฉื”ื•ื ื™ืขื‘ื•ื“ ื›ืžื• ืฉืฆืจื™ืš, ื›ืœื•ืžืจ ืฉื›ืฉื”ืžื—ืฉื‘ ืœื ืžื—ื•ื‘ืจ ืœื—ืฉืžืœ ื•ืื ื™ ืœื ืขื•ื‘ื“ ืื™ืชื• ืฉื’ื ืœื ื™ื‘ื–ื‘ื– ืกื•ืœืœื”. ืžืคื” ืžืชื›ื ืชื™ื ืžืชื—ื™ืœื™ื ืœื’ื–ื•ืจ ื›ืœ ืžื™ื ื™ ืชื ืื™ื ื›ืžื•: 1. ืื ื”ืœืคื˜ื•ืค ืขื•ื‘ื“ ืขืœ ืกื•ืœืœื” ื•ืกื•ื’ืจื™ื ืืช ื”ื›ื™ืกื•ื™ ื™ืฉ ืœื”ืงืคื™ื ื™ื™ืฉื•ืžื™ื ืฉืœื•ืงื—ื™ื ื”ืจื‘ื” ืกื•ืœืœื”. 2. ืื ืžืฉืชืžืฉ ืœื ื ื’ืข ื‘ืœืคื˜ื•ืค ื›ืžื” ื“ืงื•ืช ื•ื”ื•ื ืœื ืžื—ื•ื‘ืจ ืœื—ืฉืžืœ ื›ื“ืื™ ืœืกื’ื•ืจ ืืช ื—ื™ื‘ื•ืจื™ ื”ืจืฉืช. 3. ืื ื”ืžื—ืฉื‘ ืœื ื‘ืฉื™ืžื•ืฉ ืืคืฉืจ ืœืกื’ื•ืจ ืืช ื”ืชืฆื•ื’ื”. ื•ืขื•ื“ ืื™ื ืกื•ืฃ ื“ื‘ืจื™ื ืงื˜ื ื™ื ืฉื™ื—ื“ ืžืจื›ื™ื‘ื™ื ืืช ื”ืคื™ืฆ'ืจ ืฉื ืงืจื ืžืฆื‘ ืฉื™ื ื”. ื‘ Windows ื”ืคื™ืฆ'ืจ ื”ื–ื” ืขื‘ื“ ืœื™ ืžืกืคื™ืง ื’ืจื•ืข ื›ื“ื™ ืฉืืฆื˜ืจืš ืœื—ืงื•ืจ ืื•ืชื• ื•ืœื ืกื•ืช ืœืชืงืŸ, ืืœื” ื”ื“ื‘ืจื™ื ืฉื’ื™ืœื™ืชื™: ## ืžืฆื‘ื™ ืฉื™ื ื” ืงืœืืกื™ื™ื: S1, S2, S3 ืžื”ืจ ืžืื•ื“ ืžืชื›ื ื ื™ ืžืขืจื›ื•ืช ื”ืคืขืœื” ื”ื‘ื™ื ื• ืฉื›ื“ืื™ ืฉื™ื”ื™ื” "ืžืฆื‘ ืขื‘ื•ื“ื”" ืžื™ื•ื—ื“ ืฉื™ืฆืจื•ืš ืคื—ื•ืช ืกื•ืœืœื”. ืื ื—ื ื• ืงื•ืจืื™ื ืœื–ื” ืžืฆื‘ ืฉื™ื ื”, ื•ืœืžืขืฉื” ื™ืฉ ืžืกืคืจ ืžืฆื‘ื™ื ืฉืžืกืžื ื™ื ืžืกืคืจ ื“ืจื’ื•ืช ืฉืœ ื—ื™ืกื›ื•ืŸ ื‘ื—ืฉืžืœ. ืžืฆื‘ื™ ื”ืฉื™ื ื” ืžืกื•ืžื ื™ื ื‘ S ื•ืื—ืจื™ื• ืžืกืคืจ, ื•ื›ื›ืœ ืฉื”ืžืกืคืจ ื™ื•ืชืจ ื’ื‘ื•ื” ื›ืš ื”ืžืฆื‘ ื™ื•ืชืจ ื—ื•ืกืš ื‘ืกื•ืœืœื”. ื›ืš ืžืฆื‘ ืฉื™ื ื” S3 ื”ื•ื ื™ื•ืชืจ ื—ืกื›ื•ื ื™ ืžืžืฆื‘ S2, ื•ื”ื•ื ื™ื•ืชืจ ื—ืกื›ื•ื ื™ ืžืžืฆื‘ S1. ื‘ืฉื‘ื™ืœ ืœื’ืœื•ืช ืื™ื–ื” ืžืฆื‘ื™ ืฉื™ื ื” ื ืชืžื›ื™ื ื‘ืžืขืจื›ืช ืฉืœื›ื ืืชื ื™ื›ื•ืœื™ื ืœื›ืชื•ื‘ ืž cmd:
powercfg /a
ื‘ื“ืจืš ื›ืœืœ ืœื•ืงื— ืœืžื—ืฉื‘ ืžืกืคืจ ืฉื ื™ื•ืช ืœืฆืืช ืžืžืฆื‘ ืฉื™ื ื”, ื•ื”ื˜ืจื™ื™ื“ ืื•ืฃ ื›ืืŸ ื”ื•ื ืฉื›ื›ืœ ืฉืื ื—ื ื• ืžื›ื‘ื™ื ื™ื•ืชืจ ืจื›ื™ื‘ื™ื ื‘ื›ื ื™ืกื” ืœืžืฆื‘ ืฉื™ื ื” ื•ื›ืš ื—ื•ืกื›ื™ื ื™ื•ืชืจ ื‘ื—ืฉืžืœ, ื›ืš ื™ื™ืงื— ื™ื•ืชืจ ื–ืžืŸ ืœื›ืœ ื”ืžื—ืฉื‘ ืœื”ืชืขื•ืจืจ. ## ืžืฆื‘ ืฉื ืช ื—ื•ืจืฃ (Hibernation) ืžืฆื‘ ื”ืฉื™ื ื” ื”ืจื‘ื™ืขื™ ืžืกื•ืžืŸ ื‘ S4 ื•ืงื™ื‘ืœ ืืช ื”ื›ื™ื ื•ื™ ื”ืžื™ื•ื—ื“ Hibernation. ื‘ืฉืœื•ืฉืช ืžืฆื‘ื™ ื”ืฉื™ื ื” ื”ืจื’ื™ืœื™ื ื”ืžื—ืฉื‘ ืžืžืฉื™ืš ืœืกืคืง ื—ืฉืžืœ ืœื–ื™ื›ืจื•ืŸ ื•ืœื›ืŸ ื›ืœ ืžืฆื‘ ื”ืžืขืจื›ืช ื ืฉืžืจ ืฉื. ื‘ืžืฆื‘ S4 ื”ืžื—ืฉื‘ ืกื•ื’ืจ ืืช ื”ื—ืฉืžืœ ื’ื ืœืจื›ื™ื‘ื™ ื”ื–ื™ื›ืจื•ืŸ. ื›ื“ื™ ืœื”ืชืขื•ืจืจ ืžืžืฆื‘ S4 ื”ืžื—ืฉื‘ ื›ื•ืชื‘ ืงื•ื‘ืฅ ืžื™ื•ื—ื“ ืœื“ื™ืกืง ืœืคื ื™ ื”ื›ื ื™ืกื” ืœืžืฆื‘ ื–ื” ื•ื”ื™ืฆื™ืื” ืžืžืฆื‘ Hibernation ื”ื™ื ื›ืžืขื˜ ื›ืžื• ื”ื“ืœืงื” ืžื—ื“ืฉ ืฉืœ ื”ืžื—ืฉื‘ - ืจืง ืฉื‘ืžืงื•ื ืœื—ื–ื•ืจ ืœืžืฆื‘ ื–ื™ื›ืจื•ืŸ "ื ืงื™" ืžืขืจื›ืช ื”ื”ืคืขืœื” ืงื•ืจืืช ืืช ื”ืงื•ื‘ืฅ ื•ืžืืชื—ืœืช ืืช ื” State ืžืžื ื•. ื‘ืžืฆื‘ ืฉื ืช ื—ื•ืจืฃ ื”ื—ื™ืกื›ื•ืŸ ื‘ื—ื™ื™ ืกื•ืœืœื” ื”ื•ื ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ, ืื‘ืœ ื’ื ื–ืžืŸ ื”ื”ืชืขื•ืจืจื•ืช ืžืžืฆื‘ ื–ื” ื”ื•ื ื”ืืจื•ืš ื‘ื™ื•ืชืจ. ## ืžืฆื‘ Fast Startup ืื—ืจื™ ืฉืื ื—ื ื• ืžื‘ื™ื ื™ื ืžื” ื–ื” Hibernation ืงืœ ืœื”ื‘ื™ืŸ ืขื•ื“ ื”ื’ื“ืจื” ืฉืžื•ืคื™ืขื” ื‘ื”ืจื‘ื” ืžืกื›ื™ ื ื™ื”ื•ืœ ืฆืจื™ื›ืช ื—ืฉืžืœ ื•ื ืงืจืืช Fast Startup. ื”ืจืขื™ื•ืŸ ืคื” ื”ื•ื ืฉืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ Hibernation ื›ื“ื™ ืœืงืฆืจ ืืช ื–ืžืŸ ื”ื”ื“ืœืงื” ืฉืœ ื”ืžื—ืฉื‘ ืื—ืจื™ ื›ื™ื‘ื•ื™: ื‘ืžืงื•ื ืœื›ื‘ื•ืช ืœื’ืžืจื™ ืืช ื”ืžื—ืฉื‘ ื” Windows ื‘ืกืš ื”ื›ืœ ืกื•ื’ืจ ืืช ื›ืœ ื”ื™ื™ืฉื•ืžื™ื ื•ืžื ืชืง ืืช ื”ืžืฉืชืžืฉ ื”ื ื•ื›ื—ื™, ื•ืื– ื ื›ื ืก ืœ Hibernation. ื”ื”ื“ืœืงื” ื”ื‘ืื” ื›ื‘ืจ ืœื ืชื”ื™ื” ื”ื“ืœืงื” ืžืืคืก ืืœื ืจืง ื™ืฆื™ืื” ืž Hibernation ื•ืœื›ืŸ ืชื”ื™ื” ืžื”ื™ืจื” ื™ื•ืชืจ. ื”ื—ื™ืกืจื•ืŸ ื”ื™ื—ื™ื“ ืฉืœ ื”ืคื™ืฆ'ืจ ื”ื–ื” ื”ื•ื ืฉื™ืฉ ื“ื‘ืจื™ื ืฉ Windows ืขื•ืฉื” ืจืง ื‘ื”ื“ืœืงื” ืžื—ื“ืฉ - ืœืžืฉืœ ื”ืชืงื ืช ืขื™ื“ื›ื•ื ื™ื. ืื ืืชื ืขื•ื‘ื“ื™ื ืงื‘ื•ืข ืขื Fast Startup ื•ืชืžื™ื“ ืžื›ื‘ื™ื ืืช ื”ืžื—ืฉื‘ ืื– ืœื ืชื”ื™ื” ืœื• ื”ื–ื“ืžื ื•ืช ืœื”ืชืงื™ืŸ ืืช ื”ืขื“ื›ื•ื ื™ื. ืื ื™ ืœื ื—ื•ืฉื‘ ืฉื–ื” ืžืฆื‘ ืจื™ืืœื™ ื›ื™ Windows ืžืžื™ืœื ื“ื•ืจืฉ ืžืžื ื™ ืœืขืฉื•ืช Restart ืžืฉื”ื• ื›ืžื• 3 ืคืขืžื™ื ื‘ืฉืขื” ื• Restart ืื™ื ื• ืžื•ืฉืคืข ืžืžืฆื‘ ื–ื”. ## ืžืฆื‘ ืฉื™ื ื” ืžื•ื“ืจื ื™ S0 ื‘ืžื—ืฉื‘ื™ื ื—ื“ืฉื™ื (ืœืžืฉืœ ืืฆืœื™ ื‘ Dell XPS13) ืžื™ื™ืงืจื•ืกื•ืคื˜ ื”ื•ืกื™ืคื” ืžืฆื‘ ืฉื™ื ื” ื—ื“ืฉ ืฉื ืงืจื Modern Standby. ื”ื—ืœื•ื ืฉืœื”ื ื”ื™ื” ืœื™ืฆื•ืจ ื—ื•ื•ื™ื” ื›ืžื• ืฉืœ ื˜ืœืคื•ืŸ, ื›ืš ืฉื”ื”ื“ืœืงื” ืฉืœ ื”ืžื—ืฉื‘ ืื—ืจื™ ืฉื™ื ื” ืชื”ื™ื” ืžื™ื™ื“ื™ืช ื•ื‘ื ื•ืกืฃ ื‘ืชื•ืš ื”ืฉื™ื ื” ื”ืžื—ืฉื‘ ืขื“ื™ื™ืŸ ื™ื”ื™ื” ืžื—ื•ื‘ืจ ืœืจืฉืช ื•ืืคืฉืจ ื™ื”ื™ื” ืœื”ืชืงื™ืŸ ืขื“ื›ื•ื ื™ื ื‘ื–ืžืŸ ืฉื”ืžื—ืฉื‘ ื™ืฉืŸ. ื”ืชื•ืฆืื” ื”ื™ื ืฉ Modern Standby ืœื ื—ื•ืกืš ื‘ื—ืฉืžืœ ื”ืจื‘ื” ื™ื•ืชืจ ืžืืฉืจ ื›ื™ื‘ื•ื™ ื”ืชืฆื•ื’ื”. ืฆืจื™ื›ืช ื”ืกื•ืœืœื” ื‘ืžืฆื‘ ืฉื™ื ื” ื–ื” (ืฉื”ื•ื ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื‘ื”ืชืงื ืช ืžืขืจื›ืช ื”ืคืขืœื”) ื”ื™ื ื’ื‘ื•ื”ื” ื•ืื—ืจื™ ื›ืžื” ืฉืขื•ืช ืœืœื ื˜ืขื™ื ื” ื”ืกื•ืœืœื” ื›ื‘ืจ ืชืชืจื•ืงืŸ ืœื’ืžืจื™. ## ืื™ืš ืœื”ื—ื–ื™ืจ ืืช ืžืฆื‘ ื”ืฉื™ื ื” ื”ืงืœืืกื™ ื‘ืžืขืจื›ืช Windows 10 ืื—ืจื™ ืฉืœืžื“ืชื™ ื”ืจื‘ื” ื™ื•ืชืจ ืžืžื” ืฉืจืฆื™ืชื™ ืœื“ืขืช ืขืœ ืžืฆื‘ื™ ืฉื™ื ื” ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื” ื”ื‘ื ืชื™ ืฉืื ื™ ืžืขื“ื™ืฃ ืœื•ื•ืชืจ ืขืœ Modern Standby, ืœื—ืกื•ืš ืืช ื”ื”ื“ืœืงื” ื”ืžื™ื™ื“ื™ืช ื•ืœื—ื–ื•ืจ ืœืžืฆื‘ื™ ื”ืฉื™ื ื” ื”ืงืœืืกื™ื™ื ื›ื“ื™ ืœื—ืกื•ืš ื‘ืกื•ืœืœื” ื‘ื–ืžืŸ ืฉื”ืžื—ืฉื‘ ืœื ื‘ืฉื™ืžื•ืฉ. ื‘ืจืžื” ื”ื˜ื›ื ื™ืช ื”ืฉื™ื ื•ื™ ืœื ืžื•ืคื™ืข ื‘ืžืกื›ื™ ื”ื”ื’ื“ืจื•ืช ืฉืœ ื—ืœื•ื ื•ืช. ื”ืฆืœื—ืชื™ ืœืžืฆื•ื ืืช ื”ื˜ืจื™ืง ื‘ืจื“ื™ื˜ ื›ืืŸ: https://www.reddit.com/r/Dell/comments/h0r56s/getting_back_s3_sleep_and_disabling_modern/ ื‘ืงืฆืจื” ืžื” ืฉืขื•ืฉื™ื ื–ื” ืœื”ื•ืกื™ืฃ ืžืคืชื— ืœ Registry ื‘ืืžืฆืขื•ืช ื”ืจืฆืช ื”ืคืงื•ื“ื”:
reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0
## ืžื” ืขื•ืฉื™ื ื›ืฉื–ื” ืœื ืขื•ื‘ื“

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

ToCode
1 419
# ื” Power Shell ื”ืจืืฉื•ืŸ ืฉืœื™ ื”ื—ื“ืฉื•ืช ื”ื’ื“ื•ืœื•ืช ื”ืŸ ืฉื”ื—ืœื˜ืชื™ ืœืชืช ืฆ'ืื ืก ืœ Windows ืื—ืจื™ ืฉื”ืชื™ื™ืืฉืชื™ ืžืœืžืฆื•ื ืคื™ืชืจื•ืŸ ื’ื™ื‘ื•ื™ ื˜ื•ื‘ ืœืœื™ื ื•ืงืก ืขืœ ื”ืœืคื˜ื•ืค. ื”ื—ื“ืฉื•ืช ื”ื™ื•ืชืจ ืงื˜ื ื•ืช ื”ืŸ ืฉื ื™ืฆืœืชื™ ืืช ื”ื”ื–ื“ืžื ื•ืช ืœืœืžื•ื“ Power Shell - ื•ืืช ื”ืžืขื˜ ืฉื”ื‘ื ืชื™ ืจืฆื™ืชื™ ืœืฉืชืฃ ื›ืืŸ ื‘ืคื•ืกื˜. ## ืžื” ื”ืกืงืจื™ืคื˜ ืขื•ืฉื” ืื– ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉืืชื” ืขื•ืฉื” ืื—ืจื™ ืฉืืชื” ืžืชืงื™ืŸ Windows ื–ื” ืœื”ืคืขื™ืœ ืืช WSL ืฉื–ื” ื”ืœื™ื ื•ืงืก ืฉืจืฅ ื‘ืชื•ืš ื” Windows. ื™ืฉ ืžื ื’ื ื•ืŸ ื“ื™ ืžืกื•ื‘ืš ืฉื‘ืกืš ื”ื›ืœ ืขื•ื‘ื“ ืœื ืจืข, ืื‘ืœ ื”ื•ื ืœื ื›ื•ืœืœ ืขื“ื™ื™ืŸ ืชืžื™ื›ื” ื‘ื™ื™ืฉื•ืžื™ื ื’ืจืคื™ื™ื. ื”ืคื™ืชืจื•ืŸ ื”ืžืงื•ื‘ืœ ื”ื•ื ืœื”ืจื™ื ืฉืจืช X ื•ืื– ืœืขื“ื›ืŸ ืืช ืžืฉืชื ื” ื”ืกื‘ื™ื‘ื” DISPLAY ื›ื“ื™ ืฉื”ืชื•ื›ื ื™ืช ืชื›ืชื•ื‘ ืœ X ืฉืจืฅ ื‘ื—ืœื•ื ื•ืช. ื•ืคื” ืื ื—ื ื• ื ื›ื ืกื™ื ืœ Power Shell. ื”ืžืฉื™ืžื” ืฉืœื ื• ื”ื™ื ืœื”ืจื™ืฅ ืื™ืžืงืก ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœื›ืชื•ื‘ ืคื•ืกื˜ื™ื. ื‘ืฉื‘ื™ืœ ื–ื” ืฆืจื™ืš ืœื’ืœื•ืช ืืช ื›ืชื•ื‘ืช ื” IP ืฉืœ ื”ืžื—ืฉื‘ ื•ืื– ืœื”ืจื™ืฅ ืืช ื”ืคืงื•ื“ื”:
> wsl.exe DISPLAY=<Windows IP Address>:0 emacs
## ื”ืงื•ื“ ืขืฆืžื• ื•ืงืฆืช ืขืœ Power Shell ื ืชื—ื™ืœ ืขื ื”ืกืงืจื™ืคื˜ ืขืฆืžื• ืฉืฉืžื•ืจ ืืฆืœื™ ื‘ืงื•ื‘ืฅ ื‘ืฉื emacs.ps1:
$ip=Get-NetIPAddress -InterfaceAlias "vEthernet (WSL)" -AddressFamily IPv4|select -expand IPAddress
Invoke-Expression -Command "wsl DISPLAY=${ip}:0 emacs"
ื‘ืกืš ื”ื›ืœ ืฉืชื™ ืฉื•ืจื•ืช ืื‘ืœ ืžืื•ื“ ืขืžื•ืกื•ืช, ื”ื ื” ื”ื”ืกื‘ืจ (ื”ืœื ื‘ื˜ื•ื— ืžื“ื•ื™ืง) ืฉืœื™ ืžื” ื–ื” ืขื•ืฉื”: 1. ืžืฉืชื ื™ื ื‘ Power Shell ืžื•ื’ื“ืจื™ื ื‘ืืžืฆืขื•ืช ืกื™ืžืŸ $ ื•ืœื›ืŸ ื”ืฉื•ืจื” ื”ืจืืฉื•ื ื” ืžื’ื“ื™ืจื” ืžืฉืชื ื” ื—ื“ืฉ ื‘ืฉื $ip 2. ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืกื™ืžืŸ = ื‘ืฉื•ืจื” ื‘ืฉื‘ื™ืœ ื”ืฉืžื”. ืžืชื•ืš ื”ืจื’ืœ ื”ืฆืžื“ืชื™ ืืช ื”ื›ืœ ื‘ืœื™ ืจื•ื•ื— ืื‘ืœ ื–ื” ื™ืขื‘ื•ื“ ื’ื ืื ื ืฉื™ื ืจื•ื•ื—ื™ื ืžืกื‘ื™ื‘ ืœืกื™ืžืŸ ื”ืฉื•ื•ื” (ื˜ื™ืจื•ืฃ). 3. ื”ืคืงื•ื“ื•ืช ื‘ Power Shell ืžื•ืจื›ื‘ื•ืช ื‘ื“ืจืš ื›ืœืœ ืžืฉืชื™ ืžื™ืœื™ื ืขื ืžืงืฃ ื‘ื™ื ื™ื”ืŸ, ื›ืฉื”ืžื™ืœื” ื”ืจืืฉื•ื ื” ืžืชืืจืช ืžื” ืจื•ืฆื™ื ืœืขืฉื•ืช ื•ื”ืฉื ื™ื” ืžืชื•ืš ืื™ื–ื” ืžื•ื“ื•ืœ ืื• ืื•ื‘ื™ืงื˜. ืื– Get-NetIPAddress ืื•ืžืจืช ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœืงื—ืช ืืช ื”ืคืจื˜ื™ื ืฉืœ ื”ืชืงืŸ ื”ืจืฉืช. 4. ืœืคืงื•ื“ื” ื™ืฉ ืื•ืคืฆื™ื•ืช ืฉืื ื—ื ื• ืžืขื‘ื™ืจื™ื ืขื ืกื™ืžืŸ - ื›ืžื• ืฉืื ื—ื ื• ืžืฆืคื™ื, ืื‘ืœ ืื•ืคืฆื™ื” ื”ืคืขื ื”ื•ื ืžื™ืœื” ืฉืœืžื” ื•ืœื ืื•ืช ื‘ื•ื“ื“ืช. ื”ืื•ืคืฆื™ื” InterfaceAlias ืื•ืžืจืช ืื™ื–ื” ืžืžืฉืง ืจืฉืช ืื ื—ื ื• ืจื•ืฆื™ื ืœืงื‘ืœ, ื•ื”ืื•ืคืฆื™ื” AddressFamily ืขื•ื–ืจืช ืœืกื ืŸ ืื™ื–ื” ืžื”ื›ืชื•ื‘ื•ืช ืื ื—ื ื• ืจื•ืฆื™ื. 5. ืกื™ืžืŸ | ืขื•ืฉื” ื‘ื“ื™ื•ืง ืžื” ืฉื”ื™ื™ืชื ืžืฆืคื™ื, ื•ืžืขื‘ื™ืจ ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ืคืงื•ื“ื” ืœืคืงื•ื“ื” ื”ื‘ืื” ื‘ืฉื•ืจื”. ืื‘ืœ - ื•ืคื” ื”ืงืกื - ื‘ Power Shell ื›ืœ ื”ืชื•ืฆืื•ืช ื”ืŸ ืื•ื‘ื™ืงื˜ื™ื ื•ืœื ืกืชื ื˜ืงืกื˜ื™ื, ื•ืœื›ืŸ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืคืงื•ื“ื•ืช ืžื™ื•ื—ื“ื•ืช ืฉืœื”ื ื›ื“ื™ ืœืงื—ืช ืฉื“ื•ืช ืžืกื•ื™ืžื™ื ืžืชื•ืš ื”ืื•ื‘ื™ืงื˜ื™ื (ืื• ืœื”ื“ืคื™ืก ืื•ืชื ื‘ืฆื•ืจื” ืžืกื•ื™ืžืช ืื• ื›ืœ ื“ื‘ืจ ื‘ืกื’ื ื•ืŸ). 6. ื”ืคืงื•ื“ื” select ืœื•ืงื—ืช ืฉื“ื” ืื—ื“ ืžืชื•ืš ื”ืื•ื‘ื™ืงื˜ ืฉืงื™ื‘ืœื”. ื”ืื•ืคืฆื™ื” expand ืžื—ื–ื™ืจื” ืืช ื”ืชื•ื›ืŸ ืฉืœ ื”ืฉื“ื” ืขืฆืžื• ื‘ืœื™ ืฉื ื”ืฉื“ื”. 7. ื”ืฉื•ืจื” ื”ื‘ืื” ื”ื™ื ื’ื ื”ืคืงื•ื“ื” ื”ื‘ืื” - Invoke-Expression ื•ื”ื™ื ืคืฉื•ื˜ ืžืคืขื™ืœื” ืชื•ื›ื ื™ืช ืฉืื ื—ื ื• ืžืขื‘ื™ืจื™ื ืœื” ื‘ืชื•ืจ ืžื—ืจื•ื–ืช. ืืช ื”ืงืจื™ืื” ืžื”ืžืฉืชื ื” ืื ื™ ืžืคืจื™ื“ ืžืฉืืจ ื”ืžื—ืจื•ื–ืช ืขื ืกื•ื’ืจื™ื™ื ืžืกื•ืœืกืœื™ื ื›ื“ื™ ืฉ Power Shell ืœื ื™ื—ืฉื•ื‘ ืฉื”ื ืงื•ื“ื•ืชื™ื™ื ืืคืก ื”ื ื—ืœืง ืžืฉื ื”ืžืฉืชื ื” ืื• ืงืฉื•ืจื™ื ืœืžืฉืชื ื” ื‘ืื™ื–ืฉื”ื• ืื•ืคืŸ. ## ืื™ืš ืžืจื™ืฆื™ื ืกืงืจื™ืคื˜ Power Shell ื‘ื ื™ื’ื•ื“ ืœื™ื•ื ื™ืงืก, ืงื•ื‘ืฅ ps1 ืฉืœ Power Shell ืœื ื ื™ืชืŸ ืœื”ืคืขืœื” ืจื’ื™ืœื” ืžื›ืœ ืžื™ื ื™ ืกื™ื‘ื•ืช ืื‘ื˜ื—ื”. ื‘ืžืงื•ื ื–ื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื™ืฆื•ืจ Shortcut ื—ื“ืฉ ืฉื™ื›ื™ืœ ืืช ื” Target ื”ื‘ื:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -ExecutionPolicy Bypass -File C:\Users\ynonp\ps1\emacs.ps1
ืืช ื”ืงื™ืฆื•ืจ ื”ื–ื” ื›ื‘ืจ ืืคืฉืจ ืœื”ืคืขื™ืœ ื‘ืืžืฆืขื•ืช ืœื—ื™ืฆื” ื›ืคื•ืœื” ืขืœ ื” Shortcut, ืื• ืืคื™ืœื• ื™ื•ืชืจ ื˜ื•ื‘ ืื ืชืฉื™ืžื• ืื•ืชื• ื‘ืชื•ืš ื”ืชื™ืงื™ื”:
C:\Users\<Your Username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\
ืื– ื”ืงื™ืฆื•ืจ ื™ืชื•ื•ืกืฃ ืœืชืคืจื™ื˜ "ื”ืชื—ืœ" ื•ืชื•ื›ืœื• ืœืžืฆื•ื ื•ืœื”ืคืขื™ืœ ืื•ืชื• ื“ืจืš ื”ืชืคืจื™ื˜ ืื• ื“ืจืš ื›ืœ Launcher ืฉื™ืฉ ืœื›ื.

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

ToCode
1 419
    const [snakeData, setSnakeData] = useState(getSnakeData(snake));
    const [appleData, setAppleData] = useState(getAppleData(apple));
    useEffect(function() {
        const clock = setInterval(function() {
            tick();
            setSnakeData(getSnakeData(snake));
            setAppleData(getAppleData(apple));
        }, 200);

        return function() {
            clearInterval(clock);
        }
    }, [])

    return (
        _.range(50).map(row => (
            <div className="row" key={`row-${row}`}>
                {
                    _.range(50).map(col => (
                        <div
                            className="col"
                            style={{ background: colorOf(row, col, snakeData, appleData)}}
                            key={`col-${row}-${col}`}
                        />
                    ))
                }
            </div>
        ))
    )
}
ื”ืกื˜ื™ื™ื˜ ืžืื•ืชื—ืœ ื“ืจืš ืคื•ื ืงืฆื™ื•ืช ื”ื”ืขืชืงื” ืฉื›ืชื‘ื ื• ืงื•ื“ื - ื•ืขื•ื‘ืจ ืžืžื™ื“ืข ื—ื™ืฆื•ื ื™ ื‘ืงื•ื‘ืฅ ื”ื ื—ืฉ ืœืžื™ื“ืข ืคื ื™ืžื™ ื‘ืคื•ืจืžื˜ ืฉื”ืงื•ืžืคื•ื ื ื˜ื” ืžื›ื™ืจื”. ื”ืืคืงื˜ ืžืคืขื™ืœ ืืช tick ื›ืœ 200 ืžื™ืœื™ ืฉื ื™ื•ืช ื•ืื—ืจื™ ื–ื” ืžื—ืฉื‘ ืžื—ื“ืฉ ืืช ื”ืกื˜ื™ื™ื˜ ื›ื“ื™ ืฉืžืžืฉืง ื”ืžืฉืชืžืฉ ื™ืจืื” ืืช ืชื•ืฆืืช ื”ื—ื™ืฉื•ื‘. ื•ืชื•ื›ืŸ ื”ืงื•ืžืคื•ื ื ื˜ื” ืขืฆืžื• ืคืฉื•ื˜ ืžืฆื™ื™ืจ 50 ืฉื•ืจื•ืช ืฉืœ 50 ืžืฉื‘ืฆื•ืช ื‘ืฉื•ืจื” ื›ื“ื™ ืฉืืคืฉืจ ื™ื”ื™ื” ืœืฆื‘ื•ืข ืื•ืชืŸ ื‘ื›ื—ื•ืœ ืขื‘ื•ืจ ื”ื ื—ืฉ ืื• ื‘ืื“ื•ื ืขื‘ื•ืจ ื”ืชืคื•ื—. ## ืฉื™ื ื•ื™ ื›ื™ื•ื•ืŸ ืขื ื”ื—ืฆื™ื ืื ืชื›ืชื‘ื• ืืช ื”ืงื•ื“ ืขื“ ืขื›ืฉื™ื• ืชืงื‘ืœื• ื ื—ืฉ ืฉื”ื•ืœืš ืชืžื™ื“ ืจืง ืœืžื˜ื”. ื”ืกื™ื‘ื” ื”ื™ื ืฉื”ื›ื™ื•ื•ืŸ ืฉืœ ื”ื ื—ืฉ ืืฃ ืคืขื ืœื ืžืฉืชื ื”. ื”ื•ืกื™ืคื• ืื™ืคืฉื”ื• ื‘ืชื•ื›ื ื™ืช ืืช ื”ืงื•ื“ ื”ื‘ื ืฉืžื˜ืคืœ ื‘ืฉื™ื ื•ื™ ื›ื™ื•ื•ืŸ ื”ื ื—ืฉ ืœืคื™ ืœื—ื™ืฆื” ืขืœ ื›ืคืชื•ืจื™ ื”ื—ืฆื™ื:
window.addEventListener('keydown', function(ev) {
    if (ev.key === "ArrowDown") {
        snake.direction = [1, 0];
    }

    if (ev.key === "ArrowUp") {
        snake.direction = [-1, 0];
    }

    if (ev.key === "ArrowLeft") {
        snake.direction = [0, -1];
    }

    if (ev.key === "ArrowRight") {
        snake.direction = [0, 1];
    }
});
ื•ืื ื—ื ื• ืžื•ื›ื ื™ื ืœืžืฉื—ืง. ## ืขื›ืฉื™ื• ืืชื ื›ืžื• ืฉืฉืžืชื ืœื‘ ื”ืคื•ืกื˜ ืžื•ืจื›ื‘ ืžืงื˜ืขื™ ืงื•ื“ ื•ื”ืกื‘ืจื™ื ืขืœื™ื”ื ื‘ืœื™ ืชื•ื›ื ื™ืช ืžืœืื” ื•ื‘ืœื™ ืงื™ืฉื•ืจ ืœืื™ื–ื” ืงื•ื“ืกื ื“ื‘ื•ืงืก. ื”ืคืขื ืื ื™ ืจื•ืฆื” ืœื”ืขื‘ื™ืจ ืืช ื”ื›ื“ื•ืจ (ืื• ื”ืชืคื•ื—) ืืœื™ื›ื ื•ืœื”ืฆื™ืข ืœื›ื ืœืงื—ืช ืืช ืงื˜ืขื™ ื”ืงื•ื“ ื•ืœื ืกื•ืช ืœื—ื‘ืจ ืื•ืชื ื‘ืขืฆืžื›ื ืœืžืฉื—ืง ืกื ื™ื™ืง ืฉืขื•ื‘ื“ ืืฆืœื›ื ืขืœ ื”ืžื›ื•ื ื”. ืฉื™ืžื• ืœื‘ ืฉืชืฆื˜ืจื›ื• ืœื›ืชื•ื‘ ืืช ื” CSS ื”ืžืชืื™ื ื›ื“ื™ ืฉืœื•ื— ื”ืžืฉื—ืง ื’ื ื™ืจืื” ื›ืžื• ืœื•ื—. ืื—ืจื™ ืฉืชืกื™ื™ืžื• ืชื•ื›ืœื• ืœื”ืฉืชื•ืœืœ - ืœื”ื•ืกื™ืฃ ืขื•ื“ ืชืคื•ื—ื™ื ืื• ืคื™ืจื•ืช ืื—ืจื™ื, ืœื”ื•ืกื™ืฃ ืขื•ื“ ื ื—ืฉ ื›ื“ื™ ืœืืคืฉืจ ืžืฉื—ืง ื‘ืฉื ื™ ืฉื—ืงื ื™ื (ืื• ืขื•ื“ 5 ื ื—ืฉื™ื ืœ-5 ืฉื—ืงื ื™ื) ื•ืืคื™ืœื• ืœืืคืฉืจ ืœืื ืฉื™ื ืœืฉื—ืง ืขื ื—ื‘ืจื™ื ื‘ืจืฉืช. ื .ื‘. ื‘ื™ื•ื ื—ืžื™ืฉื™ ื”ืงืจื•ื‘ ืื ื™ ืžืขื‘ื™ืจ ื›ืืŸ ื•ื•ื‘ื™ื ืจ ืขืœ ื‘ื“ื™ืงื•ืช ื™ื™ืฉื•ืžื™ ืจื™ืืงื˜ ื•ืฉื ืืจืื” ืœื›ื ืื™ืš ืœื‘ื“ื•ืง ืืช ืžืฉื—ืง ื”ืกื ื™ื™ืง ื”ื–ื”, ื•ืชื•ื›ื ื™ื•ืช ืจื™ืืงื˜ ื‘ืื•ืคืŸ ื›ืœืœื™. ืžื•ื–ืžื ื™ื ืœืงืคื•ืฅ ืœื”ื’ื™ื“ ืฉืœื•ื. ื”ืจืฉืžื” ื‘ืงื™ืฉื•ืจ: https://www.tocode.co.il/workshops/108.

ToCode
1 419
# ืกืงื™ืฆื” ืœืคื™ืชื•ื— ืžืฉื—ืง Snake ื‘ React ืจื™ืืงื˜ ื”ื•ื ืงื•ื“ื ื›ืœ ืคืจื™ื™ืžื•ื•ืจืง ืœืคื™ืชื•ื— ืžืžืฉืงื™ื ื’ืจืคื™ื™ื, ื•ื™ื“ื•ืข ืฉืื™ืŸ ืžืžืฉืง ื’ืจืคื™ ื™ื•ืชืจ ืžืขื ื™ื™ืŸ ืžืžืฉื—ืง ืกื ื™ื™ืง. ืื ื™ืฉ ืœื›ื ื—ืฆื™ ืฉืขื” ืคื ื•ื™ื” ืžื•ื–ืžื ื™ื ืœื‘ื ื•ืช ืื™ืชื™ ืžืฉื—ืง ืกื ื™ื™ืง ื‘ืจื™ืืงื˜ ื›ื“ื™ ืœืœืžื•ื“ ื™ื•ืชืจ ืœืขื•ืžืง ืขืœ ื”ื—ื™ื‘ื•ืจ ื‘ื™ืŸ ืจื™ืืงื˜ ืœืงื•ื“ ื—ื™ืฆื•ื ื™. ## ื”ืงื•ื“ ื”ื—ื™ืฆื•ื ื™ ืžื” ืฉื™ืคื” ื‘ืžืฉื—ืง ืกื ื™ื™ืง ื–ื” ืฉืžืื•ื“ ืงืœ ืœืจืื•ืช ื•ืœื‘ื ื•ืช ืืช ื”ืœื•ื’ื™ืงื” ืฉืœื•: ื‘ื’ื™ืจืกื” ื”ื‘ืกื™ืกื™ืช ืฉืœ ื”ืžืฉื—ืง ื™ืฉ ื‘ืกืš ื”ื›ืœ ื ื—ืฉ ืื—ื“ ืฉืฆืจื™ืš ืœืชืคื•ืก ืชืคื•ื— ืื—ื“. ื‘ืœื™ ืจื™ืืงื˜ ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืืช ื”ืœื•ื’ื™ืงื” ืฉืœ ื”ืžืฉื—ืง ื‘ืคื—ื•ืช ืž 50 ืฉื•ืจื•ืช: 1. ื”ื ื—ืฉ ืฉื•ืžืจ ืืช ื”ืžื™ืงื•ื ื•ื”ื›ื™ื•ื•ืŸ ืฉืœื• 2. ื”ืชืคื•ื— ืฉื•ืžืจ ืืช ื”ืžื™ืงื•ื ืฉืœื• 3. ื›ืœ X ื–ืžืŸ ื”ื ื—ืฉ ืžืชืงื“ื ืฆืขื“ ืื—ื“: ืื ื”ื•ื ืคื’ืข ื‘ืชืคื•ื— ื”ื•ื ื’ื“ืœ, ื•ืื ื”ื•ื ืคื’ืข ื‘ืขืฆืžื• ืžืชื—ื™ืœื™ื ืžื”ืชื—ืœื”. ืžื•ื–ืžื ื™ื ืœื ืกื•ืช ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“ ื‘ืขืฆืžื›ื. ื–ื” ืžื” ืฉื™ืฆื ืœื™ ื•ืฉืžืจืชื™ ื‘ืงื•ื‘ืฅ ื‘ืฉื game/snake.js:
import _ from 'lodash';

function restart() {
    snake.size = 4;
    snake.pos = [[0, 0]];
    snake.direction = [1, 0];
    apple.pos = [_.random(-25, 25), _.random(-25, 25)];
}

export const snake = {
    pos: [[0, 0]],
    size: 4,
    direction: [1, 0],
}
 
export const apple = {
    pos: [_.random(-25, 25), _.random(-25, 25)]
}

function collides(pos1, pos2) {
    return pos1[0] === pos2[0] && pos1[1] === pos2[1];
}

export function tick() {
    if (collides(snake.pos[0], apple.pos)) {
        snake.size += 1;
        apple.pos = [_.random(-25, 25), _.random(-25, 25)];
    }

    const snakeHead = snake.pos[0];
    const nextHead = [snakeHead[0] + snake.direction[0], snakeHead[1] + snake.direction[1]];
    if (nextHead[0] > 25) { nextHead[0] = -25; }
    if (nextHead[0] < -25) { nextHead[0] = 25; }
    if (nextHead[1] > 25) { nextHead[1] = -25; } 
    if (nextHead[1] < -25) { nextHead[1] = 25; }

    if (snake.pos.filter(p => collides(p, nextHead)).length > 0) {
        // snake collides with itself
        return restart();
    }

    snake.pos.unshift(nextHead);
    if (snake.pos.length > snake.size) {
        snake.pos.pop();
    }
}
ืขื™ืงืจ ื”ืœื•ื’ื™ืงื” ืงื•ืจื” ื‘ืคื•ื ืงืฆื™ื” tick - ืฉืžืงื“ืžืช ืืช ื”ื ื—ืฉ ื‘ืฆืขื“ ืื—ื“ ื•ื‘ื•ื“ืงืช ื”ืชื ื’ืฉื•ื™ื•ืช. ## ื—ื™ื‘ื•ืจ ื”ืงื•ื“ ื”ื—ื™ืฆื•ื ื™ ืœืจื™ืืงื˜ ืื‘ืœ ืื ื—ื ื• ืœื ืคื” ื‘ืฉื‘ื™ืœ ืœื“ื‘ืจ ืขืœ ืœื•ื’ื™ืงื” - ืื ื—ื ื• ืจื•ืฆื™ื ืœืฉื—ืง ื•ื‘ืฉื‘ื™ืœ ืœืฉื—ืง ืฆืจื™ืš ื’ื ืœืจืื•ืช ืฆื‘ืขื™ื ื–ื–ื™ื ืขืœ ืžืกืš. ื”ื—ื™ื‘ื•ืจ ืฉืœ ื”ืœื•ื’ื™ืงื” ืœืจื™ืืงื˜ ื”ื•ื ื‘ื“ื™ื•ืง ื”ืงืกื ืฉืœ ืจื™ืืงื˜: ื–ืืช ื”ื‘ื—ื™ืจื” ื‘ืžื™ื“ืข ืฉืื ื—ื ื• ืจื•ืฆื™ื ืœืฉืžื•ืจ ื‘ืชื•ืš ื”ืกื˜ื™ื™ื˜. ื‘ืžืฉื—ืง ืกื ื™ื™ืง ืžื” ืฉื—ืฉื•ื‘ ืœื ื• ื–ื” ืœื“ืขืช ืื™ืคื” ื ืžืฆื ื”ื ื—ืฉ ื•ืื™ืคื” ื ืžืฆื ื”ืชืคื•ื—. ืืคืฉืจ ืœื”ื’ื™ื“ ืฉืจืฉื™ืžืช ื”ืงื•ืจื“ื™ื ื˜ื•ืช ื”ื™ื ื‘ื“ื™ื•ืง ื”ืกื˜ื™ื™ื˜ ืฉืœ ื”ืงื•ืžืคื•ื ื ื˜ื”. ื›ืœ ืฉื™ื ื•ื™ ื‘ืžื™ืงื•ืžื™ื ืฉืœ ื”ื ื—ืฉ ืื• ื”ืชืคื•ื— ื“ื•ืจืฉ ืฆื™ื•ืจ ืžื—ื“ืฉ ืฉืœ ื—ืœืง ืžื”ืœื•ื—. ื”ื“ืจืš ื”ืžืงื•ื‘ืœืช ืœืงื—ืช ืžื™ื“ืข ื—ื™ืฆื•ื ื™ ื•ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืชื•ืจ ืกื˜ื™ื™ื˜ ืฉืœ ืงื•ืžืคื•ื ื ื˜ืช ืจื™ืืงื˜ ื”ื™ื ืœืฉื›ืคืœ ืืช ื”ืžื™ื“ืข ื•ืœืชืจื’ื ืื•ืชื• ืœืฆื•ืจื” ืฉืจืœื•ื•ื ื˜ื™ืช ืœืงื•ืžืคื•ื ื ื˜ื”. ื‘ืžื™ืœื™ื ืื—ืจื•ืช ืื ื”ืงื•ืžืคื•ื ื ื˜ื” ืฉืœื™ ืฆืจื™ื›ื” ืœื“ืขืช ืื™ืคื” ื ืžืฆื ื”ื ื—ืฉ ืื– ืื ื™ ื™ื•ืฆืจ ื‘ืกื˜ื™ื™ื˜ ืžืฉืชื ื” ืžืกื•ื’ Set ืฉื™ื›ื™ืœ ืืช ื›ืœ ื”ืžื™ืงื•ืžื™ื ืฉืœ ื”ื ื—ืฉ. ื•ืื ื”ืงื•ืžืคื•ื ื ื˜ื” ืฆืจื™ื›ื” ืœื“ืขืช ืื™ืคื” ื”ืชืคื•ื— ืื ื™ ื™ื•ืฆืจ ื‘ืกื˜ื™ื™ื˜ Set (ืื• ืžืฉืชื ื” ื‘ื•ื“ื“ ื–ื” ืœื ืžืžืฉ ืžืฉื ื”) ืฉื™ื›ื™ืœ ืืช ื›ืœ ื”ืžื™ืงื•ืžื™ื ืฉืœ ื”ืชืคื•ื— - ืฉื›ืจื’ืข ื–ื” ื›ืžื•ื‘ืŸ ืจืง ืžืงื•ื ืื—ื“. ื‘ JavaScript ืฉืœื•ืฉืช ื”ืคื•ื ืงืฆื™ื•ืช ื”ืืœื” ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžื™ืžื•ืฉ ื˜ื•ื‘ ืœืžื ื’ื ื•ืŸ ื™ืฆื™ืจืช ื”ืกื˜ื™ื™ื˜ ืžืชื•ืš ื”ืžื™ื“ืข ื”ื—ื™ืฆื•ื ื™:
function translate(coord) {
    return `${coord[0] + 25},${coord[1] + 25}`;
}

function getAppleData(apple) {
    return new Set([translate(apple.pos)]);
}

function getSnakeData(snake) {
    return new Set(snake.pos.map(translate));
}
ื•ืคื” ืฆืจื™ืš ืœืฉื™ื ืœื‘ ืฉื”ืจื‘ื” ื™ื•ืชืจ ืงืœ ืœื ื• ืœื‘ื ื•ืช Set-ื™ื ื—ื“ืฉื™ื ื•ืœื”ืฉืชืžืฉ ื‘ื”ื ื‘ืกื˜ื™ื™ื˜, ืžืืฉืจ ืœืฉืžื•ืจ Reference ืœืžื™ื“ืข ื”ื—ื™ืฆื•ื ื™ ืžื”ืกื˜ื™ื™ื˜. ืžื‘ื—ื™ื ืช ืจื™ืืงื˜ ื›ืฉื”ื•ื ื™ืงื‘ืœ Set ื—ื“ืฉ ื”ื•ื ื™ืคืขื™ืœ ืžื—ื“ืฉ Render ื•ื™ื‘ื“ื•ืง ืื™ืš ื”ืฉื™ื ื•ื™ ื‘ืกื˜ื™ื™ื˜ ืžืฉืคื™ืข ืขืœ ื”ืงื•ืžืคื•ื ื ื˜ื”, ื•ื‘ืžืงืจื” ืฉืœ ืžืฉื—ืง ื”ื ื—ืฉ ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉืื ื—ื ื• ืจื•ืฆื™ื. ืขื•ื“ ืคื•ื ืงืฆื™ื™ืช ืขื–ืจ ืงื˜ื ื” ืœืคื ื™ ื”ืงื•ืžืคื•ื ื ื˜ื” ืชืงื‘ืœ ืžื™ืงื•ื ื•ืกื˜ื™ื™ื˜ ื•ืชื’ื™ื“ ืžื” ื”ืฆื‘ืข ืฉืœ ื”ืžืฉื‘ืฆืช ื‘ืžื™ืงื•ื ืฉื‘ื—ืจื ื•:

function colorOf(row, col, snakeData, appleData) {
    if (snakeData.has(`${row},${col}`)) {
        return "blue";
    }

    if (appleData.has(`${row},${col}`)) {
        return "red";
    }

    return "transparent";
}
ื•ืขื›ืฉื™ื• ื™ืฉ ืœื ื• ืืช ื›ืœ ื”ืžื™ื“ืข ื•ืงื˜ืขื™ ื”ืงื•ื“ ื”ื“ืจื•ืฉื™ื ื›ื“ื™ ืœื›ืชื•ื‘ ืืช ืงื•ืžืคื•ื ื ื˜ืช ื”ื ื—ืฉ ืขืฆืžื”. ื”ืงื•ืžืคื•ื ื ื˜ื” ื™ื—ืกื™ืช ืืจื•ื›ื” ื•ื›ื•ืœืœืช ื’ื ืงื•ื“ ืœืชืฆื•ื’ื”, ื’ื ื”ื’ื“ืจืช State ื•ื’ื ื”ื’ื“ืจืช ืืคืงื˜. ื–ื” ื”ืงื•ื“ ื”ืžืœื ืฉืื ื™ ื›ืชื‘ืชื™:
export default function Snake(props) {

ToCode
1 419
# ื”ื•ืจืื•ืช ืžื“ื•ื™ืงื•ืช ื”ืฆื•ืจืš ื”ืžืื•ื“ ื˜ื‘ืขื™ ืฉืœื ื• ืœืžืฆื•ื ื”ื•ืจืื•ืช ืžื“ื•ื™ืงื•ืช ืžืชื—ื‘ืจ ื™ืคื” ืœืจืฆื•ืŸ ืฉืœ ืืชืจื™ื ืจื‘ื™ื ืœื”ื™ื•ืช ื™ื“ื™ื“ื•ืชื™ื™ื, ื•ื›ืš ืื ื—ื ื• ืžื’ื™ืขื™ื ืœืžืฉืคื˜ ื”ื‘ื ื‘ื”ื•ืจืื•ืช ื”ื”ืชืงื ื” ืฉืœ rvm:
$ \curl -sSL https://get.rvm.io | bash
ืฉื›ื•ืœืœ ืžืฆื“ ืื—ื“ ืืช ื” \ ื‘ื”ืชื—ืœื” ื›ื“ื™ ืœื”ื’ื™ืข ืœื’ื™ืจืกื” ื”ืืžื™ืชื™ืช ืฉืœ curl ื‘ืœื™ alias-ื™ื, ืื‘ืœ ืžืฆื“ ืฉื ื™ ืžืชืขืœื ืžื–ื” ืฉื‘ืžื—ืฉื‘ื™ื ื™ืฉื ื™ื ืื• ื›ืืœื” ืฉืžืื—ื•ืจื™ proxy, ืขืœื•ืœื” ืœื”ื™ื•ืช ื‘ืขื™ื” ืขื ื”ืชืขื•ื“ื•ืช ืฉืชื›ืฉื™ืœ ืืช ื›ืœ ื”ืžื”ืœืš. ื›ืžื•ื‘ืŸ ืฉื”ื™ื™ื ื• ื›ื•ืขืกื™ื ืขืœื™ื”ื ื‘ืื•ืชื” ืžื™ื“ื” ืื ื”ื ื”ื™ื• ืžื›ื ื™ืกื™ื ื’ื -k ืœื”ื•ืจืื•ืช ื”ื”ืชืงื ื” - ืžื” ืคืชืื•ื ืฉืžื™ืฉื”ื• ื™ืžืœื™ืฅ ืœื™ ืœื”ืชืขืœื ืžืฉื’ื™ืื•ืช ืื‘ื˜ื—ื”? ื•ื‘ืžื™ื•ื—ื“ ื›ืฉืื ื™ ื”ื•ืœืš ืœื”ืชืงื™ืŸ ื›ืœื™ ืจื’ื™ืฉ ื›ืžื• rvm. ืœื, ืžืงื•ืจ ื”ื‘ืขื™ื” ืื™ื ื• ื—ื•ืกืจ ื“ื™ื•ืง ื‘ื”ื•ืจืื•ืช. ืื™ืŸ ื”ื•ืจืื•ืช ืžื“ื•ื™ืงื•ืช ืžืกืคื™ืง ืฉื™ืชืื™ืžื• ืœื›ื•ืœื. ืžืงื•ืจ ื”ื‘ืขื™ื” ื”ื•ื ื”ื ื™ืกื™ื•ืŸ ืœืขื–ื•ืจ ืœืื ืฉื™ื ืฉืœื ื™ื•ื“ืขื™ื ืื™ืš ืœื”ื•ืจื™ื“ ืกืงืจื™ืคื˜ bash ื•ืœื”ืจื™ืฅ ืื•ืชื•, ืœื”ืฆืœื™ื— ืœืขืฉื•ืช ืืช ื–ื” ื‘ืœื™ ืœื”ื‘ื™ืŸ ืืช ืžื” ืฉื”ื ืขื•ืฉื™ื. ื”ื”ื•ืจืื•ืช ื”ื›ื™ ื˜ื•ื‘ื•ืช ื”ืŸ ืืœื” ืฉืžืชืืจื•ืช ื‘ืžื™ืœื™ื "ืžื” ืฆืจื™ืš ืœืขืฉื•ืช" ื•ื ื•ืชื ื•ืช ืœื™ ืœืฉื‘ื•ืจ ืืช ื”ืจืืฉ ืขืœ ื”"ืื™ืš". ื–ื” ืื•ืœื™ ื™ื™ืงื— ื™ื•ืชืจ ื–ืžืŸ ืื‘ืœ ืœืคื—ื•ืช ื™ื—ืกื•ืš ื˜ืขื•ื™ื•ืช ื•ืคืื“ื™ื—ื•ืช.

ToCode
1 419
# ื—ืžื™ืฉื” ื˜ื™ืคื™ื ืœื ื™ืงื™ื•ืŸ ื‘ื™ืŸ ื”ืžืฉื™ืžื•ืช ื›ืžื• ืฉืคืขื ื‘ื›ืžื” ื–ืžืŸ ืืชื ืขื•ืฆืจื™ื ื›ื“ื™ ืœื ืงื•ืช ืืช ื”ื‘ื™ืช, ื›ืš ื’ื ื”ืงื•ื“ ืฉืœื›ื ืฆืจื™ืš ืžื“ื™ ืคืขื ืฉืชื™ืงื—ื• ืขืฆื™ืจื” ื•ืชืขื‘ื™ืจื• ืขืœื™ื• ืกืžืจื˜ื•ื˜. ื•ื›ืžื• ื‘ื‘ื™ืช, ื’ื ืงื•ื“ ืฉืœื ืžื ืงื™ื ืื•ืชื• ื”ืจื‘ื” ื–ืžืŸ ืžืชื—ื™ืœ ืœื”ืจืื•ืช ืกื™ืžื ื™ื ืฉืœ ืœื›ืœื•ืš ื•ื’ื•ืจื ืœืื ืฉื™ื ื—ื“ืฉื™ื ืœืจืฆื•ืช ืœื‘ืจื•ื—. ืื– ืžื” ืขื•ืฉื™ื? ื”ื ื” 5 ื˜ื™ืคื™ื ืงืฆืจื™ื ืฉื™ืขื–ืจื• ืœืฉืžื•ืจ ืืช ื”ืงื•ื“ ืฉืœื›ื ื ืงื™: ## ืžืฉื“ืจื’ื™ื ืชืœื•ื™ื•ืช ืงื—ื• ืคืขื ื‘ืฉื‘ื•ืข ืื• ืฉื‘ื•ืขื™ื™ื ื›ืžื” ืฉืขื•ืช ืœืฉื“ืจื’ ืืช ื›ืœ ื”ืชืœื•ื™ื•ืช. ื›ืžื• ื‘ื ื™ืงื™ื•ืŸ ื‘ื‘ื™ืช, ืื ืฉื™ื ืฉืžืงืคื™ื“ื™ื ืœื ืงื•ืช ืืช ื”ืืจื•ื ื•ืช ืคืขื ื‘ืฉื‘ื•ืขื™ื™ื ืžื’ืœื™ื ืฉื”ื ื™ืงื™ื•ืŸ ื–ื•ืจื ื“ื™ ืžื”ืจ, ืื‘ืœ ืืœื” ืฉืžื ืงื™ื ืืช ื”ืืจื•ืŸ ืคืขื ื‘ืฉื ื” ืื• ืฉื ืชื™ื™ื ื™ื’ืœื• ืฉื›ืœ ื™ื•ื ื ื™ืงื™ื•ืŸ ื›ื–ื” ืœื•ืงื— ื›ืžืขื˜ ืฉื‘ื•ืข. ื”ืืชื’ืจ- ืžื“ื™ ืคืขื ืื ื—ื ื• ื ื’ืœื” ืฉืฉื™ื“ืจื•ื’ ืชืœื•ืช ืžืกื•ื™ื ืฉื•ื‘ืจ ืžืฉื”ื• ื‘ืงื•ื“ ืฉืœื ื•. ื–ืืช ื‘ื“ื™ื•ืง ื”ื”ื–ื“ืžื ื•ืช ืœืชืงืŸ ืืช ื”ืงื•ื“ ื™ื—ื“ ืขื ื”ืฉื™ื“ืจื•ื’ ื›ื“ื™ ืœื•ื•ื“ื ืฉื ื•ื›ืœ ืชืžื™ื“ ืœื”ื™ืฉืืจ ื‘ื’ื™ืจืกืื•ืช ื”ื›ื™ ืžืขื•ื“ื›ื ื•ืช. ## ืžืขื™ืคื™ื ืงื•ื“ ืžื™ื•ืชืจ ื‘ืชื”ืœื™ืš ื›ืชื™ื‘ืช ืงื•ื“ ื ื•ืฆืจ ื’ื ื”ืจื‘ื” ื–ื‘ืœ: ืœืคืขืžื™ื ื–ื” ืงื•ื‘ืฅ CSS ืฉื›ื‘ืจ ืœื ืฆืจื™ืš ืื•ืชื•, ืœืคืขืžื™ื ื–ื• ืงื•ืžืคื•ื ื ื˜ื” ืฉื‘ืกื•ืฃ ื”ืชื’ืœืชื” ื›ืจืขื™ื•ืŸ ื’ืจื•ืข ื•ืœืคืขืžื™ื ืงื•ื“ ืฆื“ ืฉืจืช ืื• ืฉื™ื ื•ื™ื™ื ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื. ืชื”ืœื™ืš ื ื•ืกืฃ ืฉื™ื•ืฆืจ ื–ื‘ืœ ื”ื•ื ื”ืื‘ื•ืœื•ืฆื™ื” ื”ื˜ื‘ืขื™ืช ืฉืœ ื”ืžื•ืฆืจ. ืคื™ืฆ'ืจื™ื ืฉื™ื•ืจื“ื™ื ืžื”ืžื•ืฆืจ ืœื•ืงื—ื™ื ืื™ืชื ื’ื ืขืžื•ื“ื•ืช ื‘ื‘ืกื™ืก ื”ื ืชื•ื ื™ื, ืงื‘ืฆื™ ืขื™ืฆื•ื‘, ืงื‘ืฆื™ ืชื™ืขื•ื“ ื™ืฉื ื™ื, ืคื•ื ืงืฆื™ื•ืช Utility ืฉืžืคื•ื–ืจื•ืช ื‘ื›ืœ ืžื™ื ื™ ืžืงื•ืžื•ืช ื‘ืžืขืจื›ืช ื•ืขื•ื“ ื•ืขื•ื“. ื•ืชื”ืœื™ืš ืฉืœื™ืฉื™ ื”ื•ื ื”ืžื—ืฉื‘ื” ืขืœ ืขืชื™ื“ ืžืกื•ื™ื ืฉื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ืœื ืžืชืžืžืฉ. ืืœื” ื”ืžื ื’ื ื•ื ื™ื ื”ื’ื ืจื™ื™ื ืฉื›ืชื‘ื ื• ืœืคื ื™ ืฉื ืชื™ื™ื ื•ื‘ืขืฆื ืขื“ื™ื™ืŸ ืžืฉืžืฉื™ื ืจืง ืœ Use Case ืื—ื“. ืžื—ื™ืงื” ืฉืœ ืžื ื’ื ื•ื ื™ื ื’ื ืจื™ื™ื ื•ื”ืคื™ื›ืชื ืœืกืคืฆื™ืคื™ื™ื ื™ื•ืชืจ ื™ื›ื•ืœื” ืœื”ืงืœ ืขืœ ืžื™ ืฉื™ื‘ื•ื ืœืชื—ื–ืง ื•ืœืชืงืŸ ื‘ืขื™ื•ืช ื‘ืงื•ื“ ื‘ื”ืžืฉืš. ื”ื‘ืขื™ื” ืฉื‘ืžื”ืœืš ื”ืจื’ื™ืœ ืฉืœ ื›ืชื™ื‘ืช ืงื•ื“ ืื ื—ื ื• ื›ืžืขื˜ ืชืžื™ื“ ื‘ืื™ื—ื•ืจ ื‘ืคื™ืฆ'ืจ ื•ื›ืš ื™ื•ืฆืจ ืฉื›ืฉืžืฉื”ื• ื›ื‘ืจ ืขื•ื‘ื“ ืื ื—ื ื• ืžืžืฉื™ื›ื™ื ืžื™ื“ ืœืคื™ืฆ'ืจ ื”ื‘ื ื•ืžืฉืื™ืจื™ื ืืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ืžื™ื•ืชืจื™ื ื‘ืคืจื•ื™ืงื˜. ืื ื™ืฉ ืœื›ื ื–ืžืŸ ื‘ื™ืŸ ื”ืžืฉื™ืžื•ืช, ืžื—ื™ืงืช ื›ืœ ื”ืงื•ื“ ื”ื™ืฉืŸ ื”ื–ื” ืชืขื–ื•ืจ ืœืชื—ื–ื•ืงื” ืงืœื” ื™ื•ืชืจ ื‘ืขืชื™ื“ ื•ืชืงืœ ืขืœ ืื ืฉื™ื ื—ื“ืฉื™ื ืœื”ื™ื›ื ืก ืœืคืจื•ื™ืงื˜. ## ืžืชืงื ื™ื ืงื•ื“ ื’ืจื•ืข ืชื”ืœื™ืš ื—ื‘ืจ ืฉืœ ื”ืžื—ื™ืงื” ื”ื•ื ื”ืจื™ืคืงื˜ื•ืจื™ื ื’ - ืชื”ืœื™ืš ืฉื‘ื• ืื ื—ื ื• ืœื•ืงื—ื™ื ืืœื’ื•ืจื™ืชื ืœื ื”ื›ื™ ื™ืขื™ืœ ื•ืžืฉื›ืชื‘ื™ื ืื•ืชื• ืœื’ื™ืจืกื” ื™ืขื™ืœื”. ืื•, ืœื•ืงื—ื™ื ืงื•ื“ ื›ืคื•ืœ ืฉืžื•ืคื™ืข ื‘ืžืกืคืจ ืžืงื•ืžื•ืช ื•ื‘ื•ื ื™ื ืžื ื’ื ื•ืŸ ื’ื ืจื™ ืฉื™ื—ืกื•ืš ืœื ื• ืืช ื”ืงื•ื“ ื”ื›ืคื•ืœ. ื™ืขื“ ื ื•ืกืฃ ืœืจื™ืคืงื˜ื•ืจื™ื ื’ ื”ื•ื ืงื•ื“ ืฉื›ืชื‘ืชื ื›ืฉืœื ื”ื›ื™ ื”ื›ืจืชื ืืช ื”ืคืจื™ื™ืžื•ื•ืจืง, ื•ื”ื™ื•ื ื›ื‘ืจ ื ืจืื” ืœื›ื ื—ื•ื‘ื‘ื ื™ ืื• ื˜ืจื—ื ื™. ืื ื™ืฉ ืžื ื’ื ื•ืŸ ืžื•ื‘ื ื” ื‘ืคืจื™ื™ืžื•ื•ืจืง ืฉืžื˜ืคืœ ื‘ืžืงืจื” ืžืกื•ื™ื, ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ื”ืžื•ื‘ื ื” ื‘ืžืงื•ื ืœื‘ื ื•ืช ื‘ืขืฆืžื›ื, ื•ืื ื›ื‘ืจ ื‘ื ื™ืชื ื‘ืขืฆืžื›ื ืื– ื”ืจื™ืคืงื˜ื•ืจื™ื ื’ ื–ื” ื”ืฉืœื‘ ื‘ื• ืืชื ืžื•ื—ืงื™ื ืืช ื”ืžื ื’ื ื•ืŸ ืฉืœื›ื ื•ืขื•ื‘ืจื™ื ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ื”ืžื•ื‘ื ื”. ## ืžื•ืกื™ืคื™ื, ืžื•ื—ืงื™ื ืื• ืžืชืงื ื™ื ื‘ื“ื™ืงื•ืช ืกื˜ ื‘ื“ื™ืงื•ืช ื” End To End ืฉืœื›ื ืฆืจื™ืš ืงืฆืช ืื”ื‘ื”? ื”ื‘ื“ื™ืงื•ืช ืœืคืขืžื™ื ืžืฆืœื™ื—ื•ืช ื•ืœืคืขืžื™ื ื ื›ืฉืœื•ืช ื•ืืฃ ืื—ื“ ืœื ืžื‘ื™ืŸ ืœืžื”? ืชื”ืœื™ื›ื™ื ืžืจื›ื–ื™ื™ื ื‘ืžืขืจื›ืช ืœื ื ื‘ื“ืงื™ื? ืœื ืฆืจื™ืš ืœื”ืจื’ื™ืฉ ืจืข ื‘ื’ืœืœ ื–ื” - ื–ื” ื”ืžืฆื‘ ืืฆืœ ื›ื•ืœื. ื‘ื“ื™ืงื•ืช End To End ื–ื” ื”ื—ืœืง ื‘ืžืขืจื›ืช ืฉืžืชื™ื™ืฉืŸ ื”ื›ื™ ืžื”ืจ ื•ืฉืฆืจื™ืš ืœื ืงื•ืช ืื•ืชื• ื‘ืชื“ื™ืจื•ืช ื”ื’ื‘ื•ื”ื” ื‘ื™ื•ืชืจ (ื›ืŸ ื‘ื“ื™ื•ืง ื›ืžื• ื”ืฉื™ืจื•ืชื™ื ืืฆืœื›ื ื‘ื‘ื™ืช). ื‘ื ื™ืงื™ื•ืŸ ื”ืฉื‘ื•ืขื™ ืื ื—ื ื• ืžื•ื—ืงื™ื ื‘ื“ื™ืงื•ืช ืฉื ื›ืฉืœื•ืช (ืชืžื™ื“ ืื• ืœืคืขืžื™ื), ืžื•ืกื™ืคื™ื ื‘ื“ื™ืงื•ืช ืœืชื”ืœื™ื›ื™ื ืžืจื›ื–ื™ื™ื ืฉืฉื›ื—ื ื• ื•ืžืชืงื ื™ื ืืช ื›ืœ ื”ื‘ื“ื™ืงื•ืช ืฉื›ื‘ืจ ืœื ืขื•ื‘ืจื•ืช ื›ื™ ืžื™ืฉื”ื• ืฉื™ื ื” ืื™ื–ื” ืฉื˜ื•ืช ื‘ HTML. ## ืžืฉืคืจื™ื ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ื ืฉืืจ ืœื›ื ืขื•ื“ ื–ืžืŸ ืคื ื•ื™ ื‘ืกื•ืฃ ื”ื ื™ืงื™ื•ืŸ? ื–ื” ื”ื–ืžืŸ ืœื–ื”ื•ืช ืื™ื–ื” ืชื”ืœื™ื›ื™ ืขื‘ื•ื“ื” ืœื•ืงื—ื™ื ืœื›ื ื–ืžืŸ ื•ืœืฉืคืจ ืื•ืชื. ื•ืžืžืฉ ืœื ืฆืจื™ืš ืœืœื›ืช ืขืœ ื›ืœ ื”ืงื•ืคื” - ืžืกืคื™ืง ืœื‘ื ื•ืช Template ื˜ื•ื‘ ื™ื•ืชืจ ืœืงื•ืžืคื•ื ื ื˜ื” ืฉืชืชืื™ื ืœืžืขืจื›ืช ื”ืคื ื™ืžื™ืช ืฉืœื›ื, ืื• ืกืงืจื™ืคื˜ ืงื˜ืŸ ืฉื—ื•ืกืš ืœื›ื ื”ืงืœื“ื” ื‘ Deployment ื”ื‘ื, ืื• ืœื—ื‘ืจ ืืช ื”ื’'ื ืงื™ื ืก ืœืกืœืืง ื›ื“ื™ ืฉื™ื”ื™ื” ืœื›ื ืงืœ ื™ื•ืชืจ ืœืจืื•ืช ืืช ื”ื‘ื“ื™ืงื•ืช ืฉื ื›ืฉืœื•. ื›ืœ ื“ื‘ืจ ืฉืงืฆืช ื™ืขืฉื” ืืช ื”ื—ื™ื™ื ืฉืœื›ื ืงืœื™ื ื™ื•ืชืจ ื™ืชืงื‘ืœ ื‘ื‘ืจื›ื”, ื•ื”ื›ื™ ื ื—ืžื“ ืืœื” ื”ืฉื™ืคื•ืจื™ื ืฉืขื•ืฉื™ื ืื•ื˜ื•ืžืฆื™ื” ืœื“ื‘ืจื™ื ื”ืงื˜ื ื™ื ืฉืื ื—ื ื• ืขื•ืฉื™ื ื›ืœ ื™ื•ื. ื™ืฉ ืœื›ื ืจืขื™ื•ื ื•ืช ื ื•ืกืคื™ื ืœื“ื‘ืจื™ื ืฉื—ื™ื™ื‘ื™ื ืœื ืงื•ืช ื‘ืคืจื•ื™ืงื˜ ื›ืœ ืฉื‘ื•ืข-ืฉื‘ื•ืขื™ื™ื? ืžื•ื–ืžื ื™ื ืœื”ื•ืกื™ืฃ ืื•ืชื ืคื” ื‘ืชื’ื•ื‘ื•ืช.