แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก 4 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ’แƒ–แƒ. แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 1

แƒ“แƒฆแƒ”แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก แƒ•แƒแƒฅแƒชแƒ”แƒ•แƒ— แƒ›แƒแƒกแƒแƒšแƒ˜แƒก แƒ—แƒแƒ แƒ’แƒ›แƒแƒœแƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒœแƒแƒฌแƒ˜แƒšแƒก แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ”แƒฎแƒ”แƒ‘แƒ Dropbox แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒก.

แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก 4 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ’แƒ–แƒ. แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 1

Dropbox แƒ‘แƒ”แƒ•แƒ แƒก แƒฌแƒ”แƒ แƒก แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ”แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒคแƒแƒ แƒ—แƒแƒ“ - แƒ แƒแƒ’แƒแƒ แƒช backend แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒ”แƒกแƒ™แƒขแƒแƒžแƒ˜แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ‘แƒ”แƒ•แƒ แƒก แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Go, TypeScript แƒ“แƒ Rust, แƒ›แƒแƒ’แƒ แƒแƒ› Python แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ”แƒœแƒ. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒแƒ‘แƒ˜แƒ— แƒฎแƒแƒ–แƒ–แƒ”, แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ›แƒ แƒแƒ™แƒ แƒ”แƒคแƒแƒ› แƒ–แƒ”แƒ“แƒ›แƒ”แƒขแƒแƒ“ แƒ’แƒแƒแƒ แƒ—แƒฃแƒšแƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒกแƒ”แƒ แƒ˜แƒแƒ–แƒฃแƒšแƒ˜ แƒ’แƒแƒ•แƒšแƒ”แƒœแƒ แƒจแƒ แƒแƒ›แƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒแƒ–แƒ”. แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒกแƒฃแƒ‘แƒฃแƒฅแƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ—แƒแƒœแƒ“แƒแƒ—แƒแƒœแƒแƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒงแƒ•แƒแƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒ–แƒ” mypy-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒšแƒ‘แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. Mypy แƒแƒ แƒ˜แƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ”แƒœ Dropbox-แƒจแƒ˜.

Dropbox แƒ˜แƒงแƒ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ›แƒแƒช แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒแƒ› แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ—. Mypy แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒแƒ› แƒ“แƒฆแƒ”แƒ”แƒ‘แƒจแƒ˜. แƒ”แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒ‘แƒแƒ‘แƒ”แƒœ, แƒแƒ แƒแƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ˜แƒฅแƒœแƒ "แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒšแƒแƒจแƒ˜". แƒ“แƒ˜แƒ“แƒ˜ แƒ’แƒ–แƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒฌแƒ˜แƒ, แƒ แƒแƒ› แƒ›แƒ˜แƒ•แƒกแƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒแƒฎแƒšแƒ แƒ•แƒแƒ แƒ—. แƒแƒ› แƒ’แƒ–แƒแƒ–แƒ” แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ แƒ“แƒ แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜ แƒ˜แƒงแƒ. แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒกแƒแƒฎแƒแƒ•แƒก แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒแƒก, แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒšแƒ“แƒแƒ•แƒแƒœแƒ˜ แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒ”แƒ›แƒ˜ แƒแƒ™แƒแƒ“แƒ”แƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ“แƒฆแƒ”แƒ›แƒ“แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ“แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒฎแƒ“แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒฃแƒ—แƒ•แƒแƒšแƒแƒ• แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜. แƒ”แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ”แƒ‘แƒ˜ แƒแƒฎแƒšแƒ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ IDE แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜.

โ†’ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒ›แƒ”แƒแƒ แƒ” แƒœแƒแƒฌแƒ˜แƒšแƒ˜

แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ?

แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ“แƒ”แƒกแƒ›แƒ” แƒ’แƒแƒ›แƒแƒ’แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒแƒ— แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒšแƒ˜ Python, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒชแƒแƒขแƒแƒ—แƒ˜ แƒ“แƒแƒ‘แƒœแƒ”แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒ—, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒแƒฃแƒ แƒ–แƒแƒฃแƒ แƒ˜ แƒแƒ› แƒ‘แƒแƒšแƒ แƒ“แƒ แƒแƒก แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒกแƒ แƒ“แƒ mypy-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒแƒ’แƒฌแƒแƒœแƒ“แƒ”แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜ แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ“แƒ แƒ แƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒฆแƒ˜แƒ–แƒ˜แƒแƒœแƒ”แƒ‘แƒก. แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜: แƒ แƒแƒช แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ›แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒ˜แƒฎแƒ แƒ”แƒ‘แƒ˜แƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒกแƒ™แƒ”แƒœ แƒ“แƒ, แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒฏแƒแƒ›แƒจแƒ˜, แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ”แƒก.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒžแƒ แƒแƒ”แƒฅแƒขแƒ›แƒ แƒแƒ—แƒ˜แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒฎแƒแƒ–แƒก แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒแƒกแƒ–แƒ” แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒœแƒฎแƒ˜แƒšแƒ•แƒ˜แƒกแƒแƒก, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ’แƒแƒ›แƒแƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒšแƒแƒ“. แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒ•แƒ, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ แƒ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก, แƒแƒœ แƒ แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒแƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒซแƒœแƒ”แƒšแƒ˜แƒ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒ’แƒแƒชแƒ”แƒ›แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”:

  • แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ None?
  • แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ”แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜? items?
  • แƒ แƒ แƒแƒ แƒ˜แƒก แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜แƒก แƒขแƒ˜แƒžแƒ˜ id: int แƒ”แƒก แƒแƒ แƒ˜แƒก, str, แƒแƒœ แƒ˜แƒฅแƒœแƒ”แƒ‘ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก?
  • แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ”แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒกแƒ˜แƒ? แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฃ แƒแƒ แƒ แƒ›แƒแƒกแƒจแƒ˜ แƒขแƒฃแƒžแƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ?

แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ™แƒแƒ“แƒ˜แƒก แƒœแƒแƒฌแƒงแƒ•แƒ”แƒขแƒก แƒ“แƒ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒฃแƒžแƒแƒกแƒฃแƒฎแƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก, แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒแƒ:

class Resource:
    id: bytes
    ...
    def read_metadata(self, 
                      items: Sequence[str]) -> Dict[str, MetadataItem]:
        ...

  • read_metadata แƒแƒ  แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ Noneแƒ แƒแƒ“แƒ’แƒแƒœ แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก Optional[โ€ฆ].
  • แƒ™แƒแƒ›แƒแƒ—แƒ˜ items แƒแƒ แƒ˜แƒก แƒฎแƒแƒ–แƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ. แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒ—.
  • แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ˜ id แƒแƒ แƒ˜แƒก แƒ‘แƒแƒ˜แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜.

แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ  แƒกแƒแƒ›แƒงแƒแƒ แƒแƒจแƒ˜ แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ“แƒแƒฎแƒ•แƒ”แƒฌแƒ˜แƒšแƒแƒ‘แƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ (แƒ“แƒแƒ™แƒกแƒขแƒ แƒ˜แƒœแƒ’แƒจแƒ˜). แƒ›แƒแƒ’แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒฃแƒแƒ›แƒ แƒแƒ• แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก, แƒ แƒแƒ› แƒแƒกแƒ”แƒ—แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒแƒ  แƒจแƒ”แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ แƒ˜แƒ› แƒ™แƒแƒ“แƒ”แƒฅแƒกแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒฃแƒœแƒ“แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ—. แƒ›แƒแƒจแƒ˜แƒœแƒแƒช แƒ™แƒ˜, แƒ—แƒฃ แƒแƒกแƒ”แƒ—แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ”แƒœแƒ“แƒแƒ— แƒ›แƒ˜แƒก แƒแƒ‘แƒกแƒแƒšแƒฃแƒขแƒฃแƒ  แƒกแƒ˜แƒกแƒฌแƒแƒ แƒ”แƒก. แƒ”แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒ”แƒšแƒ˜, แƒแƒ แƒแƒ–แƒฃแƒกแƒขแƒ˜ แƒ“แƒ แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒ แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฆแƒ˜แƒ. แƒ“แƒ˜แƒ“ แƒ’แƒฃแƒœแƒ“แƒ”แƒ‘แƒจแƒ˜ แƒแƒœ แƒ“แƒ˜แƒ“ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ›แƒฌแƒ•แƒแƒ•แƒ” แƒ’แƒแƒฎแƒ“แƒ”แƒก.

แƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒžแƒ˜แƒ—แƒแƒœแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒ แƒฉแƒ”แƒ•แƒ แƒแƒ“แƒ แƒ”แƒฃแƒš แƒแƒœ แƒจแƒฃแƒ แƒกแƒขแƒแƒ“แƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒจแƒ˜, แƒ แƒแƒฆแƒแƒช แƒ›แƒแƒ›แƒ”แƒœแƒขแƒจแƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ Python-แƒก, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ“แƒ’แƒ”แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: โ€žแƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒš แƒ”แƒœแƒแƒ–แƒ”?

แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ mypy, แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒแƒฌแƒ•แƒ“แƒ˜แƒก แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒ”แƒœแƒแƒก แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ˜แƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ› แƒขแƒ˜แƒžแƒ˜แƒก แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒแƒก (แƒ“แƒ, แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ , แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก). แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ แƒแƒ› แƒ”แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒ•แƒแƒฌแƒ•แƒ“แƒ˜แƒแƒœ แƒ แƒแƒฆแƒแƒช แƒกแƒแƒ’แƒฃแƒšแƒ“แƒแƒ’แƒฃแƒšแƒแƒ“ แƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒš แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒก.

แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก แƒกแƒฎแƒ•แƒ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒแƒฅแƒ•แƒก แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒ แƒฃแƒšแƒ˜แƒแƒ“ แƒแƒ แƒแƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜แƒ:

  • แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒแƒก แƒ›แƒชแƒ˜แƒ แƒ” (แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒช แƒ˜แƒกแƒ” แƒฃแƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒ) แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜. แƒขแƒ˜แƒžแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒแƒ— แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ‘แƒแƒ— แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ None แƒแƒœ แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒฎแƒ•แƒ แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ.
  • แƒ™แƒแƒ“แƒ˜แƒก แƒ แƒ”แƒคแƒแƒฅแƒขแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒ”แƒฃแƒ‘แƒœแƒ”แƒ‘แƒแƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ™แƒแƒ“แƒ˜ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒแƒ•แƒ”แƒงแƒ แƒ“แƒœแƒแƒ— แƒ™แƒแƒ“แƒ˜แƒก 100%-แƒ˜แƒแƒœ แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ“แƒแƒคแƒแƒ แƒ•แƒแƒก, แƒ แƒแƒช, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒฆแƒ แƒ›แƒแƒ“ แƒฉแƒแƒ•แƒฃแƒฆแƒ แƒ›แƒแƒ•แƒ“แƒ”แƒ— แƒกแƒขแƒ”แƒ™แƒ˜แƒก แƒ™แƒ•แƒแƒšแƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒก, แƒ แƒแƒ—แƒ แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ—, แƒ แƒ แƒแƒ แƒ˜แƒก แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜.
  • แƒ›แƒกแƒฎแƒ•แƒ˜แƒš แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ–แƒ”แƒช แƒ™แƒ˜, mypy-แƒก แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒแƒกแƒ แƒฃแƒšแƒแƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒฌแƒแƒ›แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜. แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒฌแƒแƒ›แƒ˜ แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒฌแƒฃแƒ—แƒ˜ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒก แƒ›แƒงแƒ˜แƒกแƒ˜แƒ”แƒ  แƒฃแƒ™แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒ›แƒแƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒก แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒกแƒแƒฅแƒ›แƒ”. แƒ›แƒแƒก แƒแƒฆแƒแƒ  แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒงแƒ˜แƒคแƒ” แƒ“แƒ แƒซแƒœแƒ”แƒšแƒแƒ“ แƒจแƒ”แƒกแƒแƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒ”แƒ‘แƒก แƒชแƒ•แƒšแƒ˜แƒก แƒ“แƒแƒชแƒ˜แƒœแƒ•แƒ˜แƒ—แƒ แƒ“แƒ แƒžแƒแƒฉแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒแƒ“แƒ˜แƒก แƒฃแƒคแƒ แƒ แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“.

