Как Frontend разработчику войти в Backend (переквалифицироваться)?
Несмотря на название, я не собираюсь уходить с Фронта, но при этом очень хочется разобраться в Бэкенде, так как нет ни малейшего понимания работы с сервером, базами данных и так далее.
Посоветуйте с чего начать, что почитать. Для себя решил выбрать Node, по понятным причинам: полностью в бэкенд уходить не хочу, но при этом неплохие перспективы в дальнейшем, при наличии каких-никаких знаний JS'a.
Так что по языку особо советовать я думаю нечего, нужны базовые и общие понятия. С сервером, ssh/ftp, БД (как я уже сказал), Docker'ом, nginx сервера и прочим не разбираюсь! (а хочется, хотя бы базу)
SQL 92 и дальше специфика для определенной бд. Orm под выбранный язык. Кстати мода на ноду прошла, буковки там вроде теже но на практике геморроя вагон. Так что выбирайте лучше из php go c#. Nginx пожалуй неделя, докер пусть месяц. Ssh и прочее по мере поступления. В конце концов есть man ssh man scp.
Дмитрий, они оба специфичные. Главная претензия к ним это долгая история и костыли. Причём это тема наверное для большой статьи. Впрочем в интернете уже все описано, лично я пишу на С#
Владимир Коротенко, Вы написали русским языком что в Node.js полно геморроя и выбирай мол php. Я задаю уточняющий вопрос. В ответ вы мне пишете что онри оба специфичные и рассказываете на чем пишете лично вы, что мне конечно же абюсолютно по барабану.
Дмитрий, я русским языком написал берите go или c# . В списке присутствовали другие языки из за популярности. Плюсы и минусы сами сможете вычислить загуглив язык1 vs язык2. Так понятней?
Владимир Коротенко, Нет, вы русским языком написали php, go, sharp И до сих пор русским языком не написали что за гимор такой в Node, которого нет в Php. Вы видимо просто готовы ляпнуть любую чушь лишь бы казаться знатоком. Обычно это происходит от низкой самооценки. Если я ошибся просто ответьте на простой вопрос - что за гимор в node.js, которого нет в php, Либо возьмите свои слова обратно.
Дмитрий, именно это 20 лет уже как на рынке.
Грузится 1 страница со всем кодом (пускай страница входа), код запрашивает куски страницы и сервер отдает их, браузерная часть же просто манипулирует DOM. Нет никаких переходов по url и прочего.
Бэкенд это в основном чтение данных из БД и отдача на клиент. Если на клиенте не SPA и на бэке нужно формировать полноценный html - чуть посложнее, нужно будет изучить используемый выбранной системой шаблонизатор. Все остальное - то же что фронтенд в плане работы с данными. Поэтому читайте про БД и язык запросов SQL, делайте простенькие базы с 3-4 таблицами. Пробуйте получать запросы с клиента и отдавать информацию. Ничего сильно сложного. Несмотря на то, что программисты бэкенда любят гнуть пальцы и называть фронтендщиков формошлепами, современный фронтенд мне кажется сложнее бэкенда.
Бэкенд это в основном чтение данных из БД и отдача на клиент.
Бэкэнд это отложенная обработка данных в БД (вне работы с запросом клиента а иногда и с ним и даже параллельно вместе с ним), самостоятельный опрос источников, актуализация справочников, приоритизация наиболее актуального источника информации среди нескольких опрошенных, это механизмы изоляции сессии одной от другой (а то и их сохранение на случай падения системы) и это один источник/обработчик данных для веба и для мобильного и для настольного ПО порой параллельный когда данные идут сразу на активный моб. клиент на веб или ещё куда если они связаны и подключены, это работа с платежными сервисами включая отложенную обработку информации от них же когда клиент покинул сеть, всякие механизмы подписи документов, система прав и ролей и уровней доступа к данным, иногда даже данные обрезаются если прав не достаточно для полного просмотра. Это унификация интерфейса к БД, когда бэкэнд можно развернуть хоть на SQLite и тебе не придется ничего переписывать потому что соглашения вызовов внутри ядра соблюдены. Это рефлексия доступных классов/сервисов по всему приложению туда где они нужны, опять же сопряжено с уровнями и политиками доступа.
Это распределенное и параллельная работа нескольких копий ПО (разнесенных даже по сети) без блокирования друг друга.
Ах да, чуть не забыл... старые версии документа должны отображаться как и были, новые должны отображаться в новом виде и с новыми полями. Но теперь это боль в жопе у фронтэндеров, т.к. за касяки с рисованием форм уже им на орехи идут))
Ну и ресурсы не казенные, новый сервак никто не даст просто потому новая обнова требует ещё 5 гб RAM для выполнения кода.
А под всем этим ещё большая жопа: зоопарк операционных систем, фичи которых надо поддерживать.
А ещ большая начинается тгда когда один из dependancy прекратил существование и там нашли уязвимость, и теперь ты мой дорогой бэкэндер начинает мэинтайнить ещё один мини проект.
А то что вы описали, и правда делается минут за 5.
современный фронтенд мне кажется сложнее бэкенда.
Вы получаете прожёванную нямку которую осталось только в рот положить,
а то что там фреймворки во круг этого уже накрутили, ну так это уже другой вопрос :)
Конечно же много из того что я описал делается фреймворками, однако их все просто придётся знать.