เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบ Python เป„เบ› - เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบ Python เป„เบ› - เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบˆเบฒเบเบ™เบฑเบเปเบ›: เป‚เบญเบ™ เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™, เบšเบปเบ”เบ„เบงเบฒเบกเบ‚เบญเบ‡ Ilad Leev เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™เบˆเบฒเบ Python เป„เบ›. เบšเบปเบ”เบ„เบงเบฒเบกเบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบˆเบปเบง, เปเบ•เปˆเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™ Go.

เบ‚เป‰เบญเบเบกเบฑเบ Python. เบžเบฒเบชเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบทเปˆเบ™เบŠเบญเบšเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบซเป‰เบฒเบ›เบตเบœเปˆเบฒเบ™เบกเบฒ. เบฅเบฒเบงเป€เบ›เบฑเบ™เบกเบดเบ”, เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เปเบฅเบฐเบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰. เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเป€เบเบทเบญเบšเบ—เบธเบเบขเปˆเบฒเบ‡: เบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบ‚เบฝเบ™เบชเบฐเบ„เบดเบšเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบงเบฑเบšเป„เบ›เบชเบนเปˆเบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบซเบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ

"เบเบฒเบ™เป€เบ•เบตเบšเปƒเบซเบเปˆ" เบ„เปˆเบญเบเป†เบ‚เบญเบ‡ Go, เบŠเบธเบกเบŠเบปเบ™เบ—เบตเปˆเบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบšเปเบฅเบดเบชเบฑเบ”เบ™เบฑเบšเบกเบทเป‰เบ™เบฑเบšเบซเบผเบฒเบเบเปเบฒเบฅเบฑเบ‡เปƒเบŠเป‰เบžเบฒเบชเบฒเบ™เบตเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป„เบ”เป‰เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เบ‚เป‰เบญเบเป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบฑเบ™เบ™เบฐเบ„เบฐเบ”เบต. เปเบ•เปˆเป‚เบžเบชเบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบเปˆเบฝเบงเบเบฑเบšเบญเบฑเบ™เปƒเบ”เบ”เบตเบเบงเปˆเบฒ - Python เบซเบผเบท Go: เบกเบตเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบขเบนเปˆเปƒเบ™เบญเบดเบ™เป€เบ•เบตเป€เบ™เบฑเบ”. เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ. เบ‚เป‰เบญเบเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบฅเบทเบญเบ Go, เปƒเบซเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเบชเบปเบ™เปƒเบˆเปƒเบ™เบซเบปเบงเบ‚เปเป‰.

Skillbox เปเบ™เบฐเบ™เปเบฒ: เบซเบผเบฑเบเบชเบนเบ”เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ” เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Python เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เบžเบงเบเป€เบฎเบปเบฒเป€เบ•เบทเบญเบ™: เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡ "Habr" - เบชเปˆเบงเบ™เบซเบผเบธเบ” 10 rubles เป€เบกเบทเปˆเบญเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบ™เบซเบผเบฑเบเบชเบนเบ” Skillbox เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบปเปˆเบ‡เป€เบชเบตเบก "Habr".

เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบ Python เป„เบ› - เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบเบฒเบ™เบชเบฑเบ‡เป€เบเบ”เบเบฒเบ™

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ‚เป‰เบญเบเป„เบ”เป‰เป€เบฎเบฑเบ”เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเปเบกเปˆเบ™เบเบฒเบ™เบชเบถเบเบชเบฒเบเบฒเบ™เบชเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ” "Tour Of Go" เบกเบฑเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเปˆเบฝเบงเบเบฑเบš syntax เบ‚เบญเบ‡เบžเบฒเบชเบฒ.

เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบฎเบนเป‰เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบ‚เป‰เบญเบเบเบฑเบ‡เป„เบ”เป‰เบญเปˆเบฒเบ™เบ›เบทเป‰เบก "เป„เบ›เบชเปเบฒเบฅเบฑเบš Python Programmersโ€, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ› - เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เบ‚เป‰เบญเบเป€เบญเบปเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆเบ„เบธเป‰เบ™เป€เบ„เบตเบเบ—เบตเปˆเบ‚เป‰เบญเบเปƒเบŠเป‰เปƒเบ™ Python (JSON serialization เบซเบผเบทเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป‚เบ— HTTP) เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ‚เบฝเบ™เบžเบงเบเบกเบฑเบ™เปƒเบ™ Go. เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบฒเบชเบฒ.

