dd

Автор: dd

  • Дочитана книга Артура Пантелеева

    Наконец-то дочитал "книгу" Артура Пантелеева из чата phpGeeks
    Книгой это очень сложно, конечно, назвать — это, скорее, компиляция множества тем, которые должен знать и понимать мидл-разработчик
    Иногда, там половина объявленых на странице тем вообще не раскрыта, но это очень хорошая отправная точка по бэкенду

  • Новое начало

    Сегодня первый день на новой работе
    Ощущения крайне странные, потому что это первый раз, когда весь процесс трудоустройства удалённый — с утра приехал курьер, привёз все доки и ноутбук
    Весь день знакомство с командой, различные встречи, выдача доступов
    С завтрашнего дня уже начнутся задачи как только доступ в гит выдадут и начнётся веселье
    Команда огромная — на дейлике было 25 человек 😀
    В общем, пока что я прям очень доволен

    Вот только когда подписывал доки мельком пробежался по NDA и не уверен, что много могу говорить теперь, вечером договор перечитать бы надо

  • Подборка статей про PHP

    Ловите подборку статей и видосов по пхп, в которых разбираются углублённые вопросы:
    1. Потребление памяти
    2. Iterable и их перебор
    3. Про сбор мусора (каюсь, сам пока не читал)
    4. Школа магии
    5. Увеличение скорости работы приложения
    6. PHP JIT

  • Оптимизация через прелоад цен

    Ура! Вечер прошёл не зря

    Перепробовав всё, я решил поставить везде таймеры и измерять суммарное время выполнения разных участков кода
    Оказывается, всё это время 95% времени отнимали простые, блин, селекты в базу

    Сделал прослойку, которая прелоадит все имеющиеся позиции прайса, чтобы делать выборку из памяти, а не из базы и всё полетело!
    Да, первичный импорт, когда в базе пусто, всё ещё не сильно радует, но повторный, с малым количеством изменённых данных — просто ракета!
    Можно спать спокойно, а завтра на дейлике кичиться своими достижениями😊

  • Страшный SQL-запрос

    Вот как выглядел сам этот страшнючий запрос😄
    ВНИМАНИЕ — НЕ ПОВТОРЯЙТЕ ЭТО ДОМА!

    Вообще, опыт безусловно охрененный, я люблю циферки и попугаев, поэтому кайфанул знатно от оптимизации, оставляя при этом код читаемым

  • Оптимизация

    Я увеличил скорость импорта прайсов в 3 раза!
    Звучит очень круто, да? А теперь reality check: вместо 480 секунд стало 320 секунд😩
    Да, результат всё ещё говно, хотя я за выходные всю голову сломал что ещё можно сделать
    Чтобы эти цифры выглядели не совсем плохими, поясню, что в файле импорта 37 тысяч записей, которые надо с кучей правил сложить в базу, при этом при появлении дублей по определённым полям, надо распихать значения в другие таблицы, чтобы их не потерять (так требует бизнес)

    Итак, что я пробовал и что выгорело:
    1. Группировка мелких запросов на апдейт в базу и отправка одним куском
    Это снизило время импорта на 1/6 просто потому что теперь вместо 15 запросов теперь уходил 1
    2. При нахождении полных дублей не делать запросов вообще
    При первичном кодировании этого функционала такой вариант развитий я не учёл; показания скорости после этого разнятся — где-то импорт ускорился в 3 раза, где упал до 0.9

    Что я пробовал и что сделало всё только хуже:
    1. Вынос функционала по сохранению дублящихся значений в отдельную команду и вызов через MessageBus
    Говно идея, скорость импорта упала в два раза на всех позициях просто хотя бы ввиду постоянного создания объекта
    2. Страшные sql-запросы, которые upsert'ят запись и тут же обновляют все другие записи, проставляя служебные поля новым айднишником
    Это вообще жуть — прайс, грузившийся за минуту стал грузиться 3 и более; причина простая — common table expression + update оставляют в базу в полнейшем шоке и она начинает тупить

  • Итоги собеседований и мутационное тестирование

    Подошёл к концу мой период хождения по собесам
    Никаких выводов пока не сделал, надо думать что делать дальше
    Могу сказать только то, что рынок существенно вырос
    Но как оказалось и я тоже вырос, хотя такое ощущение, что полгода хернёй занимался)
    Потихоньку буду обмозговывать и выкладывать сюда самые интересные знания, вытянутые из собесов

    На сегодня у нас мутационное тестирование — https://www.techtarget.com/searchitoperations/definition/mutation-testing
    Штука очень спорная, но от того не менее интересная
    Если был у кого-то опыт — буду рад послушать)

  • Как работает PHP по CGI

    Я зачем-то начал ходить по собесам
    Оправдываю это тем, что надо понимать где какой уровень и что надо прокачать
    Тем не менее, иногда вопросы правда ставят в тупик, хотя не должны бы
    Один из них — как работает пхп по протоколу cgi и что это вообще за cgi такой
    По сему вот статейка — http://xandeadx.ru/blog/php/866
    Очень рекомендую как прочтению как стартовая точка для изучения этой темы