LINUX.ORG.RU

отговорите: (nodejs) vue.js + express + pg-promise + postgresql + docker

 ,


0

2

Хочу сделать небольшое и легконагруженное приложение - редактор словарей терминов. Есть список слов, можно искать слово. У слова есть карточка, которая своя для каждого пользователя, но можно смотреть чужие карточки. Карточка в формате markdown или что-то около того.

Клиента буду делать на vue.js, а сервер хочу на node.js . Да, меня уже отговаривали использовать node.js на стороне сервера. Но вдруг для такого простого проекта прокатит? В принципе, я готов всю тяжесть написать на pl/pgSQL, а на нодке - только тончайший интерфейс и собственно веб сервер. Соответственно, вопрос - как там с утечками памяти и прочими такими вот ужасами?

Т.е. вопрос состоит не в удобстве и не в производительности, а в качестве с т.з. надёжности.

Перемещено tailgunner из development

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Ответ на: комментарий от deep-purple

Просто совсем недавно такого раковника (в головах) еще не было.

Бытие определяет сознание. Когда пишешь на таком упоротом язычке, безумные идеи сами лезут в голову. Когда то умные дядьки сделали жаву намеренно слишком строгой для прививания гигиены и дисциплины исполнителям невысокой квалификации. А жаваскрипт это такая антижава, для него бы специальный допуск по-хорошему, как права высокой категории.

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

Я ещё так понимаю, что при SSR происходит нехилое дублирование между сгенерированным html и виртуальным домом, который тоже должен как-то попасть на клиента. Т.е. страница SSR заведомо тяжелее, чем просто такая страница, сделанная на PHP.

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

Да, ведь живой клиент должен получить полный фарш со свистелками. А статика только для удовлетворения робота.

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

Дэн, пили уже сам компоненты своей мечты по мотивам vue, а лучше marko. Кажется я понял что ты хочешь: компонентный фреймворк для бэкенда, а не MVC.

Отлично, что ты это понял, но сам я ещё этого не понял :) Пилить компоненты мечты - это как раз то, чего я пытаюсь избежать. Поскольку за мечту не платят :)

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

Тогда сосредоточься целиком на фронте. Пусть другие колупаются с нодкой, а ты будешь гордо делать свистящие компоненты на vue. И пофиг как и где оно рендерится. Думаешь макаки задумываются хоть на секунду об этом? Горе от ума, короче.

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

А шаблоны ты не считаешь? Получается сам вуй, код шаблонов, данные, какой-то роутер/контроллер еще сбоку нужен. И все это дублируется для каждой вкладки. Между тем в старорежимном вебе ничего этого нет, только html и может наколенный скрипт. Именно поэтому считаю все эти вуи имеют смысл только для SPA.

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

Вопрос был в объёме передаваемых данных - для vue он больше. Ну, на данный момент мой PHP выглядит примерно так:

pg-promise, express, express-async-handler, marko (вместо vue), lasso (вместо webpack).

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

Но я опять ударяюсь в какую-то маргинальщину. Точнее, я бы сказал, рынок ударился в маргинальщину. По marko нет вакансий :(

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

В моём нынешнем положении это означает, что использовать его нельзя. Как думаешь, есть у него шансы, что взлетит?

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

О, все же подсадил тебя на marko :) Я бы делал на нём, если бы приспичило, всё остальное уж очень трешовое. Непопулярность наверно от недостатка пиара. Тут как в жизни: о чём больше трещат всякие балаболки, то и популярно. Реакт вообще всем фейсбуком пиарят, прикинь какой это мощный навал. Так можно любую какашку раскрутить.

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

Если с marko у тебя сложится, можешь попробовать убедить заказчиков, которые хотят вуй. Кстати, сам вуй тоже не сказать что сильно взлетел пока. Многие уже завязались на реакт, теперь трудно будет его подвинуть.

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

Не сказать, что прямо подсадил, но соблазн велик.

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

Я думаю что хороше иметь опыт с разными фреймворка и. А так их сейчас как грязи. А этот самый не известный. Взлетит? Навряд ли.

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

А если Дэн его внедрит раз-другой, потом кто-то заметит, что он куда приятнее вуя. И бац, взлетел, а Дэн получается первопроходец. Будет гуру по marko. Тем более в жс постоянно такое происходит. Но конечно, не вижу особых проблем уметь все эти фреймворки сразу.

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

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

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

Странно такое слышать от знатока Common Lisp. JS (в рамках ES5 по крайней мере) - самый простой и компактный язык на весь мейнстрим. И почему бы реакт не взять, если ты так цинично настроен?

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

И есть масса других нужных знаний, начиная от «войны браузеров» и заканчивая тем, чем отличается post от put :)

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

Я вообще подозреваю, что реакт вырос из васянского похапе-фреймворка времен, когда о MVC в вебе еще не слышали. Как ни странно, но такая компонентная архитектура наиболее естественна именно для чистого PHP.

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

С другой стороны на бэкенде компонентный подход не уважают, любят MVC.

MVC - это и есть компонентный подход.

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

Кстати, кто там пытался наезжать на русский язык? Вот цитата из статьи про vue: «китайские комментарии в коде большинства публичных репозиториев». Не хотите программировать на русском - скоро придётся учить и английский, и китайский.

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

В MVC компоненты размазаны по трём слоям в десяток классов. Реакт я терпеть не могу, но он сделал большое дело - сдвинул мышление в сторону от MVC, которое в вебе не пришей кобыле хвост. Теперь бэкенд значительно упростился, можно заняться оптимизацией работы с БД вместо дрочева с классами.

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

И да, конечно компоненты не отменяют разрезание на слои: роутер, мидлварь, модели и т.п. Просто view теперь более адекватно стали делать.

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

Вот цитата из статьи про vue: «китайские комментарии в коде большинства публичных репозиториев».

Теперь ты можешь ощутить себя в шкуре разработчика, которому достался код китайского den73.

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

Не хотите программировать на русском - скоро придётся учить и английский, и китайский

Не хотите насиловать и убивать, готовьтесь к тому, что будут насиловать и убивать вас.

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

Не хотите комить свою армию - будете кормить чужую. Классика

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

Мне просто интересно. В России hh показывает около 180 вакансий по vue. Неужели ни одного из работодателей не смущает, что комментарии на непонятном языке? Ведь это опен-соурс, и среди недостатков vue указывается и его автор, который часто шлёт людей лесом. Т.е. включая в свой проект vue, вы берёте на себя ответственность за починку в т.ч. потрохов самого vue. А вот если я буду писать на русском, то «не пройду code review» и меня «уволят с любой галеры в тот же день». Что, русский язык хуже любого иностранного, что ли?

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

А вот если я буду писать на русском, то «не пройду code review» и меня «уволят с любой галеры в тот же день».
Что, русский язык хуже любого иностранного, что ли?

Если в индустрию приходят с желанием сесть на трактор и свалить, то да любой иностранный лучше чем:( Я даже больше скажу в 90-ые выпустилось поколение активных преподавателей которое начало вбивать эту максиму в голову студентов с всем пылом и с занижением оценок и все такое. То есть качество и содержание текста неважно, лижь бы не на русском:(
Сами иностранцы к неанглиским языкам в коде довольно равнодушны. Но с другой стороны крайне редко берут в граф зависимостей библиотеки сформировашиеся вне натовского пространства. Пусть они хоть трижды обкоментированы и обдокумерованы на якобы международном. Парадокс.

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

и меня «уволят с любой галеры в тот же день

Для галеры с точки зрения маркетинга полезно завышать количество якобы знанющих буржуйский. И индивидуальности там должны ходить строем:(
В продуктовой компании может сложится парадоксально-обратная картина, начнут шпынять за попытку протащить международные практики:)

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

Генерация API БД требует чего-то типа макросов. Чуть не стал изучать clojurescript, но потом нашёл sweet.js . Кто-нибудь пробовал? А, и ещё нашёл cheat-js на лиспе, но втаскивать лисп в JS - среду выглядит лишним действием.

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

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

deep-purple ★★★★★
()
Ответ на: комментарий от den73

Прекрати метаться из стороны в сторону наступая на всякое говно. Чего тебе не хватает? А я знаю )) Понимания какой же должна быть архитектура. Давай попробую описать комментариями + псевдокодом. Но не могу гарантировать что учту все нюансы в кратком изложении. Попытаюсь донести смысл и тогда ты посмотришь на инструменты как на инструменты, а не как на кнопку «сделать хорошо». Хотябы задам примерное направление. М?

deep-purple ★★★★★
()
Ответ на: комментарий от Int0l

Спасибо, но я сейчас принципиально ищу способы обойтись без лиспа. В т.ч. Яр планировался изначально как язык с макросами, но без скобочек. Это возможно, но не так-то просто. Я даже отложил это на вторую версию. И вот я вижу этот sweet.js и cheat-js и мне интересно их попробовать, т.к. они уже решили задачу, которую я даже не начал толком решать.

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

Глянул ридми.мд — это какой-то сюр. Вы там в конец обезумели.

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

Метаться из стороны в сторону - это мой стиль вообще. Иногда это оправдано, тем более в таком мире абсурда, как JS :) Но напиши, буду благодарен. Действительно, я пока не сориентировался.

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

Нет. Метания в вебе не помогут. Ты правильно создал соседний тред что много всего. Так и есть. Тут «без поллитра» не разберешься. Кстати. Глянь там парой каментов выше я анонам скинул ссылку. Это по крайней мере интересно. Не просто посмотри, а пойми что автор хочет донести. Я не говорю что это «вот оно!» идеальное и правильное решение, это просто интересный взгляд. Пока смотришь я ушел писать что обещал.

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

«Дельфи для веба». Практически об этом же я и думал в то время, как ты это писал.

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

JS это и есть лисп только без скобок. Покрайней мере в JS есть динамическая компиляция, и eval. Так что макросы особо не нужны )

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 3)
Ответ на: комментарий от deep-purple

Ну я сначала пометаюсь, а потом надеюсь, что найду своё. Например, реакт точно не хочу. Рынок большой, как-нибудь увернусь. Ведь я хочу делать проекты в одно лицо, для этого нужны не модные инструменты, а эффективные. Но не настолько маргинальные, чтобы заказчик испугался. Возможно, дело кончится PHP, как тут многие советовали :)

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

Я бы вместо PHP выбрал Python. Хотя если РФ рынок, то может PHP и лучше будет.

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

Начнем с начала.

Припустим у тебя есть обычное не СПА веб-приложение, которое тупо отдает по разным ссылкам (в том числе пост) какой-то контент. Ок.

Обычное веб-приложение в бекенде состоит из (МВЦ, вся хурма): модель (оперирует с данными), контроллеры (дергают модели), роутер (определяет какие контроллеры дергать), вьюха (рендер шаблонов).

Следующим этапом развития приложения является создание сервисов/АПИ. Что это? Просто погугли что такое REST API. Как это сделать? У нас сейчас только хтмл. Припустим мы хотим сделать XML или JSON. Нет разницы что мы делаем. Мы просто делаем сервис. Чтобы не путаться мы введем понятие «контекст вывода». Т.е. одни и те же данные (по факту) мы будем отправлять клиенту в разных контекстах — хтмл, жсон, хмл, тхт. Рассмотрим жсон как самый важный в нашем варианте. Бекенд: Это просто контроллеры, которые наполняют вьюху нужными данными. А в зависимости от контекста вывода выбранного контроллером ( типа this->view->setOutputContext(«json») ) вьюха рендерит то или иное представление определяя подключаем ли хтмл-шаблон или отвечаем жсоном (не забудь отправить заголовок «Content-Type: application/json»).

Отлично, АПИ готово. Теперь вопрос — как это прикрутить к вую или чему-то еще?

Внедряем во все хтмл-шаблоны, которые ЕДИНОЖДЫ запрашиваются обычным (не аякс, роутер же знает какой контроллер дернуть) способом всё необходимое окружение — шаблоны, стили, скрипты. Они, как обычно заведено, используя хистори апи браузера, будут аяксом или жсонпи или вебсокет делать запросы к апи, получать нужные данные и рендерить их без перезагрузки страницы. Цель достигнута!

Я не требую использовать конкретные инструмены. Просто найди те, которые могут так искаропки (хотя нет сложности набросать соплей для склеивания неумеющих). С таким подходом ты сможешь и в обратную совместимость и в гламурную херь и в индексирование ботами.

Не претендую на конечную истину.

Все. Надоело писать. Надеюсь общий смысл донёс.

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