Artyom / 🧪 Обзор Ash Framework

Created Fri, 04 Jul 2025 00:00:00 +0000 Modified Thu, 25 Sep 2025 19:57:02 +0000

Photo

Вот такой пет-проект на Ash + Phoenix получился — RedDevs

Когда я вливался в мир Elixir, хотелось найти что-то особенное — фреймворк или библиотеку, которая была бы популярна в сообществе, но при этом имела свою нишу. И вот я наткнулся на Ash. Этот фреймворк — настоящая находка, но о нём говорят разное. Кто-то хвалит, что он годами работает в продакшене и всё идеально, кто-то строит на нём стартапы и в восторге, а кто-то, попробовав, остался с испорченным настроением и кучей вопросов. Лично у меня после работы с Ash осталось смешанное впечатление: вроде и круто, но с привкусом “что это было?”. Но для начала давайте разберёмся по порядку 🧑‍💻

🤢 Минусы Ash: документация как лабиринт без карты

Найти Ash — это полдела. Главная проблема — понять, для чего он нужен и как его использовать. Его документация — книга “Сделай сам” без оглавления. Открываешь сайт, а там: ресурсы, домены, экшены, политики, да ещё и 24 библиотеки с приставкой Ash. И ни слова, с чего начать 💧. Хочешь сделать простой CRUD? Сначала разберись, что такое “ресурс”. Хочешь авторизацию? Найди, как настроить AshAuthentication, но кроме основной “тухлой” документации ничего актуального не найдёшь. Ты буквально тонешь в море терминов, и кажется, что проще уйти и никогда не возвращаться 😵

Актуальных материалов в интернете тоже почти нет. Форумы, блоги, редкие посты на dev.to — вот и весь арсенал. Отзывы в сообществе подтверждают: такая “свободная” документация скорее отпугивает, чем вдохновляет

🥂 Плюсы Ash: Всё приходит с опытом

Но вот вроде пережил документационный ад, написал пару ресурсов, и… ого! Экшены реально упрощают работу с данными, а вместо того чтобы, как с Ecto, писать длинные цепочки запросов и changeset‘ов, в Ash достаточно пары строк. Когда моделей становится больше, Ash не усложняет жизнь и добавлять новые экшены или атрибуты — одно удовольствие. Код ресурса читается легко и быстро, что является реальным спасением от бойлерплейта, который так утомляет в других фреймворках

Плюс, библиотеки вроде AshGraphQL и AshAuthenticate очень упрощают жизнь. Они интегрируются через Igniter и неплохо ускоряют разработку. Хочешь готовую аутентификацию? Подключи AshAuthenticate. Нужна работа с GraphQL? AshGraphQL в помощь. Ash с его библиотеками** **— это буквально швейцарский нож для Phoenix-приложений: всё под рукой, и ничего лишнего

⌨️ Пет-проект: Минимальный клон dev.to за неделю

Для изучения Ash я решил сделать простой пет-проект — аналог dev.to. За неделю удалось собрать минимальную версию с авторизацией, постами и статьями. Для новичка в Ash, разработка на нём оказалась неожиданно быстрой. Но на момент разработки, я столкнулся с проблемой в AshAuthentication для входа через Google и GitHub. Ошибки не совсем понятные, а документация никак не помогала с их решением. На удивление, с Ash хорошо смог помочь Grok, он смог подсказать, как настроить исправить некоторые ошибки и фиксы смогли помочь. Кроме Grok ещё мог бы посоветовать — Claude, он тоже помог, но Grok бесплатный, да и проще вытащить информацию из него. Если застрянете с Ash, то ИИ — ваши лучшие друзья 😎

💤 В заключение

Ash можно описать одной русской пословицей, только наоборот: “Начали за упокой, закончили за здравие”. Порог входа высокий: мало материалов, а документация слишком сумбурная. Если вы готовы потратить пару вечеров на изучение, то Ash станет вашим верным спутником в Phoenix-проектах. Он убирает рутину, упрощает работу с данными и даёт кучу возможностей со своими 24-мя связанными библиотеками. Это как раз тот случай, когда “вход дорогой, но результат того стоит”.

Если вы ещё не пробовали Ash, дайте ему шанс. Начните с простого ресурса, создайте проект на AshPhoenix и напишите пару экшенов. А если что-то пойдёт не так, ИИ и Elixir-Форум вас выручат. Ash — это странно, но круто 👍