Об оверхеде, который накладывает фреймворк на любые решения. Это как планка, выше которой прыгнуть не получится :) Для каких-то проектов это не критично, но там, где по условиям техзадания вызов API должен гарантированно укладываться в 1мс, а оверхед фреймворка на обслуживание такого вызова выше, придется искать другие варианты.
Но в целом согласен с вопросом и планирую дополнить раздел тестов более-менее реальными кейсами «сходить в базу» и «отрендерить HTML шаблон». Для себя тестиовал поведение Comet с PDO и Eloquent — последний оказался в два раза медленнее на простых вставках в базу.
Монументальный труд, спасибо :) Кстати, судя по бенчмаркам, обычный синхронный код в языках без проблемы GIL (PHP / Go) работает на подобных задачах не хуже (производительность + латенси), чем завернутый в асинхронные библиотеки Python (или тот же NodeJS).
Интересно мнение о том насколько такой модуль в связке с Nginx может быть лучше или хуже чем RoadRunner — как я понимаю, и там и там общая часть приложения инициализируется один раз при загрузке.
Именно. Переписать реальный проект на Swoole — это дикий оверхед. Перепрыгнуть на RoadRunner довольно просто а возможный выигрыш в скорости — на порядок вверх
Вангую, что в Москве живет значительная часть читателей Хабра, которые примеряют ваш рассказ на себя, так что вполне нормально сравнивать именно с ней в комментариях :) С этой колокольни сужу и я — пожить пару лет в Ирландии интересно и полезно, но в долгосрочной перспективе однозначно предпочел бы остаться в Москве.
Ого! Спасибо за шикарный материал, очень трезво и нейтрально. Всегда мыслил об Ирландии в более радужных тонах. Кстати, рекомендую прочитать о кризисе в Ирландии в книжке «Бумеранг». Возможно, до кризиса было больше позитива.
Автор, вы упустили очень важный момент в своих выкладках. Все программные проекты, за которые платят деньги, можно (довольно условно) поделить на системные и прикладные.
Если вы пишете сложный системный проект вроде высокопроизводительного драйвера для СУБД — вы просто должны быть синьором в определенном языке, протоколе взаимодействия и прочих вещах. Погрузиться с головой в детали. Бывает, что на это требуются годы.
Когда вы работаете с проектом в прикладной области (екоммерс, веб, мобайл) — вы пользуетесь наработками системных кодеров и здесь скорее полезнее иметь общий кругозор и просто следовать лучшим практикам, которые принято использовать в рамках данного фреймворка, библиотеки, стека. Если кругозор уже есть, погрузиться в эти нюансы не так сложно, за пару месяцев вполне можно. На уровне миддла вы будете писать продукты примерно того же качества, что и синьор.
Выбирать можно любой путь, я бы не стал оценивать, кто круче или где интереснее работать. На этом шарике размер чека зависит не от визитки Senior / Full Stack, а скорее от сферы работы, компании и стека. На данный момент самыми дорогими техническими спецами в ИТ вообще являются девопсы.
Значит, интересы вашего работодателя идут вразрез с вашими, если вы не планируете работать на одном месте всю жизнь, как японцы :) Брать отгул не обязательно — в зависимости от графика работы, можно договориться на собеседование ДО или ПОСЛЕ работы, либо ВМЕСТО обеда по Skype.
ОК, понял про Дейта. Она уже есть у меня в бумаге, но сейчас я лучше потрачу время на что-то более практичное и ценное в работе вроде рекомендованных здесь книг :)
Спасибо за конспект! Рекомендованной в посте книжки нет в продаже, а вот кто подскажет, насколько актуальна сейчас книга Дейта «SQL и реляционная теория. Как грамотно писать код на SQL»? Что вообще читать по базам в 2018?
Чтобы иметь адекватную оценку себя на рынке, надо просто регулярно ходить на собеседования, вот и все :) Профилактика застревания в своем болотце, вроде как зубы чистить по утрам. Многие собеседующие будут задавать довольно неадекватные вопросы — здесь не надо спорить, вы этого человека видите первый и последний раз в своей жизни. Многие завалят на довольно важных вещах — вот их и стоит проработать плотнее в ближайшие 2-3 месяца. Когда вас будут звать на адекватную зарплату в адекватные компании в 20%-30% случаев — значит, вы хороши и адекватно себя оцениваете. Если зовут реже — надо подтягивать знания и опыт. Если чаще — похоже, вы мало просите :)
Интересный тренд. На пленку сейчас фотографирует молодежь и хипстеры, потому-что модно и винтажно, или появился и спрос на профессиональном рынке? Журналы, свадьбы?
Да, очень верное замечание. Своя собственная страничка на домене с летящим снегом замотивирует продолжат гораздо сильнее, чем ферзи на доске :) Я писал разные анкеты на первых порах, в духе опросников интроверсия / экстраверсия.
Но в целом согласен с вопросом и планирую дополнить раздел тестов более-менее реальными кейсами «сходить в базу» и «отрендерить HTML шаблон». Для себя тестиовал поведение Comet с PDO и Eloquent — последний оказался в два раза медленнее на простых вставках в базу.
github.com/rryqszq4/ngx_php7
По бенчмаркам TechEmpower легко обходит Swoole, Workerman, Load Runner и даже (неожиданно) LuaJit и фреймворки на Go.
github.com/spiral/roadrunner
Если вы пишете сложный системный проект вроде высокопроизводительного драйвера для СУБД — вы просто должны быть синьором в определенном языке, протоколе взаимодействия и прочих вещах. Погрузиться с головой в детали. Бывает, что на это требуются годы.
Когда вы работаете с проектом в прикладной области (екоммерс, веб, мобайл) — вы пользуетесь наработками системных кодеров и здесь скорее полезнее иметь общий кругозор и просто следовать лучшим практикам, которые принято использовать в рамках данного фреймворка, библиотеки, стека. Если кругозор уже есть, погрузиться в эти нюансы не так сложно, за пару месяцев вполне можно. На уровне миддла вы будете писать продукты примерно того же качества, что и синьор.
Выбирать можно любой путь, я бы не стал оценивать, кто круче или где интереснее работать. На этом шарике размер чека зависит не от визитки Senior / Full Stack, а скорее от сферы работы, компании и стека. На данный момент самыми дорогими техническими спецами в ИТ вообще являются девопсы.