Бэкенд разработка, это как прийти на какую-то землю, где вас просят сделать здание (от домика на PHP, до дубайской высотки на go), вы изучаете почву, ландшафт, погодные условия и оказывается вы в целом находитесь в тех же условиях что и раньше, а значит можете, применяя накопленный опыт, чирпичик за чирпичиком начать строительство
Если без метафор, на бэке у тебя будут: ос -> сети -> рантайм -> твой код – ну, может, еще немного уровень виртуализации (docker-like) и это почти все слои которые тебе надо знать, чтобы писать суперсложные программы
При этом каждый из этих уровней стабилен уже годами и даже десятилетями, поэтому, выучи ты в 2010-ом TCP/IP + Linux + VM + C / C# / Java / ... впади в спячку на 10 лет и когда ты проснешься, тебе понадобится пару месяцев чтобы немного покапать новые кишки и ты можешь сесть писать современные приложения
А фронтенд, это когда вас просят построить такой же дом, дают на выбор 1000 готовых конструкторов домов, куски уже почти готовых домов (которые друг с другом не стыкуются), при этом строить вам придется не на земле, а в центре океана, в котором обитают миллионы "подводных камней", а сам океан наполовину из кислоты, а на вторую из дерьма
. Браузер – это рантайм (самого браузера), в которых запихнули рантайм целого языка (Экзибит-стайл). И каждого браузера свой рантайм, но слава тебе господи, хотябы рантайм JS теперь только V8 или WebKit.
По факту фронтенд разработка происходит в sandbox, по правилам этого sandbox, которых во-первых миллиард, а во-вторых за которые не выйти. Любой разработчик осознавший это покрывается потом и депрессией.
На бэке рантайм может быть написан на самом же языке (например, рантайм go, написан на go), а значит вы можете прочитать и понять рантайм, а в некоторых ситуациях рантайма вообще нет (например, rust).
. UI либы – их слишком много, они постоянно меняются, их кишки очень сложные и самое ублюдское, что они стали обязательной частью разработки. Пройдя через js -> jquery -> backbone -> angular 1 -> vue -> angular 2 -> react я с уверенностью могу говорить: писать без UI либ – это просто ад.
Да, на бэке тоже есть framework-и, но кроме того, что большинство из них также годами уже устоялись, так ко всему прочему ты абсолютно спокойно можешь обойтись без них (а лично я считаю их антипаттерном)
. node_modules – ситуация, когда шутка "твоя мамаша настолько жирная" не работает, потому что твой node_modules всегда жирнее
Сколько же блять говна он за собой тянет... фронтенд покрылся таким жирным слоем библиотек, что когда пытаешься собрать даже самый минимальный проект ты понимаешь, что ты вообще не способен контроллировать что в него подтягивается
А бэке может хватить самого языка: в go вшиты http сервер, логгер и sql, поэтому, по факту, вы можете наклипать проект БЕЗ ЕДИНОЙ БИБЛИОТЕКИ
. Компиляторы – для того, чтобы собрать фронтенд проект, написаны программы, сложнее любого из этих фронтендов... не так давно придумали даже отдельный язык, чтобы писать JS компиляторы (вы знаете о чем я 😯)
Да, есть языки, которые славятся своими компиляторами (Java, С), но ей ты блять богу, они даже близко не стоят со сложностью сборки проекта формата "Hello world" для фронтенда
Если ссумировать
Чувствую, что я могу еще долго гнать эту телегу, поэтому в итоге:
На фронтенде уровень контроля падает просто в 0 и вернуть контроль не получится, потому что кол-во знаний для этого каждый день экспоненциально растет вверх.
А на бэке этот контроль практически полностью в ваших руках, что позволяет качественно расти постепенно, залезая в каждую отдельную детерминированную глубину.
Я думаю, это одна из причин, почему те, кто от фронта ушел в бэк не хотят возвращаться. Для меня это точно так.
V
Vassiliy ИТК Kuzenkov
2023-12-09 11:30
В целом, во фронте сейчас также можно собрать свой мини-велосипед и дальше ехать на нем лет 5+. Сейчас кажется там сильно по-спокойнее, ну или у меня среда такая, где хайп дривен не работает. Из реально крутого, что по индустрии расскатилось за последние года 3 ну FSD, стейт менеджеры, пачка удобных фич в CSS, которые раньше в препроцессорах жили.
Но в целом экосистема фронта проклята. Я фулл фулл стек и с 5+ лет работы на фронте туда стараюсь как можно реже возвращаться ) ток туллинг пердолить
N
Nikita ИТК
2023-12-09 11:37
Почему фреймворк на бэке это антипаттерн?
F
FatShibe
2023-12-09 11:51
Полностью согласен, я как бэк до сих пор не разобрался в этом ебучем вебпаке и вайте, не разобрался как писать тесты, и прочее и прочее
К
Ксюша Юка
2023-12-09 12:35
а что почитать/посмотреть, чтобы эти ручки делать и поля добавлять? мы с тобой когда-то это обсуждали, но забылось)
🦾
🦾 IT-Качалка Давида Шекунца 💪
2023-12-09 12:38
Да, прости, все никак нет времени заняться этим вопросом :(
Я попробую сформулировать ввиде отдельного поста, что можно было бы сделать, чтобы двинуться в сторону бэка
🦾
🦾 IT-Качалка Давида Шекунца 💪
2023-12-09 12:46
Потому что несложно получить все тоже самое при этом ничего не потеряв
Фреймворк хорош, когда сам только учишься структурировать бэкенд приложения или планируется найм команды около джунов
При наличии хотябы одного опытного разработчика любая команда сама под себя собирает нужные ей инструменты и может сделать из этого внутренний "фреймворк" отвечающий ее потребностям
Такие внутренние "фреймворки" могут быть даже распространенны на множество команд и в них все затачивается под конкретные потребности проекта и особенности инфры
🦾
🦾 IT-Качалка Давида Шекунца 💪
2023-12-09 12:50
Из интересных "framework" которые я видел, это, например, Akka или Dapr
Но во-первых, оно выходит далеко за рамки просто структуры кода, а во-вторых, если вы достигли потребности таких сложных решений, то я бы или либо в команде человека, который знает кишки этих решений, либо имел человека способного повторить такие решения, но с заточкой под конкрентую задачу
Чаще всего, нам приходилось просто изучать как они устроены внутри и подтачивать под наши потребности
V
Vassiliy ИТК Kuzenkov
2023-12-09 14:31
Еще есть кейс про «быстро и сердито». На клей между либами всегда какое-то время уходит. Для типичного вебчика лучше RoR’а так ничего и не вышло ).
A
Arthur G
2023-12-09 17:28
Фреймворк завязывает на себя. В начале вроде процессы хорошо идут, а потом всё в ком превращается. А назад дороги нету. И как бы все плачут в тихую.
A
Arthur G
2023-12-09 17:35
По моему ощущению, вообще ничего не меняется. Какие-то проекты появляются, но они из разряда "новый апи" для старого.
Контроль получить легко, но никто этого не желает.
A
Arthur G
2023-12-09 17:40
Тот же FSD, по сути, это та же слоистая архитектура со всеми проблемами, но коллеги как будто с пеленой на глазах.
D
Dmitry Shvalyov
2023-12-09 22:57
25 лет на фронтенде - полёт нормальный.
D
Dmitrij IT-Качалка Malakhov
2023-12-11 10:19
Как фронтендер со стажем, вкатившийся в лайтовый фулстек, по опыту разных проектов могу сказать что вся гонка с новыми тулзами и решениями выглядит как «FOMO обыкновенный» Рассмотрим несколько примеров: 1. Работаешь на корп проекте годами, страшна что на рынке куча всего вышло, что хз как догонять. Нужно догонять сейчас? Если на том же проекте, то нет, опыт работы конкретно с ним будет важнее знания всех новинок. Выход на новую работу - там точно будет не все новое. Есть минимум, в который нужно будет погрузиться, хуки в реакте например (и то им сколько лет уже), остальное по факту онбординга, все знать невозможно
2. Если ты лид, знать новые штуки полезно, как минимум для того, чтобы понять, стоит ли затащить ее в проект, даст ли это преимущество, или опять шляпа какая. И для того, чтобы аргументированно отговаривать зеленых которые хотят втащить все новое Наверное это один из немногих кейсов где быть в курсе полезно
В остальном работайте с тем что знакомо, и не ищите себе проблем изучая новое если вам это не нужно Знания свелте, солида, и прочих новых технологий вам не обязательны если вы пишете на реакте
D
Dmitry Shvalyov
2023-12-11 11:30
Кто такие зелёные пытающиеся втащить всё новое? 🤔
D
Dmitrij IT-Качалка Malakhov
2023-12-11 11:31
главные адепты хайп-дривен-девелопмента, как правило миддлы, но когда как
D
Dmitry Shvalyov
2023-12-11 11:36
Прекрасно. Раньше втащить было проще, я помню когда вот только вышел jQuery и его начали засовывать везде - сначала с осторожностью, а потом со скоростью болида во всё что двигается (и не двигается). Пару лет назад я пытался осознать GraphQL, хорошая же вещь, но как начал разбираться то решил, что так легко не отделаешься и скорее всего в 9 из 10 случаев оно и не нужно. Потом был Vue, где мне повезло обойти его стороной полностью даже не притрагиваясь. Вот сейчас хайп на NextJs. Но сейчас это очень объёмные вещи и вряд ли получится взять и засунуть их в работающий проект потому что модно!