Рубрика «php» - 45

Всем привет. Эта история началась 10 лет назад, когда разработчики сайтов только начали использовать XmlHttpRequest, длилась все эти годы и наконец подошла к завершению. XmlHttpRequest мы использовали немного не так, как его используют все, и теперь хотим поделиться многолетним опытом работы и её результатами. Тема большая, очень многое будет недосказано, но я не могу заранее предположить все вопросы и ответить на них в одной статье. Только на нижеприведённый текст ушло больше недели, возможно лучше и быстрее будет отвечать в комментариях на вопросы, если конечно статью опубликуют. В нашем скромном коллективе меня выбрали писателем этой статьи, я долго отказывался, но в итоге пришлось согласиться, никто больше не хочет. Меня можно сказать заставили.

Читать полностью »

Производительность PHP: планируем, профилируем, оптимизируем - 1

Привет! Два года назад мы писали о том, как перешли на PHP 7.0 и сэкономили миллион долларов. На нашем профиле нагрузки новая версия оказалась в два раза более эффективной по использованию CPU: ту нагрузку, которую раньше у нас обслуживали ~600 серверов, после перехода начали обслуживать ~300. В результате на протяжении двух лет у нас был запас мощностей.

Но Badoo растёт. Количество активных пользователей постоянно увеличивается. Мы совершенствуемся и развиваем нашу функциональность, благодаря чему пользователи проводят в приложении всё больше времени. А это, в свою очередь, отражается на количестве запросов, которое за два года увеличилось в 2—2,5 раза.

Мы оказались в ситуации, когда двукратный выигрыш в производительности нивелировался более чем двукратным ростом запросов, и мы опять стали приближаться к пределам нашего кластера. В ядре PHP снова ожидаются полезные оптимизации (JIT, предзагрузка), но они запланированы только на PHP 7.4, а эта версия выйдет не раньше, чем через год. Поэтому трюк с переходом сейчас повторить не удастся — нужно оптимизировать сам код приложения.

Под катом я расскажу, как мы подходим к таким задачам, какими пользуемся инструментами, и приведу примеры оптимизаций, идей и подходов, которые мы применяем и которые помогли нам в своё время.
Читать полностью »

Анонс Moscow GraphQL Meetup - 1

27 ноября 2018г. на Мансарде Rambler&Co состоится первый Moscow GraphQL Meetup. Приглашаем всех разработчиков пообщаться о технологии и обменяться опытом.
Читать полностью »

Ускоряйте тесты, говорили они.

И вот уже прошло почти полгода, как мы переписали свои старые необтёсанные, долгие и не стабильные функциональные тесты и перешли на быстрые, ни от чего не зависящие компонентные. Поэтому, пора делиться :)

Для тех кто не знает, компонентные тесты — это тесты которые полностью изолированы от глобального окружения и позволяют проверить те или иные кейсы, которые unit тест не смог бы охватить.

Полгода назад релиз какой-либо фичи, бывало занимало больше часа с учетом того, что код уже давно на мастере и полностью проверен, но мастер ветка никак не может добиться зеленой сборки в bamboo и тогда, встал вопрос, как дальше жить?
Читать полностью »

Продолжаю серию конспектов с HL2018. В проверке этого конспекта мне помогали ребята из Badoo (Владимир Янц vyants и Николай Крапивный), за что им большой спасибо. Надеюсь, это положительно сказалось на качестве донесения идеи доклада.

image
Читать полностью »

Большая конференция NIXMultiConf (Харьков) - 1

Мы знаем, насколько вы заняты.
Мы знаем, что вы не любите неструктурированную информацию и попытки выдать уже неактуальный материал за конфетку.
Мы знаем, что среди участников наших мероприятий есть ребята, которые еще не определились с языком программирования, но очень хотят «войти в айти», а потому стараются посещать все конференции отрасли.

А еще мы много чего знаем в IT и делимся нашими знаниями вот уже больше 6 лет. Только представьте, первая конфа — ThinkPHP #1 — в линейке Никсовых конференций прошла 30 мая 2012-го! Да-да, это когда доллар был по 8, а айтишников только привыкали называть айтишниками, а не компьютерщиками :).

С тех пор мы обросли 8 направлениями, провели 35 конференций, презентовали около 105 докладов, ответили в среднем на 315 вопросов из зала, совершили 2 переезда на новую локацию, и вот теперь готовы не только к залу побольше, но и к формату поудобнее.

В ноябре, а именно 18 числа, мы проводим большую Никсовую мультиконференцию. ThinkPHP, Sync.NET, ThinkAndroid, WordPress Kharkiv, RubyRoars, ThinkPM — все эти направления в один день, на одной площадке, на одной волне.
Читать полностью »

PHP-Дайджест № 143 (1 – 12 ноября 2018) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: принят PSR-18, статистика версий PHP от Packagist, анонсы митапов и карта митапов, PHP 7.3.0RC5 и другие релизы, порция полезных инструментов, о будущем PHP-дайджеста, и многое другое.
Приятного чтения!

Читать полностью »

Middleware и возможности Pipeline в Laravel - 1

Laravel — это поистине большая и сложная система, которая старается решить большинство бытовых задач веб разработчика максимально элегантным способом и собрать в себе как можно больше инструментов и, что очень важно — с как можно более человеческим интерфейсом.

И сегодня речь пойдет об одном из таких инструментов, а точнее о его использовании и реализации со стороны программиста. Отсутствие полноценной документации, а также отсутствие русскоязычных статей и очень малое количество статей иностранных — подтолкнуло меня к решению раскрыть некую завесу тайны об этой интересной возможности фреймворка и выбору этой темы в качестве моей первой статьи на Хабре.
Читать полностью »

Здравствуйте, друзья! Появление популярного менеджера зависимостей в PHP — является одним из важнейших событий в жизни PHP-сообщества. Composer разделил время на "до" — когда наши самописные библиотеки лежали в zip-архивах или просто разбросаны по папкам и копировались "ручками", лишь в единичных случаях, использовался git или PEAR, и "после" — когда мы начали использовать composer. Но что делать если вы работаете с определенной CMS, а она не "знает" что такое composer?

Читать полностью »

Я — виндузятник и всячески увиливаю от окончательного перехода на Linux на своём PC не смотря на все его преимущества. Поэтому последние пару лет для создания локальных площадок под проекты использовал Docker for Windows. Не сказать что штука сверхстабильная, но существенных проблем не вызывала, пока на одном проекте на Laravel площадка не стала вести себя странно: часть запросов (и всегда разная часть) возвращались с ошибкой. Скрипт не мог открыть файл кэша.

Бесполезно потратив изрядное количество времени на поиск причины решил в данном случае отказаться от Docker и развернуть площадку под WSL в ручном режиме.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js