ΠΠ΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°. ΠΠΎΡΠ°Π±ΠΎΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΠ΅ΠΌ Ruby on Rails ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° (ΡΠ°Π·ΠΎΠ²Π°Ρ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ°) ΠΠ°Π΄Π°ΡΠ°: ΠΠΎΠΌΠΎΡΡ Π΄ΠΎΠ²Π΅ΡΡΠΈ Π΄ΠΎ ΠΈΠ΄Π΅Π°Π»Π° ΡΠ°ΠΉΡ?ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π½ΠΎΠ²ΠΎΡΡΡΠΎΠ΅ΠΊ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ° Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π½Π°ΡΡΡΠΎΠ΅Π½Π°, ΡΠ°ΠΉΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π½ΠΎ ΠΎΡΡΠ°Π»ΠΈΡΡ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅Π»ΠΎΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΡΡΡΡΠ°Π½ΠΈΡΡ: ΠΠ°ΠΉΡΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
ΡΡΠ°ΡΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π½ΠΎΠ²ΡΠ΅ (Ρ Π΄ΠΎΠΌΠ΅Π½Π° Π½Π° Π΄ΠΎΠΌΠ΅Π½Π°)β Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ
. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΌΠ΅Π½Ρ S3). ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΊΠΈ: ΡΡΠΈΠ»ΠΈ, Π»ΠΎΠ³ΠΎΡΠΈΠΏ (PNG Π²ΠΌΠ΅ΡΡΠΎ SVG), ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΡ. ΠΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° β Π΄ΠΎΠΏΠΈΠ»ΠΈΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ. Π’Π΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: Ruby 2.4.10, Rails 5.1, PostgreSQL, Redis, Elasticsearch, Nginx, Unicorn, S3 (CarrierWave + fog), Docker. Π£ΡΠ»ΠΎΠ²ΠΈΡ: Π£Π΄Π°Π»ΡΠ½Π½Π°Ρ ΡΠ°Π·ΠΎΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° (Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ², Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ° Π΄Π½Π΅ΠΉ Π½Π° ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ). ΠΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ Π±ΡΠ΄ΠΆΠ΅Ρ β ΠΎΠ±ΡΡΠ΄ΠΈΠΌ (Π½Π°Π·ΠΎΠ²ΠΈΡΠ΅ Π²Π°ΡΡ ΡΡΠ°Π²ΠΊΡ Π·Π° ΡΠ°Ρ ΠΈΠ»ΠΈ Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ). ΠΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π½Π°Π½ΠΈΠ΅ Rails-ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΈ ΡΠΌΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΠ, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ CarrierWave ΠΈ S3 ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΠ΅ΡΡΡ.