dd

Автор: dd

  • Мем дня

    Ну и на злобу дня 😀

  • Ещё про парсер

    Прошло 8 дней с того момента, как я начал делать парсер по работе. Вроде бы всё не сложно, но количество вариаций параметров в названиях продуктов просто заставляет застрелиться.
    За прошедшую неделю я пересмотрел около 200к названий разных товаров и выделял из них куски, которые можно стянуть.
    Додумался использовать генераторы, чтобы не жрать память как не в себя.
    Оптимизировал регулярки, чтобы всё работало приемлемо быстро. Сейчас файл с 97к вхождений парсится и складывается в базу за 2 минуты 22 секунды. В принципе, неплохо, но можно гораздо лучше, если даже хотя бы не использовать экстракторы данных, не относящиеся конкретно к этому типу товаров. Например, при парсинге очков нам не нужен экстрактор веса, объёма и формы выпуска и наоборот — при парсинге таблеток нам ни к чему искать в названии диоптрии.
    Вообще, мне кажется я бы в жизни столько не узнал о регулярных выражениях, если бы не этот проект. Кажется, сейчас я просто бог регулярок и это хорошо — знания крайне полезные, потому что обычно регулярки вводят людей в ступор.
    Дальше работа будет заключаться только в добавлении новых правил для пред- и пост-обработки названий товаров для упрощения поиска.

  • Время посмотреть

    О разнице между ООП и функциональщиной и почему нельзя прибегать строго к одной парадигме, а брать лучшее от всего: — https://youtu.be/Ly9dtWwqqwY

    Чел вообще много спорных тем затрагивает, интересно послушать и подумать

  • Я никогда не писал парсеры…

    До сегодняшнего дня)
    Ну ладно, не парсер, а токенайзер, но тоже дело хорошее
    Суть задачи в том, чтобы получая на вход название любого товара разбить его на токены для дальнейшего поиска похожих по названию и хар-кам товаров
    В помощь мне был ютуб и интуиция. Ютуб выручал больше, нашёл какой-то простенький курс об азах азов парсеров
    Тимлид сказал не заморачиваться слишком сильно, но при этом также звучали слова типа "расширение", "будущее" и подобное. Стало понятно, что это будет не одноразовый сервис внутри компании, поэтому пришлось подойти к вопросу со всей строгостью.
    Вообще, это первый раз, когда я прям серьёзно столкнулся с регулярками. Опыт не самый хороший, они заставляют поломать голову, но как-то удаётся правильно написать выражение — работает как часы.
    В итоге спустя почти день работы я получил результат, где из 97 позиций не обработались только 5-7. Под этим я подразумеваю, что я уже просто хочу спать и не захотел писать ещё обработчики строк.
    В общем, этот проект меня сильно взбодрил, я давно не был так рад посидеть поработать, даже допоздна. Пробудился некий юношеский азарт и максимализм, это хорошо, значит помирать ещё рано😃

  • Рефакторинг

    Вчера и сегодня провёл за рефакторингом всей кодовой базы новой итерации приложения на работе
    Немножко устал, мягко говоря, но:
    1. Теперь всё красиво лежит по папочкам
    2. Обвязка графкла минимальна и для описания новых сущностей теперь есть удобный интерфейс
    3. Перепроверил все тесты, переписал покрасивее моки
    В общем, не работа, а благодать
    Осталось понять как сразу так писать, чтобы потом рефакторить не пришлось коммитами по 300 изменённых файлов😃

  • PHPCSFixer против PHPStorm

    От поддержки JetBrains поступил по поводу использования PHPCSFixer в качестве форматтера

    Вот в PHPStorm почти всё прекрасно, но кто из разрабов подумал, что отличным алгоритмом форматирования будет следующее:
    1. Применяем правила шторма
    2. Применяем правила сторонних форматтеров
    3. СНОВА ПРИМЕНЯЕМ ПРАВИЛА ШТОРМА???
    DX от бога, спасибо
    Похоже, придётся выкинуть из пайплайна phpcsfixer и хранить в гите стили кода из ide😩

  • Шёл четвёртый день стационара

    Сегодня я решил, что мне очень интересно начать делать моды для майнкрафта, тем более что идея зрела очень давно
    Не смог найти хороший мод, который бы просто мне показывал текущие координаты в верхнем левом углу. Видимо, никому не надо такое, но мне надо прям очень
    Поэтому вооружившись ютубом, полез смотреть гайды как делать моды и вот спустя 2 часа я вывел себе координаты на экран
    Задача оказалась тривиальной — api для моддинга майнкрафта довольно простой и понятный, по крайней мере для тех мелочей, которые мне нужны
    Под капотом какой-то магией запускается клиент майнкрафта и грузятся моды. Я если честно вообще ума не приложу как это всё работает. Люди, которые занимаются разработкой игры и лоадеров модов — гении, не меньше
    Залил на гитхаб, зарелизил и залил ещё на curseforge.com, посмотрим, одобрят ли.

  • CI-пайплайн ловит плохой код

    Несмотря на все эти тупые мелочи я получил что хотел — пайплайн теперь ляжет, если твой код хреново отформатирован или там есть забытые артефакты в виде неиспользуемых импортов и так далее. Крайне удобно, особенно учитывая, что в скором времени над проектом буду работать не я один. Будет за что чморить на ревью 😀

  • Code Style

    Стало скучно, решил на рабочем проекте запилить нормальный код-стайл с интеграцией в ci/cd
    Самым ходовым вариантом является PHPCSFixer и честно говоря я немножко задолбался мирить их со штормом
    Шторм в 98% процентов случаев соглашается с фиксером, но в остальные 2 процента просто забивает и делает по-своему }:[
    В доке шторма прям уверяют, что фиксер хорошо интегрится и работает наравне, реагируя на всякие горячие клавиши форматирования кода и прочее. Хорошо, я верю (нет).
    Перед коммитом выставлены галки на форматирование и чистку кода, но в итоге коммит улетает в гитлаб и через пару минут я вижу сломанный пайплайн, потому что оказывается ничего из этого не произошло
    Ну ничего, с танцами и бубном донастраиваю форматирование шторма, чтобы оно подходило под фиксер, вроде пока работает, посмотрим как дальше будет
    Завёл даже пост на реддите с вопросом мол чё за херня, это я дурак или лыжи не едут?

  • Курс по чистой архитектуре в стационаре

    Благодаря военкомату сейчас чилю в стационаре, подтверждаю болезни (хз что там подтверждать, мед карта толще, чем моя рука)
    И вот спустя почти год я наконец-то нашёл время посмотреть данный замечательный курс
    Там есть всё на что пускают слюни зумеры (@artemmarenkoff) — чистая архитектура, DDD, CQRS
    Если серьёзно, то видео очень хороши. Крайне дотошно объясняются различные подходы к построению приложения с данными принципами и разъясняется какой из подходов будет самым оптимальным.
    Там 18 видео, за раз посмотреть будет тяжко (у меня время к счастью позволяет), но каждый день по видосу — самое то. Дозированно и полезно.