JavaScript

Почему веб разработчики делятся на frontend и backend?

Я то думал, чтобы считаться веб девелопером - надо уметь писать как серверную, так и клиентскую часть, уметь создавать сайт с нуля своими силами. Так зачем это разделение? Да, я понимаю, что там и JavaScript и PHP и фреймворки к ним, и языки разметки и стилей надо выучить и базы данных. Но именно на этом всем и держится сайт, все взаимосвязано - как можно писать клиентскую часть, при этом не подозревая, как работает серверная часть?
Раздиление идёт для увеличения скорости ели один программер может создать всё то при этом скорость теряется а крупной компании с большим объёмом работ это не приемлемо. Причём каждый специалист хорош в своём деле хотя по нынешним требованием компаний ты должен знать всё эта вовсе не означает что этим всем ты будешь заниматься одновременно при этом и кпд теряется работников. Но каждый работник должен иметь хоровое представление и если надо хоть как то уметь подменить коллегу.

Виталий Троцкий
Виталий Троцкий
93 833
Лучший ответ
Потому что этих "своих сил" и опыта + знаний, на фуллстак хватает далеко не у всех. Это уровень программного архитектора. Сложно найти такого универсала (который РЕАЛЬНО может и хочет выполнять функции двоих-троих мидлов), и очень сложно ему угодить. Гораздо проще найти несколько более дешевых узкоспециализированных сотрудников, и без проблем их заменять, при необходимости (не парализуя общий процесс работы).
Разделение введено и форсится именно работодателями, это следствие ситуации на рынке труда. Как верно пишет Голова Робота, все разработчики в какой-либо степени универсальны, ведь невозможно стать квалифицированным специалистом без понимания всей системы в целом, а также функций и принципов взаимодействия ее составляющих.
Ромыч Иванов
Ромыч Иванов
83 623
Крупные проекты всё равно пишет несколько человек. Все веб-программисты в какой-то степени умеют делать веб-сайт целиком. Frontend и backend существенно отличаются, поэтому есть специализация.

Любой программист пользуется сервисом операционной системы, но мало кто участвует в создании ОС. Аналогично frontend-программист пользуется сервисом, который создаёт backend-программист.
backend разработчик предоставляет api, как его вызывать и документацию, далее все дело в фантазии frontend разработчика
А одному и нет необходимости знать как работает другой. Сам подумай, если ты франт энд разработчик, и тебе нужна конкретная функция на сервере, какая тебе разница как она будет реализована? Все что тебе нужно знать это как ею пользоваться -- ее апи.

Быть full stack разработчиком это очень объемная задача, и чаще всего нецелесообразно заниматься всем одному. Особенно для заказчика вообще без разницы кто чем будет заниматься. Программисты каждый специализируется на чем то одном, чтобы быть лучшим в этом. И в каждой области возможости действительно безгранично. Даже если брать просто поддержку баз данных, там есть очень сложные решения, учитывающие разные момент.

И речь идет о крупных проектах. В более маленьких проектах возможно и действительно лучше делать все самому, хотя и тут вопрос спорный. И кстати ИМХО разные там CMS и там джанго маджанго как раз призваны упростить работу какого-то момента. Там реализованы сложные моменты и вопросы безопасности, и поэтому не нужно нанимать спеца.
Александр Ли
Александр Ли
8 545