LINUX.ORG.RU

JS фреймворк для фронтэнда с минимальным погружением

 , ,


3

5

Хочу написать простенькое веб-приложение для личного пользования, серверная часть для меня прозрачна и понятна, а вот с фронтэндом я в современных технологиях вообще не знаком.

Из поверхностного обзора веяний моды в этой области я узнал, что то, что я ищу, описывается термином single page application. В идеале, фреймворк должен взять на себя и визуальную составляющую, но если что, CSS я напишу сам.

Хочется сказать фреймворку: «Положи на DOM 4 кнопки, 2 списка, затем еще 3 кнопки. И пусть оно выглядит не совсем отвратительно.» Для каждого из элементов DOM прописать простенькую логику и повесить на события: сходи на сервер с таким запросом, из ответа возьми данные и замени контент там-то. Часть данных о состоянии для каждого элемента желательно хранить за пределами DOM, они нужны не пользователю, а чтобы составить правильное обращение к бэкэнду. Желательно иметь заготовки для чисто клиентских операций: сортировать список, фильтровать список и т.п.

На моем уровне знаний я бы сгенерировал DOM на стороне сервера, обмазал бы элементы коллбэками и для красоты взял бы CSS от Bootstrap. Но (а) это долго и скучно, (б) в результате получится хрупко и плохо читаемо, (в) я никуда не спешу и поэтому хочу сделать хорошо.

Обзор хелловорлдов для фреймворков из списка «Топ 10 баззвордов чтобы зашибать деньги на фрилансе» показал, что кашу они там заварили знатную, и вот это коричневое в ней - вряд ли шоколад. Поэтому прошу совета, с каким из фреймворков приятнее иметь дело для краткого и довольно дилетантского знакомства?

★★★
Ответ на: комментарий от tz4678

v-model в vue.js

Самый блевотнейший костыль, который я только видел в этой либе. Работает только для одного свойства, но в 2.3 добавили суфикс sync, который делает то же самое, но с абсолютно другим синтаксисом. Всё гладко ровно до тех пор, пока ты не начинаешь использовать сложные свойства, объекты или массивы. В одну сторону обновление проходит, в другую сторону, через событие input или updated:propname — не проходит. И в итоге обратную связь ты все равно делаешь руками — вот такая вот двухстороння связь.

byko3y ★★★★
()
Ответ на: комментарий от white_bull

Это вообще какой-то странный аргумент. Во-первых, тормозит обычно не код, а плохо оптимизированные запросы к БД и всякие приколы вроде запросов к БД в цикле. Во-вторых, при чём тут ts? Если б все сайты на ts были бы написаны, то тормозов бы не было? Ну бред же.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Нет, не бред. Строго типизированный язык как раз твои тормозящие запросы и помогает решать.

Что вы вообще, ребята, пишете? Вы что, нормальных проектов по сложности не делали? Я не там веду дискуссию? Сорян тогда.

TS - это лучшее, что произошло с миром web. Только сейчас маятник качнулся, немного научились в него web разработчики, появились библиотеки и так далее.

white_bull
()
Последнее исправление: white_bull (всего исправлений: 1)
Ответ на: комментарий от white_bull

Так я и не спорю, что TS - это лучше, чем JS. Я спорю лишь с тем, что использование TS никак не сделает сайты менее тормознутыми, если тормоза упираются в скорость выполнения SQL-запросов.

Строго типизированный язык как раз твои тормозящие запросы и помогает решать

Странно, а я думал, что помогает денормализация, EXPLAIN ANALYZE и последующее построение индексов. Строгая типизация в языке НИКАК не решает проблему оптимизации запросов.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Чел просто еще не понял разницы между статической типизацией и статической компиляцией. А ты ему свои эскуэли суешь.

byko3y ★★★★
()
Ответ на: комментарий от byko3y

Вы такие умные, что дух захватывает. А я то думал, что сайты без SQL так безбожно тормозят не потому, что великий программист делает SELECT * FROM. А Вы мне глаза открыли! Обалдеть. Спасибо.

ТС получил тут знатную кормёжку. Удачи. Я таки тредом ошибся.

white_bull
()
Ответ на: комментарий от white_bull

сайты без SQL так безбожно тормозят

Откуда ты знаешь, готовый html тебе выплёвывается, или же там куча запросов в базу идёт под капотом? Ты это вообще никак не узнаешь, не имея доступа к коду сайта. Откуда ты взял этот список сайтов без SQL, которые тормозят? Это твои сайты?

Я таки тредом ошибся

Возможно, но специализированных джун-тредов тут не видел

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Я знал! Я знал, что не сможешь не ответить!

Если бы не кормёжка ТС, то я могу смело поддержать дискуссию.

Ту пацаны придумали Apollo… Я, как джун: рекомендуэ. Тебе, как адепту SQL запросов, самое то.

А что меня удивляет, так то, как вы помните что там вам сервер по вашему запросу вернул. И среда вам подсказывает, что за поля у объекта, ага. И очепяток нет.

То-то я смотрю, что на фриланс сайтах все готовы «начать проект» и очень мало могут поддержать/переделать/доделать за кем-то.

white_bull
()
Ответ на: комментарий от ddidwyll

Тоже вариант, но тс упомянул фреймворк, а ванилла она как бы нет.

ya-betmen ★★★★★
()
Ответ на: комментарий от white_bull

А что меня удивляет, так то, как вы помните что там вам сервер по вашему запросу вернул

При использовании DataMapper ORM (не Active Record) тебе IDE точно так же подскажет, что за поля у объекта - с этим никаких проблем нет. Если не веришь, потыкай TypeORM - убедишься сам. Она с твоим любимым TS, кстати, отлично ладит.

Ту пацаны придумали Apollo… Я, как джун: рекомендуэ. Тебе, как адепту SQL запросов, самое то.

Возможно, ты немного не в курсе, но Apollo - это не хранилище данных. И под капотом там могут быть разные дата-сорсы, в том числе и реляционные СУБД. То есть использование Apollo тебя не избавляет от оптимизации SQL-запросов.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

И что с этого? Да обмажься ты SQL оптимизацией до ушей, это приложение тебе не создаст. Что ты так зацепился, ну боятся многие разработчики реляционных DB, ну и что? Это только одна сторона медали.

Я лично видел, как людей учили на курсах по CSS, HTML и прочему, хреначить видео в фон и картинки повышенной (4к) четкости, ужимая их потом CSS. А ты говоришь о запросах.

Что-то часто стал вспоминать Лаврова…

white_bull
()
Последнее исправление: white_bull (всего исправлений: 1)
Ответ на: комментарий от white_bull

Давай вспомним начало разговора. Ты написал «Вот и тормозит. Нормальный аргумент? Или мало?», имея в виду, что сайты тормозят, потому что они написаны не на TS. Верно ж? Это твоё сообщение. Вот я тебе и объяснить пытаюсь, что тормозят сайты вовсе не из-за языка, на котором они написаны, а из-за хреновой оптимизации SQL-запросов, которые они делают для получения данных. Количество данных с годами в таблицах растёт - и со временем запросы начинают медленно работать, и требуют оптимизации (построения индексов, денормализации и т.п.)

Ну взял ты TS, написал на нём сайт - и что, у тебя база данных будет отсутствовать в таком случае? Где данные будут храниться, как их фильтровать? Ок, ты предложил Apollo - а ничего, что там выборки делаются точно так же из различных хранилищ, в том числе и реляционных? Если там не будет правильной оптимизации запросов, то ты получишь точно такой же тормознутый сайт. Да, при использовании TS и Apollo. Это абсолютно то же самое и никак не решает проблему тормознутости некоторых сайтов.

ну боятся многие разработчики реляционных DB

Кто боится-то? Лично я с такими не сталкивался. И чем они заменяют реляционные DB? Про MongoDB не пиши, это ни разу не замена реляционкам.

Я лично видел, как людей учили на курсах по CSS, HTML и прочему, хреначить видео в фон и картинки повышенной (4к) четкости, ужимая их потом CSS. А ты говоришь о запросах.

Ещё раз: ты написал, что сайты тупят, потому что они написаны не на TS. Я тебе объяснил, почему использование TS эту проблему не решит. Какое отношение к этому имеет то, что ты пишешь?

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Дядь. Чего ты смотришь так однобоко? Ты что, только магазины пилишь? Мне с тобой скучно.

Сейчас пилят пацаны UI, а ты всё БД да БД. У тебя с ней проблемы?

Теперь по UI. Яркий пример, это Atom vs VSCode. Исполнители, я уверен, везде более менее одинаковы. А вот технологии похожие, но другие. И что мы на выходе имеем?

white_bull
()
Ответ на: комментарий от white_bull

Теперь по UI. Яркий пример, это Atom vs VSCode

Да, пацаны пилят UI, но при чём тут тормозящие сайты, или разницы не видишь? Одно UI (интерфейс), второе - бэкенд. Ты просто слился и съезжаешь с темы. Не о чем с тобой говорить. Ты готов обсудить всё, кроме того, с чего начал разговор и где тебя носом ткнули в твоё же непонимание базовых вещей.

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Пока, оставайся при своём мнении ;)

Одно UI (интерфейс), второе - бэкенд. Ты просто слился и съезжаешь с темы. Не о чем с тобой говорить. Ты готов обсудить всё, кроме того, с чего начал разговор и где тебя носом ткнули в твоё же непонимание базовых вещей.

Запили мне бэК, да на ASP.Net… Я просто рыдаю от «Базовых вещей», плак-плак. Ну ты парень, дал.

white_bull
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.