IDE-แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ แƒ”แƒ“แƒแƒฅแƒขแƒแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ PyCharm แƒแƒœ Visual Studio Code, แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒซแƒแƒšแƒแƒก, แƒ แƒแƒ—แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒœ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ, แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ’แƒแƒกแƒ›แƒ แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒœแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ. แƒ“แƒ แƒ”แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒแƒ, แƒ แƒแƒกแƒแƒช แƒขแƒ˜แƒžแƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒ˜แƒซแƒšแƒ”แƒ•แƒ. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ“. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒช แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒก แƒ›แƒแƒแƒฅแƒ•แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒแƒœแƒแƒ•แƒ”. แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ แƒแƒ  แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ mypy, แƒ—แƒฃแƒ›แƒชแƒ แƒฃแƒœแƒ“แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› mypy แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒœแƒแƒ แƒฉแƒฃแƒœแƒแƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒฃแƒšแƒแƒ‘แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ™แƒแƒ“แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก.

Mypy แƒคแƒแƒœแƒ˜

Mypy แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ“แƒ˜แƒ“ แƒ‘แƒ แƒ˜แƒขแƒแƒœแƒ”แƒ—แƒจแƒ˜, แƒ™แƒ”แƒ›แƒ‘แƒ แƒ˜แƒฏแƒจแƒ˜, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒšแƒ˜แƒ— แƒแƒ“แƒ แƒ”, แƒกแƒแƒœแƒแƒ› Dropbox-แƒก แƒจแƒ”แƒ•แƒฃแƒ”แƒ แƒ—แƒ“แƒ”แƒ‘แƒแƒ“แƒ˜. แƒกแƒแƒ“แƒแƒฅแƒขแƒแƒ แƒ แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒšแƒ˜ แƒ“แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ–แƒ”. แƒ›แƒ” แƒจแƒ—แƒแƒ’แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒงแƒแƒ•แƒ˜ แƒฏแƒ”แƒ แƒ”แƒ›แƒ˜ แƒกแƒ˜แƒ”แƒ™แƒ˜แƒก แƒ“แƒ แƒ•แƒแƒšแƒ˜แƒ“ แƒขแƒแƒฐแƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒ— แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒกแƒ”แƒ•แƒ” Typed Racket แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒ—. แƒ›แƒ” แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜ แƒ›แƒ”แƒžแƒแƒ•แƒ แƒ’แƒ–แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ›แƒ”แƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒœแƒ แƒ”แƒ แƒ—แƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒžแƒแƒขแƒแƒ แƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜แƒกแƒ’แƒแƒœ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ แƒ˜ แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜แƒ—. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ“แƒแƒ•แƒ แƒฌแƒ›แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒงแƒแƒ•แƒ˜, แƒ แƒแƒ› แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒแƒ  แƒ›แƒแƒ›แƒ˜แƒฌแƒ”แƒ•แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ˜แƒก แƒฌแƒแƒกแƒ•แƒšแƒ. แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ˜แƒ“แƒ”แƒ แƒ”แƒขแƒแƒžแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“ แƒ’แƒแƒ“แƒแƒกแƒฃแƒšแƒ˜แƒงแƒ แƒแƒ แƒแƒขแƒ˜แƒžแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜แƒ“แƒแƒœ แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒฃแƒš, แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒš แƒ›แƒ–แƒ แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ–แƒ”. แƒ”แƒก แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒ˜ แƒ“แƒฆแƒ”แƒกแƒ“แƒฆแƒ”แƒแƒ‘แƒ˜แƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ›แƒ˜แƒฉแƒœแƒ”แƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› 2010 แƒฌแƒ”แƒšแƒก แƒ”แƒก แƒ˜แƒงแƒ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒ˜แƒ™แƒ•แƒšแƒ”แƒ•แƒ“แƒ.

