Disclamer: Это моя вторая статья на Хабре. Я программист и литературно писать статьи (даже на техническую тему) у меня пока получается плохо.
Статья написана после очередной вакансии «PHP программист», в которой в обязанностях было все: дизайн, проектирование баз данных, логика, верстка…
Есть люди с двумя типами
И те, и те люди важны и нужны! Кроме, наверное, тех кто работает над дизайном в Microsoft — этот кубический интерфейс просто ужасен.
Приложение без хорошего интерфейса нужно только ИТшникам, да красивейший интерфейс к кривой программе — вызывает отторжение у пользователя.
Так рассмотрим очень общую структуру приложения (программы, сайта):
1) Интерфейс (фронтенд) — это то, что видит пользователь. Для него это и есть программа, на нем она для него и заканчивается. Фронтенд просто обязан быть красивым и удобным.
2) Логика (бекенд) — это сама программа. Ее видит только программист (или команда программистов) и хакеры.
3) Хранение данных — в хороших приложениях данные отделены от логики приложения.
Веб-приложение (или сайт) большинством людей воспринимается как единое целое (1+2+3)
В этом частично виноваты фреймворки реализующие паттерн MVC (говоря проще, они реализуют данное разделение на 1,2 и 3). Если 2 и 3, как правило разделены хорошо и удобно, то 1 и 2 — нет.
Объясню: 1 — это визуализация приложения, то есть предпологается, что там будет только, то что работает на стороне клиента (в браузере). На деле же в коде часто можно увидить нечто вроде: <?php echo"$obj->var"; ?>
Почему это плохо — это тема отдельного разговора. Вкратце могу сказать, что каждый <?php echo «something»; ?> — это запрос к серверной части приложения. А если она на другом сервере и между серверами слабый канал, то можно получить очень не хилый сетевой оверхед.
Для нас имеет значение то, что в фронтенде много «программерского» кода.
Мне кажется, именно поэтому когда ищут «программиста PHP», хотят найти «Верстальщик, программист JavaScript, архитектор баз данных, программист PHP и иногда UNIX-админ»
А когда объясняешь людям, что человек либо будет заниматься всем сразу, но все делать хреново, либо он будет только кодировать, но делать это очень хорошо, то иногда люди сильно удивляются этому.
Нам же как всегда надо, чтобы все сразу и все хорошо. А это, как правило, стоит очень дорого и явно не входит в рамки вакансии «PHP-программист».
Удивляет не то, что люди хотят найти человека, который «все знает, все умеет», а то что людям в погоне за экономией на зарплате, часто все равно на конечный продукт. Иначе они бы предпочли вариант: несколько человек, но каждый ас своего дела!
Хочется найти ответ на вопрос: почему в мире разработки под Web сложилась такая ситуация?
И еще вопрос: Как с данным вопросом обстоят дела в других языках и областях программирования?
Автор: XRay39