dd

Рубрика: Разработка

  • Купил Docker, шутка

    Купил сегодня докер, пацаны
    Классная штука, советую👍🏻
    Docker no cap🧢

  • Игра в девопса

    Настал момент после 3 месяцев разработки, когда пора показывать собственникам компании результат нашей работы по новой итерации продукта и пускать её потихоньку в прод. Для этого мы даже отдельный сервер выпросили. Всю настройку отдали мне, это были хорошие времена — я получил возможность в рабочее время прибраться в проектах по части деплоя и изучить поглубже эту тему.

    Первой задачей было привести конфиги к единому виду, чтобы при разворачивании проекта где угодно необходимо было создать минимальное количество локальных конфигов, будь то .env или docker-compose.override.yml. Из трёх проектов только в одном локальный конфиг получился больше 10 строк. В остальных двух это максимум 3-5 строчек. Приемлемый результат, хотя до zero-config ещё расти и расти.

    Второй задачей было поднятие раннеров для ci/cd. Мы сидим на гитлабе, поэтому всё оказалось крайне просто — копируешь токен из репозитория, регистрируешь раннер на сервере, ставишь тег production/development и погнали. Сделать это надо было для 4 проектов, в каждом из которых dev и prod окружения, итого 8. Заняло всё в итоге 20 минут, но ощущения просто несравнимые, когда пушишь в dev и деплой проходит на тестовом контуре, пушишь в main и деплой уходит на продовский контур. Детский восторг прям какой-то был.

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

  • Люблю документацию

    Люблю писать понятную и нужную доку😎

  • Мама я в телевизоре [2]

    Сижу, значит, смотрю очередной видос от Primeagen'а и тут замечаю, что я оказался на экране
    https://youtu.be/qKU5wOqPF8g — 6:02, коммент внизу видео
    Ржака, я даже не знал, что этот коммент собрал 500 лайков, ютуб тупо молчит об этом 🙁

  • Мем дня

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

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

    Прошло 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😩