Pull to refresh

Как мы готовили Crystal к production

Reading time1 min
Views4.8K
К версии 0.23 язык представлял собой весьма наивный концепт быстрого и простого языка.

И это было очень удобно при разработке микросервисов, таких же простых, как на Ruby, но более быстрых, чем на Go (в большинстве применений).

К сожалению, в языке (вернее, в его стандартной библиотеке) нашлось несколько проблем, мешающих использовать его в современном мире. Основная проблема — HashDoS.

Я подошёл к этому с одной стороны, реализовав нормализацию чисел, например, но тут свыше пришел ангел по имени @funny-falcon, и уютный мирок Crystal офигел. Один pull request, учитывающий особенности LLVM, генерации хэшей, сами хэши, JSON и кучу иного — стал предметом обсуждений более чем на 200 комментариев, что для маленького проекта вообще нонсенс.

В итоге pull request закрыт (дикая нагрузка).

Но почти все его идеи уже реализованы и находятся в Crystal master.

Теперь на нем уже можно писать код, который можно отдавать наружу.
Tags:
Hubs:
Total votes 31: ↑22 and ↓9+13
Comments6

Articles