ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Stripe, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ° ΡΠ΅ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π·Π° ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠ»Π°ΡΠ°Π½ΠΈΡ, ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° , Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Π·Π° Π΅Π·ΠΈΠΊΠ° Ruby. ΠΠΎΠ΄ΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0.
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π² ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π²Π° ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΡΠΈ , ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΠΊΠ°Π·Π²Π°Ρ Π² ΠΊΠΎΠ΄Π° ΡΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Π° sig (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«sig {params(x: Integer).returns(String)}Β») ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΡ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ rbi. ΠΊΠ°ΠΊΡΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π±Π΅Π· Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠ° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ( ΡΡΠ΅Π· Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π² ΠΊΠΎΠ΄Π° Β«require βsorbet-runtime'Β»).
ΠΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Sorbet β Π² ΠΊΠΎΠ΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Ρ ΠΊΠ°ΠΊΡΠΎ ΡΠ½Π°Π±Π΄Π΅Π½ΠΈ Ρ Π°Π½ΠΎΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅, ΡΠ°ΠΊΠ° ΠΈ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ°ΡΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΠ±Ρ Π²Π°Π½Π°ΡΠΈ ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°. ΠΡ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π±Π°Π·ΠΈ, Π²ΠΊΠ»ΡΡΠ²Π°ΡΠΈ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ ΡΠ΅Π΄Π° ΠΊΠΎΠ΄.
Π ΡΡΡΡΠ°Π²Π° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π»ΠΈΠ·Π°Ρ ΡΠ΄ΡΠΎ Π·Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅,
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Sorbet, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° Π΅ΡΠ°ΠΏΠ½ΠΎ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ Π·Π° Π½Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° Π°Π½ΠΎΡΠ°ΡΠΈΠΈ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ ΠΈ Ρ Π³ΠΎΡΠΎΠ²ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ gems ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° Ruby.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Sorbet Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π²ΡΡΡΠ΅ΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Stripe, Π³ΠΎΠ»ΡΠΌΠ° ΡΠ°ΡΡ ΠΎΡ ΠΏΠ»Π°ΡΠ°Π½ΠΈΡΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π² ΠΊΠΎΡΡΠΎ ΡΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° Ruby, ΠΈ Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ Π² ΡΠ°Π·ΡΠ΅Π΄ Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅. ΠΡΠ΅Π΄ΠΈ ΠΎΡΠ²Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ Π±Π΅ΡΠ° ΡΠ΅ΡΡΠ²Π°Π½Π΅, Π² ΠΊΠΎΠ΅ΡΠΎ ΡΠ° ΡΡΠ°ΡΡΠ²Π°Π»ΠΈ Π½Π°Π΄ 30 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Sorbet ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° Ruby, Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
