ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ moc ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅
ΠΠΏΠ΅Π½ΡΠΎΡΡ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ LEGO
ΠΠΎΡ Π΄Π΅ΡΡΡΠ²ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 20% ΡΠΎΡΡΠΎΡΠ»ΠΎ ΠΈΠ· Dungeons & Dragons (D&D) ΠΈ Π½Π° 80% β ΠΈΠ· LEGO. ΠΡΠΈ Π΄Π²Π° Π·Π°Π½ΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°Π»ΠΈΡΡ. ΠΠ½Π΅, ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π½Π΅ ΡΠ°Π·ΡΠ΅ΡΠ°Π»ΠΈ Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΠ°ΡΡ Π² D&D. ΠΠΎ Ρ, ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°Ρ Π½Π° ΠΏΠΎΠΌΠΎΡΡ Π²ΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈ Π΄ΠΎΡΡΠΈΠ³Π½ΡΠ² Π² ΡΡΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΏΠ΅Ρ ΠΎΠ², Π΄ΠΎΡΡΠΎΠΉΠ½ΡΡ ΠΏΠ»ΡΡΠ° 15 ΡΡΠΎΠ²Π½Ρ, ΠΏΠΎΠ½ΡΠ», ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°ΠΆΠ΅ΠΉ AD&D ΠΈΠ³ΡΠΎΠΉ Π½Π΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ. ΠΠΎΡΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π»Π΅Π½Π½ΠΎΠΉ DragonLance ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ LEGO ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π»ΠΎ ΠΌΠ½Π΅ Π±ΡΡΡ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΈΠ³ΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ½Π΅ ΠΎΡΠ΅Π½Ρ Π½ΡΠ°Π²ΠΈΠ»Π°ΡΡ.
ΠΠΎΡΡΠΎΠΌΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΌΠΎΠΈΡ Π»ΡΠ±ΠΈΠΌΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ Π² LEGO Π±ΡΠ»ΠΈ Π·Π°ΠΌΠΊΠΈ. Π― ΡΡΠ°ΡΠΈΠ» ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°ΡΡ, Π²ΡΠ΄ΡΠΌΡΠ²Π°Ρ ΠΏΠΎΠ΄Π·Π΅ΠΌΠ΅Π»ΡΡ Π΄Π»Ρ ΠΌΠΎΠΈΡ Π³Π΅ΡΠΎΠ΅Π². ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ΅ΡΡΡΡ ΡΠ²ΠΎΠΈ Π½Π°Ρ ΠΎΠ΄ΠΊΠΈ, ΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ ΠΌΠΎΠΈ Π΄ΡΡΠ·ΡΡ Π² ΡΠΊΠΎΠ»Π΅ ΡΠ΅ΡΡΡΡ ΠΊΠ°ΡΡΡ ΠΏΠΎΠ΄Π·Π΅ΠΌΠ΅Π»ΠΈΠΉ, Ρ ΡΠΎΡΡΠ°Π²Π»ΡΠ» ΠΏΠ»Π°Π½Ρ ΡΠ²ΠΎΠΈΡ LEGO-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅ΡΡΠΎΠ²ΠΊΠ΅. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ ΠΏΡΡΠ°Π»ΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ»ΠΈ ΡΡΡΡΠΎΠ΅Π½Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅ΡΡΠΎΠ²ΠΊΠΈ ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ Π΄Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ, Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ, ΡΠΎΡΡΠΎΡΠ»ΠΎ ΠΈΠ· ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ². ΠΠΎ ΠΌΠ΅Π½Ρ, Π² ΠΈΡΠΎΠ³Π΅, ΡΠ³ΡΠ±ΠΈΠ»ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΠΈΠ·ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠΈΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ, Ρ ΠΎΡΡ Ρ ΠΈ ΡΡΠ°Π» ΡΡΠ°ΡΡΠ΅, ΠΌΠΎΡ Π»ΡΠ±ΠΎΠ²Ρ ΠΊ LEGO Π½Π΅ ΡΠ³Π°ΡΠ»Π°. Π Ρ ΠΎΡΡ Ρ ΠΈ Π½Π΅ ΠΌΠΎΠ³Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠΆ Π³ΠΎΡΠΆΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ (ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ MOC-ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ), Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°Π», ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠ½Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Ρ. Π― Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠΌΠ΅Π» ΠΎΡΠ΅Π½Ρ ΡΠΆ Ρ ΠΎΡΠΎΡΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΡΠ΅ΡΠΈΠ» ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ.
CAD Π΄Π»Ρ LEGO
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Ρ ΡΠ°Π±ΠΎΡΠ°Π» Π² ΡΡΠ΅ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ 3D-ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Π° Π² ΡΡΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ 3D β ΠΈ ΡΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅). Π― Ρ ΠΎΡΠΎΡΠΎ Π²Π»Π°Π΄Π΅Ρ 3D-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π½ΠΎ Π²ΡΡ, ΡΠ΅ΠΌ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ, Π·Π°ΡΠΎΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ ΠΈ ΠΏΠΎΠ΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ ΡΠΈΠ»ΡΠΌΠΎΠ². ΠΡΠ΅ ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠ°ΠΊ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ ΡΠΈΠ»ΡΠΌΡ, ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° ΡΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΠ°ΡΠΈΠ²ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ. ΠΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ-ΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ, Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ, Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ Π²Π°ΠΆΠ½ΠΎ. ΠΡΠ»ΠΈ, ΡΠ°Π΄ΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΡΠΎ-ΡΠΎ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π±Ρ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠΎ, Π½ΡΠΆΠ½ΠΎ Β«ΠΎΠ±ΠΌΠ°Π½ΡΡΡΒ» Π·Π°ΠΊΠΎΠ½Ρ ΡΠΈΠ·ΠΈΠΊΠΈ, ΡΠΎ ΡΡΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅.
Π Π²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (Computer-Aided Design, CAD), ΡΡΠΎ ΡΠΆΠ΅ Π½Π΅ΡΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅. CAD-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΡΠ»ΠΈ Π½Π° ΡΠΌΠ΅Π½Ρ ΠΎΠ±ΡΡΠ½ΡΠΌ ΡΠ΅ΡΡΠ΅ΠΆΠ°ΠΌ. Π Π½ΠΈΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΠ΅ ΡΠΎ, ΠΊΠ°ΠΊ Π½Π΅ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΌΠΈΡΠ΅. ΠΡ ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΆΠ΄ΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΌΠ°.
Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡΠ΄Π΅ΠΉ ΡΠ²Π»Π΅ΡΠ΅Π½ΠΎ LEGO, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Ρ , ΠΊΡΠΎ ΡΠΎΠ·Π΄Π°ΡΡ LEGO-ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ CAD-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΎΡΠ΅Π²ΠΈΠ΄Π½Ρ: ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ Π½ΡΠΆΠ½Ρ Π΄Π»Ρ Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΠΈ ΡΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΡ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ Π·Π°ΠΌΠ΅Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ LEGO (Π½Ρ, ΡΠ°Π·Π²Π΅ ΡΡΠΎ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π»ΡΠ±ΠΈΡ CAD Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ LEGO), Π½ΠΎ ΡΡΠΎ β ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Ρ ΠΎΠ±Π±ΠΈ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ LEGO, Π½ΡΠΆΠ½Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ:
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ LEGO
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ°Π·Π΄ΠΎΠ±ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² Π΄Π»Ρ LEGO-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΠΌ ΡΠ΅ΡΡΡΡΠΎΠΌ LDraw. LDraw β ΡΡΠΎ ΠΎΡΠΊΡΡΡΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ LEGO, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠ°ΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ LDraw, ΡΠΈΠ»Π°ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ 3D-ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΆΠ΅Π»Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΡΡΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΠΈΡΡΡΠ°ΡΠΈΠ² Π½Π° ΡΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π°Π±ΠΎΡΠ° Π΄Π΅ΡΠ°Π»Π΅ΠΉ
LDraw Π΄Π°ΡΡ Π² Π½Π°ΡΠ΅ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ. ΠΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠΎΠ΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΡΠ±ΠΈΠΊΠ° 1×1:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΠΎΠΌ ΠΎΠ±Π»ΠΈΠΊΠ΅, ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΈΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ LDView Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π΅ΡΠ°Π»Π΅ΠΉ
ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π½Π° Linux, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ Π½Π°ΠΉΠ΄ΡΡΠ΅ LDView Π² ΡΠ²ΠΎΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΠ. ΠΡΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ β Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Ρ ΡΠ°ΠΉΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ΡΡ macOS ΠΈΠ»ΠΈ Windows, ΡΠΎ Π²Π°ΠΌ, ΠΎΠΏΡΡΡ ΠΆΠ΅, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΉΡΠΎΠΌ LDView.
ΠΡΠΎΡΠΌΠΎΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ
ΠΠ΅Π³ΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠΈΡΡΠΎΠ²ΠΎΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ LEGO, ΠΏΠΎΠΏΡΡΠ°Π²ΡΠΈΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΄Π΅ΡΠ°Π»Ρ.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ 1brick.ldr ΠΈ Π²Π²Π΅Π΄ΡΠΌ Π² Π½Π΅Π³ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ:
Π ΡΠ΅ΠΏΠ΅ΡΡ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π½Π°ΡΠ΅ ΡΠΊΡΠΎΠΌΠ½ΠΎΠ΅ ΡΠ²ΠΎΡΠ΅Π½ΠΈΠ΅:
Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΎΡΡΠΎΠΉ CAD-ΡΠ°ΠΉΠ», ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΎΠ΄ΠΈΠ½ ΠΊΡΠ±ΠΈΠΊ (Π° ΠΈΠΌΠ΅Π½Π½ΠΎ β ΠΌΠΎΠ΄Π΅Π»Ρ Π½ΠΎΠΌΠ΅Ρ 3001), ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ 1 (ΡΡΠΎ ΡΠΈΠ½ΠΈΠΉ ΡΠ²Π΅Ρ), ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ (0, 0, 0) ΠΏΠΎ ΠΎΡΡΠΌ X, Y ΠΈ Z. ΠΠΎΠ²ΠΎΡΠΎΡ ΠΊΡΠ±ΠΈΠΊΠ° ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠ°ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½Π°Π΄ΠΎ ΠΏΡΠΈΠ·Π½Π°ΡΡ, Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΡΠΎΡΡΡΠΌ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌ. ΠΡΠ°Π²Π΄Π°, ΠΏΡΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ LEGO-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΡΡΡΠΊΡΡΡΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠΎΠ².
ΠΡΠ±Π°Ρ ΡΡΡΠΎΠΊΠ° Π² ΡΠ°ΠΉΠ»Π΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ Ρ 0, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅. Π‘ΡΡΠΎΠΊΠ°, Π½Π°ΡΠΈΠ½Π°ΡΡΠ°ΡΡΡ Ρ 1, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΈ Π²ΡΠ°ΡΠ΅Π½ΠΈΠΈ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, Π²Π½ΠΎΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ²ΠΎΠΉ CAD-ΡΠ°ΠΉΠ». ΠΠ±ΡΡΠ½ΡΠΉ ΠΊΡΠ±ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ Π² Π²ΡΡΠΎΡΡ 24 LDU (LDraw Units). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΡΠ°Π²ΠΈΡΡ Π΄Π΅ΡΠ°Π»ΠΈ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ΅Π½ΡΡ ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Y Ρ ΡΠ°Π³ΠΎΠΌ Π² 24 Π΅Π΄ΠΈΠ½ΠΈΡΡ. ΠΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΊΠΎΠ΄:
ΠΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π΄Π΅ΡΠ°Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΄ΠΎΠ»Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΡΡ ΠΎΡΠ΅ΠΉ. Π ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ LDraw ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΊΡΠ±ΠΈΠΊ 1×1 ΠΈΠΌΠ΅Π΅Ρ 20 LDU Π² ΡΠΈΡΠΈΠ½Ρ ΠΈ 20 LDU Π² Π΄Π»ΠΈΠ½Ρ. Π ΡΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΡΠ±ΠΈΠΊΠΈ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ X ΠΌΠΎΠΆΠ½ΠΎ, ΠΌΠ΅Π½ΡΡ ΠΈΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Ρ ΡΠ°Π³ΠΎΠΌ Π² 20 LDU.
ΠΠΎΡΡΠ΄ΠΎΠΊ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΡΠΏΡΡΠ°ΡΡ ΡΡΡ ΠΌΠ΅ΡΠ°ΠΊΠΎΠΌΠ°Π½Π΄Ρ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠ²ΠΎΠΉ ΡΠ°ΠΉΠ», ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌΠΈ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
ΠΠΎΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
ΠΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠΉ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
ΠΠ° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°Π³Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΊΡΠ±ΠΈΠΊ. ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΊ Π½Π°Π±ΠΎΡΠ°ΠΌ LEGO, ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΡΠ°Π³. ΠΠ»Π°Π²Π½ΠΎΠ΅, ΡΡΠΎΠ±Ρ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
Π LDraw Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ β ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΡΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π²Π΅ΡΠΈ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄ΠΎΠ² Π΄Π΅ΡΠ°Π»Π΅ΠΉ
Π― Ρ ΡΠ°Π½ΠΈΠ» ΡΠ²ΠΎΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ LEGO Π² ΡΡΠΈΠΊΠ°Ρ Π΄Π»Ρ ΡΡΠ±ΠΎΠ»ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΎΡΡΠΎΠΌΡ Ρ ΠΌΠΎΠ³ Π±ΡΡΡΡΠΎ Π½Π°ΠΉΡΠΈ Π»ΡΠ±ΡΡ Π΄Π΅ΡΠ°Π»Ρ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°. ΠΡΠ°Π²Π΄Π°, ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΡΠ»Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΠΌΠ½Π΅ Π±ΡΠ»ΠΎ Π½ΡΠΆΠ½ΠΎ Π²ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠΈΠΊΠΎΠ². Π Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Ρ ΠΌΠ΅Π½Ρ ΡΡΠ°Π»ΠΎ ΡΡ ΠΎΠ΄ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠΎΠΈΡΠΊ Π½ΡΠΆΠ½ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ.
ΠΡΠ»ΠΈ ΡΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π² LEGO ΠΈΠΌΠ΅Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ 11000 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΠΈΡΠΊΠ°ΡΡ ΡΠΈΡΡΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠ΅. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄Π΅ΡΠ°Π»ΠΈ LEGO Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΡ ΠΊΡΠ±ΠΈΠΊ 2×4, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΈΠΌΠ΅Π΅Ρ ΠΊΠΎΠ΄ 3001. ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠΎΠ΄ Π΄Π΅ΡΠ°Π»ΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ Π² CAD-ΡΠ°ΠΉΠ»Π΅, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ Π΄Π΅ΡΠ°Π»Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ Π² Π²Π°ΡΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΡΡΠ³ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠ²ΠΎΠΉ ΡΠ΅Π΄Π΅Π²Ρ, LDView ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΎΡΡΠ΅Π½Π΄Π΅ΡΠΈΡΡ Π΅Ρ Π² Π²ΡΡΠΎΠΊΠΎΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ POV-Ray β ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΄Π»Ρ ΡΠΎΡΠΎΡΠ΅Π°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΡΡΡΡ ΠΌΠ΅ΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΠ»ΠΎΠ΄Ρ Π²Π°ΡΠΈΡ ΡΡΡΠ΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²Π΅ΡΡΠΌΠ° ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΠ°ΠΉΡΠΈ POV-Ray ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Linux, ΠΈΠ»ΠΈ Π½Π° ΡΠ°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π°:
ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ ΠΏΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ β ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΡΡ LPub3D. ΠΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠΏΠΈΡΠΎΠΊ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅.
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΈΡΠ° LEGO
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ· Π΄Π΅ΡΠ°Π»Π΅ΠΉ LEGO β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ β ΡΡΠΎ Π²ΠΎΠΏΠ»ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΉ ΡΠ²ΠΎΡΡΠ΅ΡΠΊΠΎΠΉ ΡΠ½Π΅ΡΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π½Π°ΡΡ LEGO Π·Π°ΡΡΠΆΠ°ΡΡΡΡ, Π·Π°Π½ΠΈΠΌΠ°ΡΡΡ Π»ΡΠ±ΠΈΠΌΡΠΌ Π΄Π΅Π»ΠΎΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Π²Π°ΡΠΈ LEGO-ΠΈΠ΄Π΅ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ Π»ΠΈΡΡ Π² ΡΠΎΡΠΌΠ΅ Π±Π΅ΡΠΏΠ»ΠΎΡΠ½ΡΡ ΠΈΠ΄Π΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ Ρ ΡΠΈΡΡΠΎΠ²ΡΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ LEGO ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ, ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π»ΡΠ±ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Ρ Ρ ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ. Π¦ΠΈΡΡΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ LEGO ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ, Π΄Π»Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΉ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π΄Π΅ΡΠ°Π»Π΅ΠΉ. Π Π‘Π΅ΡΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ² Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ LEGO, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ , Π²ΡΠΎΠ΄Π΅ BrickHub.org, ΠΏΡΠ±Π»ΠΈΠΊΡΡ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΡΠ΅ ΡΠ΅Π½Π΄Π΅ΡΡ, Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡΠΎΡΡΡ Π»Π΅ΠΆΠ°Ρ LDraw-ΡΠ°ΠΉΠ»Ρ.
ΠΠΈΡ Π»ΡΠ±ΠΈΡΠ΅Π»Π΅ΠΉ LEGO β ΡΡΠΎ ΠΏΡΠΈΡΡΠ½ΠΎΠ΅ ΠΈ ΠΊΡΠ΅Π°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠΎΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ΠΌ ΡΠ΅ΠΌ, ΠΊΠΎΠΌΡ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ, ΠΈΠ»ΠΈ Π΄Π΅Π»Π°ΡΡ Ρ ΠΊΡΠ±ΠΈΠΊΠ°ΠΌΠΈ LEGO ΡΡΠΎ-ΡΠΎ ΡΠ°ΠΊΠΎΠ΅, ΡΠ΅Π³ΠΎ Π½ΠΈΠΊΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ Ρ Π½ΠΈΠΌΠΈ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ LEGO, ΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ β ΡΠ°ΠΌΡΠΉ Π»ΡΡΡΠΈΠΉ Π΄Π΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ ΡΠ°ΡΡΡΡ LEGO-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°!
ΠΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ mocks Π² ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΡΠ° ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° Β«When to MockΒ».
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π² ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠΎΡΠ½ΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ. ΠΠ²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ°ΡΡΠ΅ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ½ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠ΅ΡΠ΅ΡΠ΅Π» ΠΎΡ ΠΌΠΎΠΊΠΎΠ² ΠΏΠΎΡΡΠΈ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΊ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ΅ Β«Π±Π΅Π· ΠΌΠΎΠΊΠΎΠ²Β», Π° Π·Π°ΡΠ΅ΠΌ ΠΊ Β«ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΊΠΈ Π΄Π»Ρ Π²Π½Π΅ΡΠ½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉΒ».
ΠΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Ρ ΠΎΡΠΎΡΠ΅ΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ Π₯ΠΎΡΠΈΠΊΠΎΠ² ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠΎΠΊΠ°ΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ Π² ΡΠ΅ΡΡΠ°Ρ .
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ mock (ΠΌΠΎΠΊ, ΠΎΡ Π°Π½Π³Π». Β«ΠΏΠ°ΡΠΎΠ΄ΠΈΡΒ», Β«ΠΈΠΌΠΈΡΠ°ΡΠΈΡΒ»)?
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΠ΅ΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΊΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠΊ. ΠΡΠ΄ΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠ΅ΡΠΌΠΈΠ½Ρ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ (test double) ΠΈ ΠΌΠΎΠΊ (mock) ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ, Π½ΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ:
ΠΠΎΠΊ β ΡΡΠΎ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² ΡΠ°ΠΊΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
Π‘ΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΠ΅ΡΠ°ΡΡ ΠΠ΅ΡΠ°ΡΠΎΡΡ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ 5 Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ²:
Π’Π°ΠΊΠΎΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΡΠ³Π°ΡΡΠΈΠΌ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°Π½Ρ Π²ΡΠ΅Π³ΠΎ Π² Π΄Π²Π° ΡΠΈΠΏΠ°: ΠΌΠΎΠΊΠΈ ΠΈ ΡΡΠ°Π±Ρ.
Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ:
ΠΠΎΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ (outcoming) Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌΡΠ΅ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ (SUT) ΠΊ Π΅Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ.
Π‘ΡΠ°Π±Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ (incoming) Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Π²ΡΠ·ΠΎΠ²Ρ, ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΠΌΡΠ΅ SUT ΠΊ Π΅Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΠΠ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΌ (incoming) Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ β ΠΎΠ½ΠΎ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΠ±ΠΎΡΠ½ΠΎΠΌΡ ΡΡΡΠ΅ΠΊΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π±ΠΎΠΌ.
ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΡΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
Spies (ΡΠΏΠΈΠΎΠ½Ρ) Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡ ΠΆΠ΅ ΡΠΎΠ»Ρ, ΡΡΠΎ ΠΈ ΠΌΠΎΠΊΠΈ. ΠΡΠ»ΠΈΡΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ spies ΠΏΠΈΡΡΡΡΡ Π²ΡΡΡΠ½ΡΡ, Π° ΠΌΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π³ΠΎΡΠΎΠ²ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². ΠΠ½ΠΎΠ³Π΄Π° spies Π½Π°Π·ΡΠ²Π°ΡΡ ΡΡΠΊΠΎΠΏΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠΊΠ°ΠΌΠΈ.
Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°Π±Π°ΠΌΠΈ, dummy (ΠΏΡΡΡΡΡΠΊΠ°ΠΌΠΈ) ΠΈ ΡΠ΅ΠΉΠΊΠ°ΠΌΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ΠΈ ΡΠΌΠ½Ρ:
Π‘ΡΠ°Π± ΠΏΠΎΡΠ»ΠΎΠΆΠ½Π΅Π΅. ΠΡΠΎ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΠ΅ Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ°Π±Π°ΠΌΠΈ (ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΡ ΠΈ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ). ΠΠΎΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ SUT ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΠ°Π±Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ. ΠΡΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅.
ΠΠΎΠΊ-ΠΊΠ°ΠΊ-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ vs. ΠΌΠΎΠΊ-ΠΊΠ°ΠΊ-ΡΠ΅ΡΡΠΎΠ²ΡΠΉ-Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ
ΠΠΎ Ρ ΡΠ΅ΡΠΌΠΈΠ½Π° ΠΌΠΎΠΊ Π΅ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° ΠΊΠ»Π°ΡΡΡ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ (Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ²) ΠΊΠ°ΠΊ Π½Π° ΠΌΠΎΠΊΠΈ. ΠΡΠΈ ΠΊΠ»Π°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½Π°ΡΡΠΎΡΡΠΈΠ΅ ΠΌΠΎΠΊΠΈ, Π½ΠΎ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ²ΡΠΌΠΈ:
ΠΠ°ΠΆΠ½ΠΎ Π½Π΅ ΡΠΌΠ΅ΡΠΈΠ²Π°ΡΡ ΠΌΠΎΠΊ-ΠΊΠ°ΠΊ-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Ρ ΠΌΠΎΠΊ-ΠΊΠ°ΠΊ-ΡΠ΅ΡΡΠΎΠ²ΡΠΉ-Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΊ-ΠΊΠ°ΠΊ-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΠΎΠΈΡ ΡΠΈΠΏΠΎΠ² ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ²: ΠΌΠΎΠΊΠΎΠ² ΠΈ ΡΡΠ°Π±ΠΎΠ².
ΠΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΠ°Π±Π°ΠΌΠΈ
ΠΠ°ΠΊ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» Π²ΡΡΠ΅, ΠΌΠΎΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ SUT ΠΈ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΠ°Π±Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π° Π½Π΅ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡ .
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠ·ΠΎΠ² GetNumberOfUsers() Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ. ΠΡΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ Π΄Π΅ΡΠ°Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΡΠ°ΡΡΠ°ΡΡΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ SUT ΡΠΎΠ±ΠΈΡΠ°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΡΠ΅ΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΠ΅ΡΡΠ°. ΠΠ΅Π²Π°ΠΆΠ½ΠΎ, ΠΊΠ°ΠΊ SUT Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ.
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ Ρ ΡΡΠΏΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΡΠ°:
Π’Π°ΠΊΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ.
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² ΠΈ ΡΡΠ°Π±ΠΎΠ²
ΠΠ½ΠΎΠ³Π΄Π° Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΡΠ²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠΊΠ°, ΡΠ°ΠΊ ΠΈ ΡΡΠ°Π±Π°:
ΠΡΠΎΡ ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ storeMock Π΄Π»Ρ Π΄Π²ΡΡ ΡΠ΅Π»Π΅ΠΉ: ΠΎΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π°, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠΉ SUT.
ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°: ΡΠ΅ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΎΡΠ²Π΅Ρ ΠΎΡ HasEnoughInventory(), Π½ΠΎ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² RemoveInventory(). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π·Π΄Π΅ΡΡ Π½Π΅ Π½Π°ΡΡΡΠ°Π΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΠ°Π±Π°ΠΌΠΈ.
Mocks vs. stubs ΠΈ commands vs. queries
ΠΠΎΠ½ΡΡΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² ΠΈ ΡΡΠ°Π±ΠΎΠ² ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠΌ command-query separation (CQS). ΠΡΠΈΠ½ΡΠΈΠΏ CQS Π³Π»Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π»ΠΈΠ±ΠΎ Π·Π°ΠΏΡΠΎΡΠΎΠΌ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΠΎΠΈΠΌΠΈ:
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π·Π°Π΄Π°Π²Π°Ρ Π²ΠΎΠΏΡΠΎΡ, Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΌΠ΅Π½ΡΡΡ ΠΎΡΠ²Π΅Ρ. ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅, ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π»Π΅Π³ΡΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. Π’Π΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ, Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΌΠΎΠΊΠ°ΠΌΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ, Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π±Π°ΠΌΠΈ:
ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΅ΡΠ΅ ΡΠ°Π· Π½Π° Π΄Π²Π° ΡΠ΅ΡΡΠ° ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΠΎΠ³Π΄Π° ΠΌΠΎΠΊΠ°ΡΡ?
Π Π°Π·ΠΎΠ±ΡΠ°Π²ΡΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠΌΠΈ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠΊΠΈ.
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΌΠΎΠΊΠ°ΡΡ ΡΠ°ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (SUT), ΠΏΠΎΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡ Β«ΠΠΎΠ³Π΄Π° ΠΌΠΎΠΊΠ°ΡΡ?Β» ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ: Β«ΠΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΌΠΎΠΊΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΡΠ°Ρ ?Β»
ΠΠΎΡ Π²ΡΠ΅ ΡΠΈΠΏΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π°Π²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΠ» Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅:
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (mutable out-of-process dependency) Π² ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π², ΠΏΠΎΡΡΠΎΠΌΡ Π°Π²ΡΠΎΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π΄Π΅ΡΡ ΡΡΠΈ Π΄Π²Π° ΠΏΠΎΠ½ΡΡΠΈΡ ΠΊΠ°ΠΊ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΡ. (ΠΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΏΠΎΡΡΠΎΠΌ ΠΠ»Π°Π΄ΠΈΠΌΠΈΡΠ° Π₯ΠΎΡΠΈΠΊΠΎΠ²Π°, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅: Unit Testing Dependencies: The Complete Guide.)
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ Π΄Π²Π΅ ΡΠΊΠΎΠ»Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π²Π·Π³Π»ΡΠ΄Π°ΠΌΠΈ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΡΠΈΠΏΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΡΡΡ Π½Π° ΠΌΠΎΠΊΠΈ:
ΠΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΡΠΊΠΎΠ»Π° mockist) Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π·Π° Π·Π°ΠΌΠ΅Π½Ρ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π½Π° ΠΌΠΎΠΊΠΈ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½Π°Ρ ΠΊΠ°ΠΊ ΡΠΊΠΎΠ»Π° ΠΠ΅ΡΡΠΎΠΉΡΠ°) Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π·Π° Π·Π°ΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠΈΡ (ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ) Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
ΠΠ±Π΅ ΡΠΊΠΎΠ»Ρ ΠΎΡΠΈΠ±Π°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΌΠΎΠΊΠ°ΠΌ, Ρ ΠΎΡΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Π»ΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠ°Ρ.
ΠΠΎΠΊΠΈ ΠΈ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
Π ΠΊΠ°ΠΊ Π½Π°ΡΡΠ΅Ρ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΡ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ (immutable out-of-process) Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ? Π Π°Π·Π²Π΅ ΠΈΡ Π½Π΅ ΡΡΠΎΠΈΡ ΠΌΠΎΠΊΠ°ΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΏΠΎ ΠΌΠ½Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΊΠΎΠ»? ΠΠ΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»ΡΠΆΠ±Π° API ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ) ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΌ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠΌ, Π½ΠΎ ΡΡΠΎΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΡΡΠ°Π±ΠΎΠΌ, Π° Π½Π΅ ΠΌΠΎΠΊΠΎΠΌ.
ΠΡΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΈΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ°Π±Π°ΠΌΠΈ:
ΠΠ·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΈΠΌΠΌΡΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌΠΈ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Π² ΡΠ΅ΡΡΠ°Ρ , Π° ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΌΠΈ ΠΎΡΠ²Π΅ΡΠ°ΠΌΠΈ (ΠΎΠ±Π΅ ΡΠΊΠΎΠ»Ρ Ρ ΡΡΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠ½Ρ).
ΠΠ΅ ΠΌΠΎΠΊΠ°ΠΉΡΠ΅ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ΅ ΡΡΠΎΠΈΡ ΠΌΠΎΠΊΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ Π² ΡΠΈΠΏΠΈΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ: Π²Π½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ ΠΈ ΠΌΠ΅ΠΆΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ.
ΠΠ½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ Π²Π°ΡΠΈ Π΄ΠΎΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΈΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. ΠΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅Π»ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ²ΡΠ·Ρ Ρ ΡΠ°ΠΊΠΈΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Ρ ΡΡΠΏΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ.
ΠΡΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ ΠΏΡΠΎΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°ΠΊΠΎΠΉ ΡΠ²ΠΎΠ»ΡΡΠΈΠΈ β ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ Π²Π½ΡΡΡΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΠ°ΡΡΠ΅ΡΠ½ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΅Π³Π΄Π° ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΈΠ½Π΅, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΡ ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ. ΠΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠΎ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. Π Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Ρ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π΄Π΅Π»Π°Ρ ΠΈΡ Ρ ΡΡΠΏΠΊΠΈΠΌΠΈ. ΠΠ½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ²ΡΠ·ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΌ Π²Π½ΡΡΡΠΈΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ:
ΠΡΠ°ΠΊ, Π»ΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° ΠΎΡΠΈΠ±Π°Π΅ΡΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° ΠΏΠΎΠΎΡΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΈ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π½ΡΡΡΠΈΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ (Π²Π½ΡΡΡΠΈΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌΠΈ) ΠΈ ΠΌΠ΅ΠΆΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ (Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌΠΈ) ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΡΠΎ Π½Π΅ΠΈΠ·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠΎΠΉ ΡΠΊΠΎΠ»Π΅ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Ρ ΡΡΠΏΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ β ΡΠ΅ΡΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΅ ΠΌΠΎΠΊΠ°ΠΉΡΠ΅ Π²ΡΠ΅ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° Π»ΡΡΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ ΡΡΠΈΠΌ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π·Π° Π·Π°ΠΌΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ»ΡΠΆΠ±Π° SMTP, ΡΠΈΠ½Π° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈ Ρ. Π΄. ΠΠΎ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡΠ½Π° ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ ΠΌΠ΅ΠΆΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡΠΌ. ΠΡΠ° ΡΠΊΠΎΠ»Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΎΡΡΡΠ΅Ρ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ², Ρ ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ°ΠΊ ΡΠΈΠ»ΡΠ½ΠΎ, ΠΊΠ°ΠΊ Π»ΠΎΠ½Π΄ΠΎΠ½ΡΠΊΠ°Ρ ΡΠΊΠΎΠ»Π°.
ΠΠ΅ Π²ΡΠ΅ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠΎΠΊΠ°ΡΡ. ΠΡΠ»ΠΈ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ ΡΠ²ΡΠ·Ρ Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΈΠ·Π²Π½Π΅, ΠΏΠΎ ΡΡΡΠΈ, Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π‘Π²ΡΠ·ΠΈ Ρ ΡΠ°ΠΊΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠΊΠΎΠ².
ΠΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΡ Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΎΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΠΈ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ; ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠΈΠΊΠ»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ .
ΠΠΎ ΠΊΠΎΠ³Π΄Π° Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΉ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ ΠΈΡΡΠ΅Π·Π°Π΅Ρ. Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΡΡΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². Π‘Ρ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π΄Π΅ΡΠ°Π»ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ: ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΈ ΠΎΠ΄Π½Π° Π²Π½Π΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠΎΠΉ ΠΠ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡ Π΅ΠΌΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΠ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π»ΡΠ±ΡΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π²Π°ΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π»ΠΎΠΌΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΠΠ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΡΡΡΠ° ΠΎΡ Π³Π»Π°Π· ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π²Ρ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, ΠΈ Π½ΠΈΠΊΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π΄Π»Ρ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΠ΅, ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Ρ ΡΡΠΏΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ. ΠΡ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡ ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΠ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΠ΅ ΡΠΈΠΏ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² Ρ ΡΠ°Π½ΠΈΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ΅. ΠΠ ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°.
ΠΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π½Π° Π΄Π²Π΅ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ:
Π£ΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ (managed) Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ β Π²Π½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ. ΠΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅; Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌΠΈ Π½Π΅ Π²ΠΈΠ΄Π½Ρ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΠΌΠΈΡΡ. Π’ΠΈΠΏΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΠ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΠ; ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π· API, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π’ΠΎΠ»ΡΠΊΠΎ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ ΠΌΠΎΠΊΠ°ΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠ΅ΡΡΠ°Ρ .
Π Π΅Π·ΡΠΌΠ΅
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ²ΡΡ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΎΠ² β dummy (ΠΌΠ°Π½Π΅ΠΊΠ΅Π½), ΡΡΠ°Π±, spy (ΡΠΏΠΈΠΎΠ½), ΠΌΠΎΠΊ ΠΈ ΡΠ΅ΠΉΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³ΡΡΠΏΠΏΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅Π³ΠΎ Π² Π΄Π²Π° ΡΠΈΠΏΠ°: ΠΌΠΎΠΊΠΈ ΠΈ ΡΡΠ°Π±Ρ.
Spies ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠΊΠΈ; dummy ΠΈ ΡΠ΅ΠΉΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡ ΠΆΠ΅ ΡΠΎΠ»Ρ, ΡΡΠΎ ΠΈ ΡΡΠ°Π±Ρ.
Π Π°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ°Π±Π°ΠΌΠΈ:
ΠΠΎΠΊΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈΡΡ ΠΎΠ΄ΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ: Π²ΡΠ·ΠΎΠ²Ρ ΠΎΡ SUT ΠΊ Π΅Π³ΠΎ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ.
Π‘ΡΠ°Π±Ρ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ: Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ SUT ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ ΡΠ²ΠΎΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌ.
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΠ°Π±Π°ΠΌΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Ρ ΡΡΠΏΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ.
Π’Π΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ, Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ CQS, ΡΠ²Π»ΡΡΡΡΡ ΠΌΠΎΠΊΠ°ΠΌΠΈ. Π’Π΅ΡΡΠΎΠ²ΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΈΠΊΠΈ, Π·Π°ΠΌΠ΅Π½ΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ CQS, ΡΠ²Π»ΡΡΡΡΡ ΡΡΠ°Π±Π°ΠΌΠΈ.
ΠΠ½Π΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° 2 ΠΏΠΎΠ΄ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ: ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΈ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠ°Ρ ; Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π΅ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠΊΠ°ΠΌΠΈ.
ΠΠΎΠΊΠΈ ΠΈ ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ
ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΊΡΠΎ Π½Π°ΡΠΈΠ½Π°Π» ΠΏΠΈΡΠ°ΡΡ ΡΠ½ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ, ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΌΠΎΠΊΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Ρ ΡΡΠΏΠΊΠΈΠΌ ΡΠ΅ΡΡΠ°ΠΌ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ ΡΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π²ΠΎΠ»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΡΠ°ΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ JosΓ© Valim β ΡΠΎΠ·Π΄Π°ΡΠ΅Π»Ρ ΡΠ·ΡΠΊΠ° Elixir β Π²ΡΡΠΊΠ°Π·Π°Π» ΡΠ²ΠΎΡ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ², Ρ ΠΊΠΎΡΠΎΡΡΠΌ Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½.
ΠΠ΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Π½Π°Π·Π°Π΄ Ρ ΠΏΠΎΠ΄Π΅Π»ΠΈΠ»ΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΌΠΎΠΊΠΎΠ² Π² Twitter:
ΠΠΎΠΊ β ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π² ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π·Π°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΈΠΆΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ².
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΌΠΎΠΊ?
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΠΎΠΉ Π²ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ: ΠΌΠΎΠΊ β Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π― ΡΠ΄Π΅Π»Π°Ρ Π°ΠΊΡΠ΅Π½Ρ Π½Π° ΡΡΠΎΠΌ ΠΏΠΎΠ·ΠΆΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΠΌΠΎΠΊ β ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π° Π½Π΅ Π³Π»Π°Π³ΠΎΠ» [Π΄Π»Ρ Π½Π°Π³Π»ΡΠ΄Π½ΠΎΡΡΠΈ, Π³Π»Π°Π³ΠΎΠ» mock Π²Π΅Π·Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡΡΡ ΠΊΠ°ΠΊ «Π·Π°ΠΌΠΎΠΊΠ°ΡΡ» β ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².].
ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ API
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ: Π²Π½Π΅ΡΠ½Π΅Π΅ API.
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Twitter API Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Phoenix ΠΈΠ»ΠΈ Rails. Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π·Π°ΠΏΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π΄Π΅Π»Π°Π΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΊ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ API. ΠΡΠ·ΠΎΠ² Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ API ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ΅:
ΠΠ°Π»Π΅Π΅ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°Π΅ΡΠ΅ΡΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ½ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΡΠ΅ΠΌΡ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅?
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΊ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅, ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠΈ ΡΠ΅ΡΡΡ Π² Elixir ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅
Π Elixir Π²ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΠΈΡ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ Twitter’a Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ:
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ Π»ΡΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Twitter Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ. Sandbox ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Twitter ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ sandbox Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ°ΡΠ° Π·Π°ΠΌΠΎΠΊΠ°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ HTTPClient ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ². Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
ΠΠΎΠ΄ ΠΏΠΎΠ»ΡΡΠΈΠ»ΡΡ ΠΏΡΠΎΡΡΡΠΌ ΠΈ ΡΠΈΡΡΡΠΌ, Π° ΡΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ HTTPClient Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ. MyApp.Twitter.InMemory ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΎΠΊΠΎΠΌ, ΡΠΎ Π΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ, ΠΈ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ!
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ²
ΠΠΎΠΊ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π° Π·Π½Π°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠ²Π½ΠΎ. ΠΠ½Π°ΡΠ΅, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΊ Π½Π°ΡΠ½Π΅Ρ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΡ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΠΌ ΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Twitter API ΠΈ Π»ΡΡΡΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΡΠ²Π½ΡΠΌΠΈ. Π Elixir ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ²Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ behaviour:
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ @behaviour MyApp.Twitter Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, ΠΈ Elixir ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ API.
Π Elixir ΠΌΡ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ behaviours ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ: ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Plug, ΠΊΠΎΠ³Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π² Ecto, ΠΊΠΎΠ³Π΄Π° ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Phoenix channels ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°Π½ΠΈΡ
Π‘Π½Π°ΡΠ°Π»Π°, ΠΊΠΎΠ³Π΄Π° ΡΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΈ, Π³ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΈ ΡΠ°ΠΊ:
ΠΠΎΡΡΠΎΠΌΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ HTTPClient ΠΌΠΎΠ³Π»ΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ². Π‘Π΅ΠΉΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ HTTP:
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠΊΠΈΡ Π³ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. Π‘Π»ΠΈΡΠΊΠΎΠΌ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅ΡΡΠΎΠ² ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΡΡ Ρ ΡΡΠΏΠΊΠΈΠΌΠΈ, Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π±ΡΠ΄ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° production. Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π½ΠΈΠ·ΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π²Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅Ρ, ΠΈ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ².
ΠΠΈΡΠ½ΠΎ Ρ Π±Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π» MyApp.Twitter.HTTP Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Twitter API, Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΡΠΈ ΡΠ΅ΡΡΡ ΠΏΠΎ-Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ΅Π³ΠΎΠ² Π² ExUnit β Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² Elixir β ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:
ΠΡΠΊΠ»ΡΡΠΈΠΌ ΡΠ΅ΡΡΡ Ρ Twitter API:
ΠΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π²ΠΊΠ»ΡΡΠΈΠΌ ΠΈΡ Π² ΠΎΠ±ΡΠΈΠΉ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ³ΠΎΠ½:
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠ° HTTPClient ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ dummy-ΡΠ΅ΡΠ²Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ Twitter API. bypass β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π² ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΡΡ. ΠΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ ΡΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ
Π― Π±Ρ Ρ ΠΎΡΠ΅Π» Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ ΡΡΡ ΡΡΠ°ΡΡΡ ΡΠ°Π·Π±ΠΎΡΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΎΠ±ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΌΠΎΠΊΠΎΠ².
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ «ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π°
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ production-ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ «ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ», Π½ΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Ρ ΠΎΠ΄ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ? ΠΠ°Π»ΠΈΡΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΎΠ²Π΅ΡΡ ΡΠ΄Π°, ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ-ΡΠΎ «ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ», Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° Ρ ΠΎΡΠΎΡΠ΅Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅.
Π― Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ Π½Π΅ ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ «ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ» ΠΊΠΎΠ΄Π°, Π° ΠΎΠ± ΡΠ»ΡΡΡΠ΅Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π° [ΠΎΡ Π°Π½Π³Π». design of your code β ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².].
Π’Π΅ΡΡ β ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ API, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΠΏΠΈΡΠΈΡΠ΅. ΠΠ΄Π½Π° ΠΈΠ· ΠΈΠ΄Π΅ΠΉ TDD Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠ΅ΡΡΡ β ΡΡΠΎ ΠΊΠΎΠ΄ ΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ Π²Ρ Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅: «Π― Π½Π΅ Ρ ΠΎΡΡ Π΄Π΅Π»Π°ΡΡ ΠΌΠΎΠΉ ΠΊΠΎΠ΄ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ», ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ «Π― Π½Π΅ Ρ ΠΎΡΡ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ» ΠΈΠ»ΠΈ «Π― Π½Π΅ Ρ ΠΎΡΡ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ΅ (ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅) ΡΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²».
ΠΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ Π² Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΎ ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ URI [ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π²ΠΈΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»Ρ URI Π΄Π»Ρ Elixir β ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².]. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΡΠ΅ΠΌ-ΡΠΎ ΡΠ°ΠΊΠΎΠΌ ΠΆΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Π½Π΅ΡΠ½Π΅Π΅ API, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°Ρ ΠΊΠΎΠ΄ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΠΈ ΠΏΡΠΎΡΡΡΠΌ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΎΠ²Π΅ΡΡ ΡΠ΄ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Elixir-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ETS, Π° Π·Π½Π°ΡΠΈΡ Π²ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΠΌΠΎ ΠΈΠ· ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠΎΠΊΠΈ
Π₯ΠΎΡΡ ΠΌΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌ API, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΄ΠΎΠ»Π³ΠΈΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ΅ΡΡΠ°Ρ :
ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π² Π΅Ρ ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ:
Π’Π΅ΡΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ»ΠΈ, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΎ ΡΠ°Π½Π΅Π΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ:
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π² Π²ΠΈΠ΄Π΅ data structure ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ protocol.
ΠΠΎΠΊ β ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅
ΠΡΡΡΠ΅ Π΄ΡΠΌΠ°ΡΡ ΠΎ ΠΌΠΎΠΊΠ°Ρ ΠΊΠ°ΠΊ ΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ . ΠΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΊΠ°ΡΡ API (ΠΌΠΎΠΊΠ°ΡΡ β Π³Π»Π°Π³ΠΎΠ»), Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠΊ (ΠΌΠΎΠΊ β ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ API.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ²
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Ρ Π²Π°Ρ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ Π²ΠΎΠΏΡΠΎΡ: «ΠΡΠΆΠ½ΠΎ Π»ΠΈ ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ²?»
ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΡΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ Π²Π°Ρ Π½Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΈΠ»ΠΈ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π»Π°Π³ΠΎΠ»ΠΎΠ²), ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ Π½Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ» ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ², ΡΠΎ Π²Π°ΠΌ Π»ΡΡΡΠ΅ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π½Π΅Ρ.
ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡ Π²Π°Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ Π°Π½ΡΠΈ-ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ². Π’Π°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ «ΠΌΠΎΠΊ-ΠΎΠ±ΡΠ΅ΠΊΡΡ» ΠΈΠ»ΠΈ «ΠΌΠΎΠΊ-ΠΌΠΎΠ΄ΡΠ»ΠΈ», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΡΠΎΠ±ΠΈΡΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠΎΠΊΠ° ΠΈ ΠΎ ΡΠΎΠΌ, Ρ ΠΊΠ°ΠΊΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΎΠ½ Π±ΡΠ» Π²ΡΠ·Π²Π°Π½.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ΄Π½Π° ΠΈΠ· Π·Π°Π΄Π°Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ β Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠΎΠ² ΠΈ Π³ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΊΠΎΠ² ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°Π»ΠΈΡΠΈΡ ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ:
Π―Π²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π΄Π΅Π»Π°ΡΡ Π΅Ρ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ²Π½ΠΎΠΉ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.