แƒฉแƒ”แƒ›แƒ˜ แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ  แƒ˜แƒงแƒ แƒ’แƒแƒ›แƒ˜แƒ–แƒœแƒฃแƒšแƒ˜ แƒžแƒ˜แƒ—แƒแƒœแƒ–แƒ”. แƒแƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒ›แƒ” แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” แƒžแƒแƒขแƒแƒ แƒ "แƒฎแƒ”แƒšแƒœแƒแƒ™แƒ”แƒ—แƒ˜" แƒ”แƒœแƒ แƒแƒšแƒแƒ แƒ”. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ—แƒ แƒ›แƒแƒ’แƒแƒฌแƒแƒ“แƒแƒ— แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ–แƒ” แƒ•แƒกแƒแƒฃแƒ‘แƒ แƒแƒ‘แƒ— (แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒ—แƒ˜แƒ):

def Fib(n as Int) as Int
  if n <= 1
    return n
  else
    return Fib(n - 1) + Fib(n - 2)
  end
end

แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒœแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒแƒ›แƒ”แƒชแƒœแƒ˜แƒ”แƒ แƒ แƒ™แƒ•แƒšแƒ”แƒ•แƒ”แƒ‘แƒจแƒ˜. แƒ”แƒก แƒแƒกแƒ”แƒ, แƒแƒ แƒแƒœแƒแƒ™แƒšแƒ”แƒ‘ แƒ˜แƒ›แƒ˜แƒขแƒแƒ›, แƒ แƒแƒ› แƒ”แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒก แƒฎแƒ“แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒฉแƒแƒขแƒแƒ แƒ”แƒ‘แƒแƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒ˜แƒก, แƒ แƒแƒช แƒ™แƒ•แƒšแƒ”แƒ•แƒแƒก แƒแƒ  แƒ”แƒฎแƒ”แƒ‘แƒ, แƒแƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒ’แƒœแƒแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒแƒก. แƒ แƒ”แƒแƒšแƒฃแƒ  แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒแƒ แƒ˜แƒก แƒคแƒแƒ แƒ—แƒแƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒแƒœแƒ˜ แƒคแƒ”แƒœแƒแƒ›แƒ”แƒœแƒ˜ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒช แƒแƒœแƒ”แƒšแƒ”แƒ‘แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก. แƒ—แƒฃแƒ›แƒชแƒ, แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒฃแƒš แƒ”แƒœแƒแƒ–แƒ” แƒ“แƒแƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒชแƒแƒขแƒ แƒกแƒแƒ”แƒญแƒ•แƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒแƒ› แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒกแƒแƒก แƒ›แƒ™แƒ•แƒšแƒ”แƒ•แƒแƒ แƒ›แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒจแƒ”แƒกแƒฌแƒ˜แƒ แƒแƒก แƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒกแƒแƒ–แƒ แƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒฉแƒ”แƒ›แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ Alore-แƒกแƒ—แƒ•แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒžแƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒฉแƒแƒœแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒ˜แƒœแƒ“แƒแƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒ˜แƒงแƒ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ Alore-แƒจแƒ˜. แƒฉแƒ”แƒ›แƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, Alore แƒ”แƒœแƒ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ”แƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒ›แƒแƒ•แƒ” แƒ˜แƒ“แƒ”แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ˜แƒ—แƒแƒœแƒ˜. แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒงแƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒแƒšแƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒ”แƒซแƒšแƒ แƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ—แƒแƒœ แƒ“แƒ แƒกแƒ”แƒ›แƒแƒœแƒขแƒ˜แƒ™แƒแƒกแƒ—แƒแƒœ. แƒแƒ›แƒแƒœ แƒ›แƒแƒ’แƒ•แƒชแƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ แƒ’แƒ•แƒ”แƒชแƒแƒ“แƒ แƒจแƒ”แƒ’แƒ•แƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒœแƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜. แƒ›แƒ” แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒ” แƒขแƒ แƒแƒœแƒกแƒžแƒ˜แƒšแƒ”แƒ แƒ˜ แƒแƒšแƒแƒ แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒกแƒแƒงแƒ•แƒแƒœแƒแƒ“ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ’แƒแƒ›แƒจแƒ•แƒ”แƒ‘แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒ—แƒแƒ แƒ’แƒ›แƒœแƒแƒ“. แƒแƒฎแƒšแƒ แƒ›แƒ” แƒ›แƒฅแƒแƒœแƒ“แƒ แƒžแƒ˜แƒ—แƒแƒœแƒจแƒ˜ แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒ“แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒฅแƒ•แƒ”แƒฏแƒ’แƒฃแƒคแƒก, แƒแƒ› แƒ”แƒœแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ•แƒแƒ แƒ˜แƒแƒชแƒ˜แƒแƒก! (แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒšแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ˜แƒงแƒ แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜, แƒชแƒฃแƒ“แƒแƒ“ แƒจแƒ”แƒ”แƒคแƒ”แƒ แƒ”แƒ‘แƒแƒ“แƒ แƒžแƒ˜แƒ—แƒแƒœแƒก; แƒ”แƒก แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒแƒจแƒ™แƒแƒ แƒแƒ mypy แƒ™แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒแƒ–แƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒœแƒแƒฌแƒ˜แƒšแƒจแƒ˜.)

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒ”แƒœแƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒฉแƒ”แƒ›แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ, แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒฌแƒแƒ“แƒแƒก Python: แƒ”แƒก แƒ˜แƒงแƒ Python-แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, Python 3-แƒ˜แƒก แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ.

แƒฏแƒแƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒœแƒแƒ แƒ”แƒ•แƒก แƒฐแƒ’แƒแƒ•แƒ“แƒ:

int fib(int n):
    if n <= 1:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒฉแƒ”แƒ›แƒ˜ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒ“แƒ”แƒ แƒ˜แƒงแƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒšแƒแƒ“ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒแƒ› แƒแƒ แƒแƒ›แƒแƒขแƒ˜แƒก C-แƒจแƒ˜, แƒแƒœ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ JVM แƒ‘แƒแƒ˜แƒขแƒ˜แƒ™แƒแƒ“แƒจแƒ˜ แƒจแƒ”แƒ“แƒ’แƒ”แƒœแƒ˜แƒ—. แƒžแƒ แƒแƒขแƒแƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒ”แƒœแƒ”แƒšแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ”แƒขแƒแƒžแƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒ•แƒ”แƒ“แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒ˜แƒ“แƒ”แƒ แƒ›แƒ˜แƒ•แƒแƒขแƒแƒ•แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ—แƒแƒ•แƒแƒ“ แƒขแƒ˜แƒžแƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒฉแƒแƒœแƒ“แƒ.

แƒ›แƒ” แƒ“แƒแƒ•แƒแƒกแƒ แƒฃแƒšแƒ” แƒฉแƒ”แƒ›แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒฌแƒแƒ แƒ“แƒ’แƒ”แƒœแƒ PyCon 2013-แƒ–แƒ” แƒกแƒแƒœแƒขแƒ แƒ™แƒšแƒแƒ แƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ˜แƒšแƒแƒžแƒแƒ แƒแƒ™แƒ” แƒ’แƒ•แƒ˜แƒ“แƒ แƒ•แƒแƒœ แƒ แƒแƒกแƒฃแƒ›แƒก, แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒ”แƒ—แƒ˜แƒšแƒ’แƒแƒœแƒฌแƒงแƒแƒ‘แƒ˜แƒš แƒ“แƒ˜แƒฅแƒขแƒแƒขแƒแƒ แƒก. แƒ›แƒแƒœ แƒ“แƒแƒ›แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ, แƒ’แƒแƒ›แƒแƒ›แƒ”แƒขแƒแƒ•แƒ”แƒ‘แƒ˜แƒœแƒ แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒ“แƒ แƒ“แƒแƒ•แƒ˜แƒชแƒ•แƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ Python 3 แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜. Python 3 แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฅแƒ•แƒ”แƒ›แƒแƒ—, แƒ แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“แƒแƒช แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒ˜ Python แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ:

