arrow_back Назад в блог
person Дмитрий Болотов

Почему я использую Angular (и вам тоже стоит, если вы устали от хайпа)

#angular #frontend #solo-founder #productivity #web-development
translate
Доступно на:
info Эта статья переведена с помощью ИИ

Я выбрал Angular не потому, что он крутой. Я выбрал его, потому что устал: устал гнаться за хайпом, устал переписывать фронтенд каждые 18 месяцев, устал от 17 разных мнений о том, как сделать одно и то же.

“Лучший фреймворк — тот, о котором вы забываете, что используете.”

Три месяца назад у меня был рабочий бэкенд, видение продукта и пустой шаблон create-react-app. Все говорили мне использовать React, Vue, Svelte, Next.js. Только 1 команда из опрошенных строила то, что мне было нужно.

Я не создавал свой фреймворк. Я использовал Angular. И это было самое скучное, правильное техническое решение, которое я принял в этом проекте.


Критерий принятия решений для соло-основателей

Я не оптимизировал для developer experience, звёзд на GitHub или скорости DOM. Я оптимизировал для четырёх вещей:

  1. Я один человек. Никаких 100 мелких решений каждый день.
  2. Оно должно работать точно так же через 3 года. Никаких переписываний. Никакого коллапса экосистемы.
  3. AI-ассистенты должны писать правильный код с первого раза.
  4. Ровно один очевидный способ делать всё.

💡 Инсайт 1: Большинство сравнений фреймворков измеряют неправильные метрики. Для соло-основателей скорость принятия решений и стабильность важны в 10 раз больше, чем производительность или звёзды на GitHub.


Почему все остальные фреймворки мне не подошли

React: Отлично для команд, ужасно для одного человека

React идеален для команд из 10 фронтенд-инженеров, которым нужна гибкость. Но для одного человека? Каждый раз, когда я открываю React-кодбазу в 2026 году, мне нужно ответить на 12 вопросов, прежде чем написать хоть строку кода: клиентские или серверные компоненты? TanStack Query или SWR? Zod или Yup? Zustand или Jotai? App Router или Pages Router?

У каждого выбора есть 1000 горячих мнений, и каждое из них устареет через 18 месяцев. У меня нет на это времени. Я хочу строить свой продукт.

Vue: Хорошо, пока не становится плохо

Vue хороший. Документация хорошая. Но у него та же проблема: 17 разных способов сделать всё (Options API, Composition API, <script setup>, Pinia, Vuex). Хуже того, экосистема крошечная — большинство библиотек заброшены или еле поддерживаются. И обновления версий всё ещё ломают вещи.

Svelte / SvelteKit: Отлично, пока не упрёшься в стену

Я хотел любить Svelte. Он быстрый, умный, чистый. Но каждый раз, когда я строю что-то нетривиальное, я упираюсь в стену: отсутствующая фича, неисправленный баг, или все говорят “просто жди Svelte 6”. Я не хочу ждать. Я хочу строить сейчас.

💡 Инсайт 2: Циклы хайпа фреймворков созданы для создателей контента, не для строителей. Самые продуктивные инструменты обычно те, о которых никто не твитит.


Почему Angular действительно работает для соло-разработчиков

Все высмеивают Angular. Он для предприятий. Он скучный. Это Google. Именно поэтому я его и выбрал.

“Angular не решает твои самые сложные проблемы. Он не даёт им возникнуть в первую очередь.”

Самая большая победа — это отсутствие решений:

  • Формы: Никаких npm install, никаких сторонних библиотек. Signal Forms встроены, типизированы и полностью реактивны.
    productModel = signal({
      name: '',
      price: 0,
      description: ''
    });
    
    productForm = form(this.productModel, {
      validators: {
        name: [Validators.required],
        price: [Validators.min(0), Validators.max(10000)]
      }
    });
  • HTTP: Никакого Axios, никаких перехватчиков для написания. HttpClient просто работает.
    private http = inject(HttpClient);
    private entityService = inject(EntityService);
    
    entity = signal<BusinessEntity | null>(null);
    
    loadEntity(id: string) {
      this.http.get<BusinessEntity>(`/api/entities/${id}`).subscribe(entity => {
        this.entity.set(entity);
        // Предзаполнение формы напрямую из ответа API
        this.productModel.set(entity);
      });
    }
    
    async onSubmit() {
      if (this.productForm().invalid) return;
      await this.entityService.save(this.productModel());
    }
  • Маршрутизация: Никакой магии, никаких сюрпризов. Ровно один способ определить маршруты.
    const routes: Routes = [
      { path: 'entities', component: EntityListComponent },
      { path: 'entities/:id', component: EntityDetailComponent }
    ];

И главное: Claude, GPT и GLM пишут идеальный Angular-код. Никаких умных абстракций, никаких придуманных паттернов. Я могу написать “сделай мне CRUD-таблицу с сортировкой, фильтрацией и пагинацией” и получить рабочий код за 30 секунд. Никаких правок не требуется.