เบฎเบนเบšเปเบšเบšเป‚เบ„เบ‡เบเบฒเบ™

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, Python เบšเปเปˆเป„เบ”เป‰เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบˆเบฑเบ”เบฅเบฝเบ‡เบฅเบณเบ”เบฑเบšเบชเบฐเป€เบžเบฒเบฐ, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ Go เป€เบฎเบฑเบ”.

Go เปƒเบŠเป‰เบฎเบนเบšเปเบšเบš "เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™", เป€เบŠเบดเปˆเบ‡เบกเบตเบ„เบงเบฒเบกเบŠเบฑเบšเบŠเป‰เบญเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบงเบฝเบเบซเบผเบฒเบ. เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเปƒเบŠเป‰เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เปเบšเบšเป‚เบกเบ”เบนเบ™, เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบเบฑเบ‡เบ„เบปเบ‡เบ–เบทเบเบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบเป‰เบญเบ™เบงเปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบญเบเป„เบ›.

เบเบฒเบ™เบชเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ "เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบฝเบ™ Go Codeโ€ เบญเบฐเบ—เบดเบšเบฒเบเบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเบงเบฝเบเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ.

เบเบฒเบ™เบžเบดเบกเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบ„เบปเบ‡เบ—เบตเปˆ

Go เปเบกเปˆเบ™เบžเบดเบกเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ, เป€เบŠเบดเปˆเบ‡เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบœเบนเป‰เบ—เบตเปˆเปƒเบŠเป‰เบเบฑเบšเบžเบฒเบชเบฒเบ—เบตเปˆเบžเบดเบกเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป€เบŠเบฑเปˆเบ™ Python เปเบฅเบฐ Ruby เบฎเบนเป‰เบชเบถเบเบšเปเปˆเบชเบฐเบšเบฒเบ.

เบšเปเปˆเบ•เป‰เบญเบ‡เบชเบปเบ‡เปƒเบชเบงเปˆเบฒเบžเบฒเบชเบฒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบซเบผเบฒเบเปเบฅเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบ„เบณเบ™เบงเบ™เบœเบปเบ™เบšเบงเบเบ‚เบญเบ‡เบชเบญเบ‡เบˆเบณเบ™เบงเบ™เป€เบ•เบฑเบก. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบชเบปเปˆเบ‡เบชเบฐเบ•เบฃเบดเบ‡เป„เบ›เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™ (เป€เบŠเบดเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบงเปˆเบฒเบซเบฒเบเบฒเบ), เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰ TypeError.

เบ™เบตเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™ Go เป„เบ”เป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบ›เบฐเบเบฒเบ”เบ›เบฐเป€เบžเบ”เบชเปเบฒเบฅเบฑเบšเบ—เบธเบเป†เบ•เบปเบงเปเบ›เปเบฅเบฐเบŸเบฑเบ‡เบŠเบฑเบ™เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ•เบปเบงเปเบ›เบ—เบตเปˆเบŸเบฑเบ‡เบŠเบฑเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบกเบฒ.

เปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบฅเปเบฒเบ„เบฒเบ™ - เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบ‚เบญเบ‡ Go เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เบŠเป‰เบฒเบฅเบปเบ‡ - เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบนเป‰เบงเปˆเบฒเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบŠเปˆเบงเบเบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เบชเบฐเบเบธเบ™เป€เบ”เบตเบก

Go เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ concurrency เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ subroutines เปเบฅเบฐเบ—เปเปˆ, เป€เบŠเบดเปˆเบ‡เบชเบฐเบ”เบงเบ.

เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบชเบฑเบšเบชเบปเบ™เป€เบฅเบฑเบเบ™เป‰เบญเบเปƒเบ™เบ•เบญเบ™เบ—เปเบฒเบญเบดเบ”. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบกเบทเปˆเบญเป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›, เบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™, เปเบฅเบฐเป€เบˆเบปเป‰เบฒเป€เบฅเบตเปˆเบกเบกเบตเบ„เบงเบฒเบกเบชเบธเบเป‚เบญเบเบฒเบ”เปƒเบซเบกเปˆเปเบฅเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เบˆเบดเบ‡เบˆเบฑเบ‡เบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ.

เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฒเบšเบ‚เบญเบ‡เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเป€เบงเบปเป‰เบฒเบกเบฒเบˆเบฒเบ Ivan Danilyuk.

package main
 
func main() {
    // create new channel of type int
    ch := make(chan int)
 
// start new anonymous goroutine
    go func() {
        // send 42 to channel
        ch <- 42
    }()
    // read from channel
    <-ch
}

เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบ Python เป„เบ› - เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบžเบตเปˆเบกเป€เบ•เบตเบก เบ—เบตเปˆเบ™เบตเป‰ ะธ เบ—เบตเปˆเบ™เบตเป‰.

เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš JSON

เบ”เบต, json.loads() เบšเปเปˆเบกเบตเบญเบตเบเปเบฅเป‰เบง. เปƒเบ™ Python เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบ: เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ json.loads, เปเบฅเบฐเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ.

เปเบ•เปˆเปƒเบ™ Go, เบžเบฒเบชเบฒเบ—เบตเปˆเบžเบดเบกเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ™เบตเป‰เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบซเบผเบฒเบ.

เบ—เบตเปˆเบ™เบตเป‰, เป€เบกเบทเปˆเบญเปƒเบŠเป‰ JSON, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒ. เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเปƒเบ”เบ—เบตเปˆเบšเปเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบˆเบฐเบ–เบทเบเบฅเบฐเป€เบงเบฑเป‰เบ™, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบต. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ„เบดเบ”โ€‹เบงเปˆเบฒโ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบชเบฑเบ™โ€‹เบเบฒโ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบ•เบปเบโ€‹เบฅเบปเบ‡โ€‹เบฅเปˆเบงเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบชเบญเบ‡โ€‹เบเปˆเบฒเบโ€‹. เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™ JSON เบ„เบงเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡, เปเบฅเบฐเบŠเปˆเบญเบ‡เบ‚เปเป‰เบกเบนเบ™ JSON เปเบฅเบฐเบ›เบฐเป€เบžเบ”เบ„เบงเบ™เบˆเบฐเบ–เบทเบ "เบ•เบปเบเบฅเบปเบ‡" เป‚เบ”เบเบ—เบฑเบ‡เบชเบญเบ‡เบเปˆเบฒเบ.

{
  โ€œfirstโ€: โ€œEladโ€,
  โ€œlastโ€: โ€œLeevโ€,
  โ€œlocationโ€:โ€ILโ€,
  โ€œidโ€: โ€œ93โ€
}

type AccountData struct {
 First    string `json:"first"`
 Last     string `json:"last"`
 Location string `json:"location"`
 ID       string `json:"id"`
}

เปเบ™เปˆเบ™เบญเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” deserialize JSON เป‚เบ”เบเบšเปเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เปเบ•เปˆเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบฅเบฐเบฅเบฑเบเบชเบฐเบ™เบฐเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เบžเบฒเบชเบฒเบ„เบงเบ™เบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ.

เบเบฒเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ” JSON เปƒเบ™ GO เปเบกเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ” เบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰ เบซเบผเบท เบ—เบตเปˆเบ™เบตเป‰.

เบ‚เบตเป‰เบ„เป‰เบฒเบ™เป€เบเบตเบ™เป„เบ›เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™ JSON เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ Go? เบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ, เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เบ—เบธเบเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™.

เบฅเบฐเบซเบฑเบ”เบชเบฐเบญเบฒเบ”

Go compiler เบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบซเป‰เบชเบฐเบญเบฒเบ”เบชเบฐเป€เปเบต. เบกเบฑเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ•เบปเบงเปเบ›เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก. Go เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบฅเบฐเบšเบปเบšเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, Go เบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เป‚เบ„เบ‡เบเบฒเบ™ gofmt เป€เบกเบทเปˆเบญเบšเบฑเบ™เบ—เบถเบเบซเบผเบทเบฅเบงเบšเบฅเบงเบกเปเบฅเบฐเปเบเป‰เป„เบ‚เบเบฒเบ™เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡.

เป€เบˆเบปเป‰เบฒเบšเปเปˆเบชเบปเบ™เปƒเบˆเบ•เบปเบงเปเบ›เบšเป? เบ•เบปเบโ€‹เบฅเบปเบ‡! เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ _ (underscoreโ€‹) เปเบฅเบฐโ€‹เบเปเบฒโ€‹เบ™เบปเบ”โ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™ id เป€เบ›เบปเปˆเบฒโ€‹.

เบเบฒเบ™เบชเบญเบ™ Mastrid เบชเปเบฒเบฅเบฑเบšเบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบžเบฒเบชเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ "เป„เบ›เบขเปˆเบฒเบ‡เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš".

เบŠเบญเบเบซเบฒเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เปเบฅเบฐเบเบญเบšเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก

เบ‚เป‰เบญเบเป„เบ”เป‰เปƒเบŠเป‰เบเบญเบšเปเบฅเบฐเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เป€เบŠเบฑเปˆเบ™ Flask, Jinja2, Requests, เปเบฅเบฐเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡ Kazoo เบเบฑเบš Python, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบขเป‰เบฒเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบˆเบฐเบšเปเปˆเบžเบปเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบš Go.

