Script & Lager
ΠΡΠΈΠ²Π΅Ρ, Π‘ΠΊΡΠΈΠΏΡ. Π’ΡΡ ΠΊΠΎΠ²ΡΡΡΠ»ΡΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ°ΠΉΠΌΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π²Π°ΡΠΊΠΈ, ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΠΊΠ°ΠΊ Π±Ρ Π²ΡΠ΅ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΡΠΈΡΡΠΎΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ β ΡΠΈΠΏΠ°, ΡΠΌΠ½ΡΠΉ Π΄Π°ΡΠ±ΠΎΡΠ΄ Π΄Π»Ρ ΡΠ΅ΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΈΡΠΊΠΈ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠ² Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ² ΠΏΠΈΠ²Π°?
ΠΡΠ»ΠΈΡΠ½Π°Ρ ΠΈΠ΄Π΅Ρ β Π΄Π°ΡΠ±ΠΎΡΠ΄Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π°ΡΡ ΡΡΠΎ ΠΎΡΡΡΠ΅Π½ΠΈΠ΅, Π±ΡΠ΄ΡΠΎ βΠ΄ΡΠΎΠΆΠΆΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎβ. ΠΠ»Ρ Π΄Π°Π½Π½ΡΡ
Ρ Π΄Π°ΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ½ΠΈ Ρ Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΠΎΠ³ΠΎ MQTT Π±ΡΠΎΠΊΠ΅ΡΠ°; ΠΎΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Π΄Π°ΡΡΠΈΠΊΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΡΠΎΡΠ΅ΡΠ½ΡΠΉ JSON-ΠΏΠ°ΠΊΠ΅Ρ, Π° ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ Node.js ΠΈΠ»ΠΈ Python ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΊΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ, ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΠΈ Π»ΡΠ±ΡΠ΅ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ»Π°Π³ΠΈ. Π Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π²ΡΠΎΠ΄Π΅ React, Ρ WebSockets, ΡΡΠΎΠ±Ρ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±Π΅Π· ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡ Python, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ asyncio + websockets ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ.
ΠΠ»Ρ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅ΡΠ΅ΠΏΡ ΠΊΠ°ΠΊ JSON-ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Ρ
ΡΠ°Π½ΠΈ Π΅Π³ΠΎ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° Git, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π² Git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ (ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ½Π³ΡΠ΅Π΄ΠΈΠ΅Π½ΡΠΎΠ², ΡΠ°Π³ΠΈ, Π²ΡΠ΅ΠΌΡ) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ. Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠΈΡΡ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΡΠΈΠΈ ΠΈ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²Π΅ΡΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Π΄Π²Π΅ ΠΏΠ°ΡΡΠΈΠΈ ΡΡΠ΄ΠΎΠΌ. ΠΡΡΡΡΡΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ: Π²ΡΠΏΠΎΠ»Π½ΠΈ `git add recipe.json && git commit -m "ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠ°ΡΡΠΈΡ Ρ OG 5%, #2"` ΠΈ ΠΎΡΠΏΡΠ°Π²Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. Π ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΡΡΠ°ΡΠΊΠΈΠ²Π°ΠΉ Ρ
Π΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠ° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΠΉ ΡΠ΅ΡΠ΅ΠΏΡ ΡΠΎ ΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° diff.
ΠΡΠ»ΠΈ Π½ΡΠΆΠ΅Π½ API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΡΡΠΎΠΉ REST-ΡΠ½Π΄ΠΏΠΎΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ΄Π°ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ JSON-ΡΠ΅ΡΠ΅ΠΏΡ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π»ΠΎΠ³ΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ². Π’Π°ΠΊ ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠΈΠ²ΠΎΠ²Π°ΡΠ΅Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ΅ΡΠ΅ΠΏΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°ΡΡΠΈΠΈ. Π£Π΄Π°ΡΠΈ Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΈ ΠΏΡΡΡΡ ΡΠ²ΠΎΠΈ Π½Π°ΠΏΠΈΡΠΊΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠΎΡΠΊΡ!
ΠΠ²ΡΡΠΈΡ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎ β MQTT Π΄Π°Π΅Ρ ΡΠ°ΠΊΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ ΡΠΏΠ»Π΅ΡΠ½ΠΈ, Π° Git β ΡΡΠΎ ΠΊΠ°ΠΊ Π³Π΅Π½Π΅Π°Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π΄ΡΠ΅Π²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΠ΅ΠΏΡΠΎΠ². ΠΠΎΠΏΡΠΎΠ±ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΠΏΠ»Π°ΡΠΎΠΉ Π΄Π°ΡΡΠΈΠΊΠΎΠ², Π½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ±Π°ΠΈΠ²Π°ΡΡΡ, ΠΏΠΎΠΊΠ° Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΈ ΠΌΠ½Π΅ Π½Π΅ Π½Π°ΠΏΠΈΡΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Ρ ΠΏΠ΅ΡΠ²ΡΡ ΠΊΡΡΠΆΠΊΡ Π²ΡΠΏΡΡ. ΠΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΎΠ²Π΅ΡΡ, ΠΊΠ°ΠΊ ΡΠΌΡΠ³ΡΠΈΡΡ ΡΠ΅Π·ΠΊΠΈΠΉ ΡΠΊΠ°ΡΠΎΠΊ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΈΡΠΏΠΎΡΡΠΈΡΡ Π²ΡΡ ΠΏΠ°ΡΡΠΈΡ? Π ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠ°Π½Π΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ Π²ΡΠ³Π»ΡΠ΄Π΅Π»Π° ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΈΡΠ° Excel Π² Π΄Π²Π° ΡΠ°ΡΠ° Π½ΠΎΡΠΈ?