Хорошие стороны

  • Внедрение зависимостей: Все жалуются, что оно слишком сложное. Это не так. Используйте inject() для сервисов, и оно просто работает — без контекста, без проброса пропсов, типизировано, тестируемо. Я потратил 3 дня в прошлом году на отладку React Context-провайдера, который обновлял только половину компонентов. В Angular у меня такой проблемы никогда не было.

    private entityService = inject(EntityService);
  • Signals: Angular 17+ signals идеальны. Никаких замыканий со stale-данными, никаких странных подводных камней. Они просто обновляются, когда должны. Используйте signal() для локального состояния, computed() для производного состояния и всегда предпочитайте update() или set() вместо mutate().

  • Современный Angular: Все компоненты по умолчанию standalone, не нужно устанавливать standalone: true. Используйте host-bindings в декораторах компонентов вместо @HostBinding/@HostListener. Используйте функции input()/output() вместо декораторов. Используйте ChangeDetectionStrategy.OnPush для всех компонентов.

  • Шаблоны: Используйте нативный контроль потока @if, @for, @switch вместо структурных директив. Используйте class/style bindings вместо ngClass/ngStyle. Signal Forms чисто интегрируются с шаблонами:

    <input type="text" [formField]="productForm.name" />
    <input type="number" [formField]="productForm.price" />
    <textarea [formField]="productForm.description" />
    
    @if (productForm.name().invalid && productForm.name().touched) {
      <p class="error">Name is required</p>
    }
  • Оптимизировано: Используйте NgOptimizedImage для изображений, реализуйте ленивую загрузку для фича-маршрутов.

Плохие стороны

  • Кастомные элементы управления формами: ControlValueAccessor — это безумие. Я потратил 3 дня на date picker, который должен был занять 2 часа. Но написав это один раз, я больше никогда о нём не думал.
  • SSR: Сейчас хороший, но настройка заняла 2 дня борьбы с устаревшей документацией.

💡 Инсайт 3: Стоимость изучения Angular один раз бесконечно ниже, чем стоимость переизучения лучших практик React-экосистемы каждые 18 месяцев.


Decision matrix comparing Angular, React, Vue, and Svelte across stability, decision fatigue, AI compatibility, and ecosystem maturity

Реальные компромиссы, о которых никто не говорит

Это не пост “все должны использовать Angular”. Это то, что работает для меня.

Что я теряю:

  • Социальный капитал. Все его ненавидят. Это не техническая проблема — это проблема шума в социальных сетях. Вас будут высмеивать в Twitter. Половина фронтенд-сообщества назовёт вас бумером. Никто не будет писать крутые посты о вашем стеке.
  • Больший начальный бандл (~100кб вместо 10кб). Никто не замечает для B2B.
  • Меньше гибкости. Делайте вещи по-angularному, или будет плохо.
  • Случайные “повреждения мозга” Google: случайные новые фичи, которые тихо устаревают.

Что я не теряю: сон. Я не просыпаюсь от уведомлений об устаревании фреймворка. Я не трачу выходные на рефакторинг. Я не учу 3 новых паттерна каждый месяц.

Angular двигается медленно. Это фича, а не баг.


Timeline graph comparing time spent on framework maintenance versus actual product development for Angular vs React over 3 years

Вердикт для строителей, не для твиттеров

Для меня, прямо сейчас, это идеальный фронтенд-фреймворк.

Я могу построить целый CRUD-интерфейс с валидацией, обработкой ошибок и маршрутизацией за 2 часа. Не за 2 дня. AI пишет идеальный код для него. Он будет работать точно так же в 2029 году.

Этот фреймворк не оптимизирован для 100 разработчиков, спорящих о лучшем способе написать кнопку. Он оптимизирован для одного разработчика, которому нужно запустить 5 фич на этой неделе.

Именно это и нужно QuotyAI. Мне не нужен самый быстрый или крутой фреймворк. Мне нужен фреймворк, который уходит с дороги и позволяет мне строить.

Если вы соло-основатель, устали гоняться за хайпом, перестаньте думать слишком много. Используйте Angular. Вы сможете переписать потом — если будете достаточно успешны, чтобы это потребовалось.


Часто задаваемые вопросы

Почему стоит выбрать Angular как соло-основатель?

Angular устраняет усталость от принятия решений благодаря встроенным решениям для форм, HTTP, маршрутизации и внедрения зависимостей. Он остаётся стабильным годами, не требует постоянного слежения за экосистемой, и AI-ассистенты пишут идеальный, идиоматический код без правок. Документация Angular исчерпывающая и поддерживается, с нулевым количеством битых ссылок или устаревших примеров.

Каковы самые большие недостатки Angular?

Все его ненавидят. Это не техническая проблема — это проблема шума в социальных сетях. Вас будут высмеивать в Twitter. Половина фронтенд-сообщества назовёт вас бумером. Никто не будет писать крутые посты о вашем стеке. Фактические технические компромиссы незначительны: немного больший размер бандла (~100кб), более крутая кривая обучения и случайные “повреждения мозга” Google с экспериментальными фичами. Политика устаревания Angular гарантирует как минимум 6 месяцев уведомления о критических изменениях.

Может ли AI писать хороший Angular-код?

Да. Claude, GPT и GLM пишут идеальный идиоматический Angular-код с первого раза, потому что в нём есть один очевидный способ делать всё, никаких умных абстракций и стабильная документированная поверхность API, которая принципиально не менялась годами. Эта предсказуемость делает его идеальным для workflows разработки с AI-ассистентами.

Angular всё ещё актуален в 2026 году?

Безусловно. Angular питает enterprise-приложения в Google, Microsoft и тысячах компаний по всему миру. Roadmap Angular фокусируется на стабильности, улучшениях производительности и developer experience вместо критических изменений.

Спасибо за чтение!
Читать другие статьи