Вы решили, что хотите стать front-end разработчиком и работать на стороне клиента?

Или, может быть, вы предпочитаете быть внутренним разработчиком и кодировать бизнес-логику на стороне сервера?

Если вы похожи на большинство начинающих программистов, вы, вероятно, еще не совсем уверены в разнице. Когда я объясняю это своим ученикам, мне нравится использовать Аналогию с рестораном.

Интерфейс (на стороне клиента)

Представьте, что вы заходите в ресторан и вас радостно встречает хозяйка. Она протягивает вам красиво оформленное меню, объясняющее ваши варианты, пока проводит к безупречному столику. Когда приходит ваша еда, она идеально приготовлена ​​и аккуратно разложена на вашей тарелке. Вся презентация оптимизирована для вашего удобства, и детали подготовки не видны вам.

Это аналогично внешнему коду, который вы видите, когда посещаете безупречно выглядящий веб-сайт или открываете приложение Uber на своем телефоне и замечаете его чистый внешний вид. Внешний интерфейс должен взаимодействовать с сервером в ключевых точках для передачи данных (например, когда официант приносит ваш заказ обратно на кухню), но внешний интерфейс в первую очередь отвечает за представление этих данных в client (ваш веб-браузер или телефон). Внешний код, который вы видите на веб-сайте, почти всегда будет представлять собой комбинацию JavaScript, HTML и CSS. В мобильном приложении это может быть JavaScript, Swift, iOS или Java.

Бэкэнд (на стороне сервера)

Возвращаясь к нашему месту за столиком, представьте, что вы только что сказали официанту, что хотите заказать. Официант записал вашу просьбу в свой блокнот, и теперь он идет на кухню, которая скоро будет скрыта от вас. Если бы вы могли заглянуть внутрь кухни, вы бы увидели, как официант вырезает детали вашего заказа на строчку. Рядом пламя на гриле обжигает ряд гамбургеров, а шеф-повар руководит операцией, делегируя задачи своим поварам. Консервы достаются из холодильника, готовятся и, наконец, накрываются. Когда блюдо готово, тарелку наконец приносят из кухни покупателю, который понятия не имеет, что творится за распашной дверью, но очень доволен результатом.

Работать на кухне (или руководить ею) - вот что значит работать над внутренним кодом. Ваша работа движет бизнесом, и вы должны быть озабочены такими проблемами, как хранение данных (версия холодильника в мире кодирования) и обработка грузов. Сколько серверов (поваров) должно быть доступно во время пикового трафика? Как можно минимизировать затраты на инфраструктуру в непиковое время? Как можно оптимизировать взаимодействие с клиентской частью? Это вопросы, на которые учится отвечать back-end инженер.