เปเบ•เปˆเบŠเบธเบกเบŠเบปเบ™เป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเป‰เบง: เบžเบฒเบชเบฒเบกเบตเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบฅเบทเบกเบซเบกเบปเบ”เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบ„เบตเบเปƒเบŠเป‰เบกเบฒเบเปˆเบญเบ™.

เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฒเบเบเบฒเบ™เบ—เบตเปˆเบกเบฑเบเบ‚เบญเบ‡เบ‚เป‰เบญเบ.

Python Requests => net/http

net/http เบชเบฐเบซเบ™เบญเบ‡เบฅเบนเบเบ„เป‰เบฒ HTTP เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบชเบฐเบ”เบงเบเปเบฅเบฐเบ‡เปˆเบฒเบเบ”เบฒเบ.

Flask + Jinja2 => Gin

gin - เบเบญเบšเป€เบงเบฑเบš HTTP เบ—เบตเปˆเบกเบต API เบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ: เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เป„เบŸเบฅเปŒเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ”เบฒเบงเป‚เบซเบฅเบ”เป„เบ”เป‰, เบเบฒเบ™เบˆเบฑเบ”เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบธเปˆเบก (/api/v1, /api/v2), เบฎเบนเบšเปเบšเบšเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป„เบŸเบฅเปŒเบ„เบปเบ‡เบ—เบตเปˆ, เบเบฒเบ™เบชเบฐเปเบ”เบ‡ HTML เปเบฅเบฐเบ•เบปเบงเบเบฒเบ‡เบ—เบตเปˆเบกเบตเบญเปเบฒเบ™เบฒเบ”เปเบ—เป‰เป†.
เบญเบฑเบ”เบ•เบฒ เบ™เบตเป‰ เบ”เบฑเบ”เบŠเบฐเบ™เบต.

เบเบฒเบ™เบชเป‰เบฒเบ‡ CLI => Cobra

Cobra โ€” เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ CLI เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบฅเบฐเป„เบŸเบฅเปŒ batch.
Cobra เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Go เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบ, เบฅเบงเบกเบ—เบฑเบ‡ Kubernetes, etcd เปเบฅเบฐ OpenShift.

เบ™เบตเป‰เปเบกเปˆเบ™เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบญเบตเบเบˆเบณเบ™เบงเบ™เปœเบถเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเปเบ™เบฐเบ™เบณเบซเบผเบฒเบ: Viper, Gonfig เปเบฅเบฐเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆเบ™เบตเป‰ - Awesome-Go.

เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบทเปˆเบ™เป†

[1] Francesc Campoy โ€Š- เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบ›เบฐโ€‹เป€เบกเบตเบ™โ€‹เบœเบปเบ™โ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹ เบŠเปˆเบญเบ‡เบ—เบฒเบ‡ YouTube ะธ เป‚เบ›เบฃเป„เบŸเบฅเปŒ GitHub.

[2] GopherCon - เบงเบดเบ”เบตเป‚เบญ.

[3] Go Web เบ•เบปเบงเบขเปˆเบฒเบ‡.

[4] Golang เบ›เบฐเบˆเปเบฒเบญเบฒเบ—เบดเบ”, Gopher Academy, เบ‚เปˆเบฒเบง Golang - เบšเบฑเบ™โ€‹เบŠเบต Twitterโ€‹.

Summing up

เป€เบ„เบตเบเป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰ Python เบ›เบปเบเบเบฐเบ•เบดเป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบซเป‰เบฒเบ›เบต, เบ‚เป‰เบญเบเบขเป‰เบฒเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เป„เบ›เปƒเบŠเป‰ Go เบˆเบฐเป€เบˆเบฑเบšเบ›เบงเบ”.

เปเบ•เปˆเบšเปเปˆ: เบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบˆเบฒเบเบŠเบธเบกเบŠเบปเบ™ Go เบ—เบตเปˆเบ‚เบฐเบซเบเบฒเบเปเบฅเบฐเป€เบชเบตเบกเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡เบžเบฒเบชเบฒ, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปˆเบฒเบ‡เป†เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เบซเบฑเบ™เบ›เปˆเบฝเบ™.

Go เปเบกเปˆเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ, เปเบฅเบฐเบ‚เป‰เบญเบเบซเบงเบฑเบ‡เบงเปˆเบฒ Google เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบŸเบฑเบ‡เปเบฅเบฐเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™.

ั€ะธัะพะตะดะธะฝัะนั‚ะตััŒ!

เบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡เบ‚เบญเบ‡เบ‚เป‰เบญเบเบˆเบฒเบ Python เป„เบ› - เปเบšเปˆเบ‡เบ›เบฑเบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™

Skillbox เปเบ™เบฐเบ™เปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster