LINUX.ORG.RU

Что выбрать для веб приложения, чтобы спокойно спать?

 


1

2

Привет, ЛОР.

Я не профессиональный разработчик, но пописываю на C++, Python небольшие утилитки и всякие эксперименты. Но появилась задача написать небольшое веб приложение. Когда-то я немного изучал PHP, HTML, CSS, но скорее для интереса, ничего серьёзного не писал.

Вопрос вот в чём: какие технологии для frontend и backend лучше сейчас использовать, чтобы люди, которым это достанется по наследству, не искали меня с целью отомстить? Стоит ли для небольшого приложения использовать на frontend какой-то framework или просто накидать немного HTML и приправить CSS? Для backend ещё сложнее, там ворох языков и framework’ов.

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

Я тоже непроф. разработчик, писал недавно небольшой веб-сервис для нужд организации. Взял максимально простое - python с flask и чистый JS без фреймворков. Связку python/flask можно заменить на go, если он тебе больше по душе. В стандартной либе хватает возможностей для простых вещей.

anonymous
()

Если это что-то простое из 5 страниц - накидай просто на html, если нужно управление - можешь взять yii2, он понятный и быстрый, отлично документированный. Если хочешь написать, сдать и свалить чтоб проект сдох через полгода - возьми лару.

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

Скорее хочется чтобы после меня, если в компанию позовут профессионального разработчика, ему было проще привести в порядок за мной, чем всё выкинуть и сделать с нуля.

andalevor ★★★
() автор топика

пописываю на C++, Python

Когда-то я немного изучал PHP, HTML, CSS

Стоит ли для небольшого приложения использовать на frontend какой-то framework или просто накидать немного HTML и приправить CSS?

Можно два варианта, 1) сделать генерацию HTML на сервере на PHP или Python, которые ты знаешь. Чтобы не выглядело страшно, бери готовые компоненты из bootstrap. Если хочешь фреймворк, для пыха можно взять laravel. 2) разделить на фронт и бэк, бэк на PHP или Python, фронт можно сделать на vue тоже с какой-то библиотекой компонентов на bootstrap или другом фреймворке. На самом деле можно взять что угодно, лишь бы было более-менее известное и не очень древнее. Для базы можно взять sqlite/mysql/postgress. Да пофиг на самом деле, придушить кого-то хочется не от выбора технологии.

И да, техразделы сейчас не модерируют от клоунады, не все советы в треде одинаково полезны)

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

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

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

Стоит ли для небольшого приложения использовать на frontend какой-то framework или просто накидать немного HTML и приправить CSS?

Если твоё «приложение» реализуемо на HTML + CSS, то так и делай. Если нет, то юзай vanilla JS там, где требуется. Благо там сейчас не так больно всё, как было 10+ лет назад, когда как минимум jQuery был очень кстати. Судя по вопросам, никакие фреймворки тебе не нужны.

А для backend можешь тот же Python заюзать, раз пописываешь на нём. Как раз он популярен, и на нём чуть-чуть сложнее наделать прям совсем говна, от которого кровь из глаз и всех остальных отверстий, чем на том же PHP, соответственно, может быть норм выбором по критерию:

чтобы люди, которым это достанется по наследству, не искали меня с целью отомстить

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

какие технологии для frontend и backend лучше сейчас использовать, чтобы люди, которым это достанется по наследству, не искали меня с целью отомстить

Тут скорее от понятности написанного зависит (что это, зачем всё это, почему именно это, как это устроено), чем от конкретных технологий. Так что желательно уделить внимание архитектуре приложения, организации кода, документации.

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

чтобы люди, которым это достанется по наследству

Спроси у них.

Если там все просто, я бы взял php, в нем все нужное для бекенда есть, а фронтенд можно и на html+css+js сделать чистом.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)

Для питона сейчас FastApi выбор по умолчанию… Но я не знаю что ты задумал, если просто сайт, то сделай его на тильде. Их делать сейчас сложно, потому как требования к сайтам выросли, если ты сейчас слепишь что-то типа домашней странички Мицгола, то тебя соевые додики засмеют

rtxtxtrx ★★
()
Ответ на: комментарий от sparkie
  1. учишь синтаксис ДЖОЭС
  2. учишь каку-нить систему для написания компонетов (Vuй.js ли сReact)
  3. берешь каку-нить либу компонентов https://www.fast.design/
  4. делаешь прогрессивный сайт-портфолию
  5. хостишь его через vercel

Для интерактива можно использовать всякие Firebase и тп вещи, чтобы хранить комментарии и тп

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

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

Вот заморозить, оставить на одном месте можно, собирать вручную старый python, nodejs, и это хороший повод для убийства, потому что документацию по устаревшим библиотекам не найти. Максимум по паре предыдущих версией сохранят, потом все поломают. С новыми плагинами, библиотеками зависящими от использованных, это цепляться не будет.

Лучше взять что то вечное, что там у нас с 2000х существует? PHP, jQuery.

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

Нет такой проблемы. Библиотеки использовать не нужно, во всех перечисленных языках весь функционал есть в стандартной библиотеке. За редким исключением.

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

И как там выглядит подключение к базе данных, например MySQL? А роутинг? Как там прочитать cookie или форму? Насколько мне известно - никак.

Вот список встроенных возможностей PHP: https://www.php.net/manual/en/funcref.php

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

Что за чушь ты несешь, маня? У питона обратная совместимость ломалось только раз - когда слово async сделали ключевым, и пару популярных либ перестали работать. Ты только код от питона 2 не сможешь на третьем запустить, но совместимость между вторым и питоном 3000, который сейчас 3-ка, никто не обещал

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

Ты теоретик, возможно просто диванный специалист, советую молчать, когда говорят такие профессионалы как я. Если ты только читаешь чейнджлоги иногда, то конечно ты думаешь что все ок.

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

Конкретизируй вопрос, пока не понятно. Для подключения к базе данных имеются соответствующие модули. Роутинг - просто switch пишешь и всё. Cookie это такой HTTP-заголовок, берёшь и читаешь. Иногда бывает специальное API для него. Да и не надо это всё.

PHP это язык для домашних страниц: Personal Home Pages. Для веб-приложений он не подходит.

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

Для подключения к базе данных имеются соответствующие модули

Ну вот какой модуль для NodeJS я возьму из стандартной библиотеки, для подключения к MySQL? Для чтения cookie или формы с приложенным файлом? Дай ссылку на код, что угодно.

PHP это язык для домашних страниц: Personal Home Pages. Для веб-приложений он не подходит.

Его используют самые передовые сайты человечества: 1. slackware.com 2. pornhub.com 3. wikipedia.org

Где используется Java? Только на домашних страничках из 2000, где аплет рисует круг. Где используется NodeJS? Не знаю. Где Python? Вообще никогда не видел, instagram что ли? Где Go?

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

Ты сравниваешь язык общего назначения с шаблонизатором на перле, который потом существовал лет 20 как модуль жопача… А в C++ как стандартными средствами куки прочитать, маня? Сам-то понимаешь, что бред пишешь???

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

Ну вот какой модуль для NodeJS я возьму из стандартной библиотеки, для подключения к MySQL?

Гугл советует https://www.npmjs.com/package/mysql

Для чтения cookie

req.headers['Cookie']

или формы с приложенным файлом?

Без понятия. Зачем тебе какие-то формы? Надо использовать JSON. Кодируешь файл в base64 и отправляешь через JSON.

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

Гугл советует https://www.npmjs.com/package/mysql

Ты же выше сказал, что стандартной библиотеки хватает, или я не так понял? В npm конечно все найдется, из того что я запросил.

req.headers['Cookie']

Это ты получаешь строку, тебе нужен отдельно парсер.

Без понятия. Зачем тебе какие-то формы?

То есть ты собираешься костылить формы на фронтенде? Ужасное решение.

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

Ты же выше сказал, что стандартной библиотеки хватает, или я не так понял? В npm конечно все найдется, из того что я запросил.

Я отметил «за редким исключением». Драйвер для БД входит в этот круг. Его писать самому не стоит. А «Парсер» для значения куки, заключающийся в том, чтобы разбить строку по ‘;’ и ‘=’ - точно не входит.

К счастью люди, которые пишут драйверы, как правило достаточно адекватны и при использовании их библиотек существенных сложностей не возникает.

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

Драйвер для БД входит в этот круг.

Вот и первый кандидат, в мире js на исправление при обновлении. История изменений доступна, я это не выдумываю.

А «Парсер» для значения куки, заключающийся в том, чтобы разбить строку по ‘;’ и ‘=’ - точно не входит.

Кроме парсера, тебе теперь надо написать энкодер. Кстати, не забыл про дополнительные поля Cookie? Это же не просто ключ/значение.

Ну и мы остались по итогу без форм. Там видимо тоже свой парсер придется писать. Ты уже определился куда будут загружаться файлы на сервер?

Не лучше ли тогда взять паскаль, и cgi? Можно даже Turbo Pascal, на ЛОРе была тема, как его прикручивали через dosbox к современному серверу.

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

Кроме парсера, тебе теперь надо написать энкодер.

О боже мой, мне действительно надо рассказывать, как склеить строки?

Кстати, не забыл про дополнительные поля Cookie?

У Cookie нет никаких дополнительных полей. Ты, наверное, про Set-Cookie уже? Так там тоже всё предельно просто. Только не забыть про ограничения на значение (какие символы можно использовать). Но для типовых применений вроде session_id={uuid} это не важно.

Это же не просто ключ/значение.

Пока не понимаю, о чём ты.

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

Все очень просто, я только не понимаю зачем тебе такие жирные зависимости, nodejs lts даже на поддерживаемом centos не запускается, glibc слишком новая. Лучше Pascal как я предложил.

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

Ты предлагаешь ужасные способы, просто отвратительные. Зачем кому то дописывать твой «типовой установщик сессии» (где кстати сессии хранится будут?), если он мог бы использовать уже готовый, протестированный, написанный код? Зачем кому то разбираться в твоих hello worldах? На все проблемы ты отвечаешь что это просто не нужно, что является лишь доказательством убогости твоего подхода.

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

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

MOPKOBKA ★★★★
()