def fib(n: int) -> int:
    if n <= 1:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒฌแƒแƒกแƒ•แƒšแƒ แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ (แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ›แƒ˜แƒœแƒ“แƒ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ, แƒ แƒแƒ› แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒแƒ•แƒ˜แƒ’แƒแƒœแƒ” แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜). แƒ™แƒ”แƒ แƒซแƒแƒ“, Python 3.3, แƒ˜แƒ›แƒ“แƒ แƒแƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ”แƒœแƒ˜แƒก แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ, แƒแƒ  แƒฃแƒญแƒ”แƒ แƒ“แƒ แƒ›แƒฎแƒแƒ แƒก แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒก. แƒ›แƒ” แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒฃแƒ แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒฃแƒ˜แƒ“แƒแƒกแƒ—แƒแƒœ แƒ”แƒšแƒ”แƒฅแƒขแƒ แƒแƒœแƒฃแƒšแƒ˜ แƒคแƒแƒกแƒขแƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒขแƒ˜แƒžแƒ˜แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒแƒœ แƒ›แƒ˜แƒแƒฆแƒฌแƒ˜แƒ แƒ›แƒ˜แƒ–แƒแƒœแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒชแƒแƒขแƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒฉแƒแƒœแƒ“แƒ (Python 3.6 แƒ›แƒแƒ’แƒ•แƒชแƒ แƒฃแƒคแƒ แƒ แƒšแƒแƒ›แƒแƒ–แƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜):

products = []  # type: List[str]  # Eww

แƒแƒ™แƒ แƒ˜แƒคแƒ”แƒ— แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ Python 2-แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒกแƒแƒญแƒ”แƒ แƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒ  แƒแƒฅแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

f fib(n):
    # type: (int) -> int
    if n <= 1:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒแƒ› (แƒ“แƒ แƒกแƒฎแƒ•แƒ) แƒ™แƒแƒ›แƒžแƒ แƒแƒ›แƒ˜แƒกแƒ”แƒ‘แƒก แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ - แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก แƒ˜แƒ›แƒแƒก, แƒ แƒแƒ› แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒšแƒ”แƒ•แƒ” แƒ“แƒแƒ˜แƒ•แƒ˜แƒฌแƒงแƒ”แƒก แƒœแƒแƒ™แƒšแƒ”แƒ‘แƒแƒ“ แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒ“แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒก, แƒแƒฆแƒแƒ  แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒก, แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒแƒ’แƒ แƒซแƒแƒ‘แƒ“แƒ แƒœแƒแƒ แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก, แƒ แƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒ’แƒแƒฃแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒแƒฎแƒแƒšแƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก แƒกแƒฌแƒแƒ•แƒšแƒแƒก.

แƒ’แƒ•แƒ˜แƒ“แƒแƒ› แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ›แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ, แƒ แƒแƒ› แƒจแƒ”แƒ•แƒฃแƒ”แƒ แƒ—แƒ“แƒ” Dropbox-แƒก แƒ›แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ แƒแƒช แƒ“แƒแƒ•แƒแƒ›แƒ—แƒแƒ•แƒ แƒ” แƒฉแƒ”แƒ›แƒ˜ แƒฃแƒคแƒ แƒแƒกแƒ˜ แƒ“แƒ˜แƒกแƒ”แƒ แƒขแƒแƒชแƒ˜แƒ. แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒฅแƒ”แƒ“แƒแƒœ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ mypy-แƒ˜แƒก แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ.

แƒ’แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ ...

แƒซแƒ•แƒ˜แƒ แƒคแƒแƒกแƒ แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก! แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒžแƒ˜แƒ—แƒแƒœแƒก, แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ’แƒ•แƒ˜แƒ—แƒฎแƒ แƒแƒ— แƒแƒ› แƒ”แƒœแƒแƒ–แƒ” แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก 4 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ’แƒ–แƒ. แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 1
แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก 4 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒฎแƒแƒ–แƒ˜แƒก แƒแƒ™แƒ แƒ”แƒคแƒ˜แƒก แƒ’แƒ–แƒ. แฒœแƒแƒฌแƒ˜แƒšแƒ˜ 1

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