@Ryberm

Существует ли JavaScript-фреймворк для фронт-енда, бек-енда и SSR, который реально простой и удобный?

Сейчас начнется: "ай-я-яй, холивар, фреймворков куча, бери любой!"

Но что-то мне кажется, что под мои запросы получится найти от силы 1 фреймворк. И поэтому холивара не будет.
И это даже несмотря на то, что меня интересуют решения хоть на базе React, хоть Vue, хоть Svelte, хоть что-то еще.

Вот запросы:
  1. Фреймворк должен быть создан взрослыми людьми, которые не играют в игрушки. Вот разработчики Next.js играют в игрушки, они сделали свой компилятор JavaScript, и используют его вместо Babel, чтобы собиралось быстрее. Ну вот что бы вы сказали мне, если бы я спросил у вас, стоит ли мне сделать свой компилятор JavaScript? А почему им можно? Я так не считаю. Мне чисто психологически противно, что они не только не сделали сам фреймворк удобным, но и вместо этого потратили кучу человеко-часов на малонужную ерунду.
  2. Фреймворк должен давать полноценный бек-енд, чтобы делать на нем не только SSR, но и API. И не требовалось всяких koa, express и проч. Весь этот функционал должен быть в нем самом. И библиотеки для него должны быть, сессии, роутеры, авторизашки в соцсетях, туда-сюда. В Next это есть, но опять же, оно... оно убогое. Next.js - это фреймворк от Недоделкина.
  3. Нужна возможность создать глобальную переменную, доступную и из SSR, и из API. В Next ее нет.
  4. Нужна возможность сделать в бек-енде сервисы, которые будут крутиться в фоне постоянно. В Next она есть, но убогая, и в этих сервисах JS идет напрямую, мимо компилятора, поэтому никаких `import` и прочего. Извращение.
  5. При переходах между страницами должно быть можно показывать прелоадеры. Полноценные прелоадеры. Вот нажал кнопку, и вместо контента появился прелоадер (только вместо контента! меню, сайдбар и все что можно - осталось), затем грузятся данные через SSR (как и если бы открыл страницу в новой вкладке), затем они рендерятся вместо прелоадера. Вернее, даже не так - сначала грузятся данные, потом оно смотрит, ага, не прошло и N мсек, а данные уже загрузились - значит не надо рендерить прелоадер (а то мигание получится), а надо сразу данные.
  6. Нормальный удобный роутер (не путать с роутерами API). В Next ты должен сам конструировать URL, затем делать router.push(url). В современном JS же есть URL, все бы ничего, но... тот URL требует наличие хоста, протокола, да и вообще не очень удобен.
  7. Нормальный component-level CSS. Вот опять, в Next он есть. Но в него не получится добавить стили для компонентов из сторонних библиотек, которые не предоставляют кастомизации через className ит.п. А такая возможность часто нужна.
  8. Вообще, при переходе с "велосипеда" или какого-нибудь старого решения для SSR, должно происходить ускорение и уменьшение веса, а не наоборот. В Next.js есть такая фича, как prefetch JavaScript-бандлов. То есть открываешь / и у тебя сразу со всех страниц скрипты грузятся. Ну такое себе. И в полной мере это не отключается. Приходится делать аж свой компонент <Link> вместо штатного.
  9. И, как ясно из пунктов 7 и 8, разработчики нормального фреймворка не должны иметь проблем с мыслительной деятельностью, в отличие от разработчиков Next.js. Или им просто лень? Или они думают, что простые обрубленные решения = багов не будет? Ошибаются: я совсем недолго с Next.js, а баг в одной из версий уже словил. А лучше, чтобы багов не было, или хоть пореже, что ли.


Не могу сказать, что все эти проблемы Next.js никак не обойти. Многое можно закостылить. Но это уже становится мало похоже на Next.js. А скорее на разработку своего собственного фреймворка. И удобнее это делать, форкнув Next.js и внося изменения прям туда. Это нормально - брать фреймворк и дорабатывать? Ёшкин кот!

Ну и кратко о себе: я работаю не в команде, а один, работы у меня очень много, и именно поэтому нужно, чтобы все делалось легко и просто. А Next.js просто бесит.
  • Вопрос задан
  • 427 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kttotto
пофиг на чем писать
Никто Вам здесь не назовет такой фреймворк.

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

Когда-то на заре своей рабочей деятельности, я, такой молодой и крутой пришел на первую работу. Посмотрел на кусок кода и сказал "Что за говно? Я напишу лучше.". Промудохавшись целый день, к вечеру, я вдруг понял, что у меня получилось практически тоже самое. Это было мне уроком, доверять чужому коду и что с такими оценками в дураках могу оказаться я. А позже я стал замечать, что критики всего и вся по большей части люди с низкой компетенцией, не понимающие, как это работает внутри.

1. Сравните их опыт и свой, их компетенцию и свою. Может в этом дело?
2. Он не обязан это делать. Кроме того, очень мало кого заинтересует сразу все из коробки и еще в такм виде как именно Вам нужно.
3. Не понимаю проблемы, все решаемо, просто Вы зациклились на каком-то своем решении, поэтому не видите других.
4. Это опять "Хочу все и сразу и так как мне это надо". Сервис, это не обязательно именно бэк вэба, не все хотят делать сервисы в монолите web api.
5. Это решаемо руками и недолго, зачем это делать из коробки?
6. Оценка "нормальный" очень субьективна.
7. Это решаемо. Думаю Вы не разобрались или хотите решить каким-то особым способом. Не все решается одинакого.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы