dd

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

  • Подборка статей: DDD, CQRS и наём

    Я в последнее время крайне много прокрастинирую, но вчера вечером что-то щёлкнуло в голове и захотелось продуктивности.
    Скопилось очень много разных статей, наконец-то все дочитал.

    Итак, по порядку:
    1. DDD и CQRS
    https://thephp.cc/articles/domain-driven-design-with-php
    https://olvlvl.com/2018-04-command-dispatcher-pattern.html
    https://martinfowler.com/bliki/CQRS.html
    https://thephp.cc/topics/event-sourcing
    Последняя ссылка (event sourcing) не относится к CQRS, но часто используется в связке с ним.
    От себя добавлю, что на новом проекте внедрил CQRS и мне очень зашло. Всё красиво, по полочкам, сходу понятно что команда делает и какие для этого нужны данные.

    2. О том, в какой жопе находится текущая система найма и как сложно иногда найти работу — https://levelup.gitconnected.com/i-am-a-bad-software-developer-and-this-is-my-life-5c248dc72c2a

    3. Как потерять интерес к работе или заставить кого-либо это сделать — https://levelup.gitconnected.com/demotivating-a-skilled-programmer-6465cae26d2a

    4. О важности нейминга и научных исследованиях на эту тему — https://makimo.pl/blog/scientific-perspective-on-naming-in-programming/

    5. О важности хорошего проектирования интерфейсов взаимодействия систем/подсистем/api — https://pboyd.io/posts/good-interfaces/

    6. О том, что такое на самом деле рекурсия и почему её следует избегать почти всегда — https://zdimension.fr/stack-machines-and-where-to-find-them/

    7. Рубрика "и смешно, и плакать хочется" — https://vocal.media/01/who-says-a-programming-career-can-t-be-interesting

    Как камень с души упал, пойду дальше копить статьи 😀

  • Фриланс на старой работе

    Что делает программист, когда приходит на новую работу? Правильно! Идет на старую фрилансить за тройную ставку по вечерам! Да, ведь?
    Скорее всего нет, конечно, но я лёгких путей не ищу, а учитывая, что мне ремонт делать, я ни перед чем не остановлюсь.
    ТЗ небольшое, функционал простой, а главное — приложение использует те же технологии, которые я использовал ранее (yii2, bitrix). То есть, фактически, самой разработки там было на 20 часов, в которые входило и развертывание окружения на проде в том числе.
    Еще доработки потом подъедут по второму этапу и можно будет идти за ламборгини😃
    Получается, я совсем не зря на старой работе пилил библиотеки для упрощения жизни — теперь вот пожинаю плоды, хотя изначально, конечно, не думал, что от них вообще профит будет, думал, загнутся с моим уходом.
    В общем, важная мысль в том, что если вас со старой работы просят поделать проект, то не отбрасывайте мысль сразу. Посчитайте, сколько денег вы с этого реально заработаете и сколько времени потратите. В моем случае, оплата перевесила даже общение с 1сниками заказчика, но ходят по очень тонкому льду🥲

  • Помог незнакомцу с дебаггером

    Вчера произошло нечто удивительное
    Мне написал в телегу какой-то парень, сказал, что наткнулся на мою статью на хабре, застряв с настройкой дебаггера
    Перепробовал всё что мог, но ничего не вышло
    По-русски парень говорит, по его словам, плохо, зато нашли коннект по-английски
    Образ контейнера с пхп ему предоставляет компания, сами там как-то собирают
    Договорились созвониться сегодня, а на созвоне выяснилось, что он проблему уже решил простой перезаписью конфига от компании своим
    Но он всё равно меня поблагодарил, мол я ему дал надежду, что не всё потеряно и что он решил снова попытаться, воодушевившись 😀
    Самое интересное, что у парня крайне развито чувство такта — он ни минуты моей не потерял зря, говоря, что знает как разрабы заняты и как дорого наше время. Это супер важно — понимание значимости времени своего собеседника
    Обожаю чувство, когда кому-то смог помочь, пусть даже фактически ничего не сделав. Это приятно

  • Предупреждение про ключ target в docker-compose

    Среда ругается на ключ target, но несмотря на это, docker-compose всё запускает нормально
    Значения этого ключа ссылаются на билды в Dockerfile, можно посмотреть в ответе на stackoverflow

  • Docker-compose для дева и прода

    Неожиданно, но оказывается, есть простой способ настраивать конфиг docker-compose для теста и прода
    Я всегда просто делал два разных файла, которые смотрят в разные папки за конфигами и запуск того или иного окружения происходит через bash-скрипт, которому в качестве аргумента можно передать dev, чтобы поднять тестовое окружение
    А вот сегодня подумал, что наверное есть способ проще и да — он есть
    Вообще, поиск я начал с того как бы мне с помощью флагов окружения выполнять в Dockerfile те или иные куски кода, но наткнулся вот на этот ответ на stackoverflow, где говорилось, что такой подход устарел и можно лучше — https://stackoverflow.com/a/65624157/5320740
    Я и до этого видал Dockerfileы, в которых были строки типа from * as base, но разбираться почему и зачем не было нужды, а теперь понятно, что я многое упускал
    Вся эта схема ещё идеально вяжется с использованием docker-compose.override.yml, который перезаписывает части конфига. Там как раз можно указать, что нам в Dockerfile нужно собрать именно dev окружение
    По итогу имеем два простых конфига — один локальный, второй в репе

  • Первый перформанс-ревью

    Сегодня ровно месяц как я работаю в новой компании и сегодня прошёл мой первый перформанс ревью. Честно говоря, не знал чего ждать, похвалы или порицания, но надеялся на лучшее. По итогу оказалось, что все всем довольны, работаем дальше, вопреки моему синдрому самозванца. Оказывается, я сильно помог компании в продвижении работ по одному из заказчиков, приятно🙂
    🛠 Практически весь месяц возился со старой легаси системой и понял кое-что — дебаггер — лучший инструмент. Я не понимаю, как я без него жил раньше и чем думал, когда дебажил через логирование💀
    🛠 Начал работу над новой итерацией текущей системы. Пока всё идёт туговато, потому что переписываем на Symfony, а я с ней до этого вообще не работал 💀 Но получилось уже основные архитектурные принципы воплотить, это радует.
    🛠 Ещё, кстати, решили использовать GraphQL. Да, там приходится писать много обвязки, но профит от этого сумасшедший. Мне наконец-то не придётся клепать эндпоинты для получения/изменения данных на каждый чих фронтендера. Пусть сам разбирается, что ему надо 💀
    💡 За этот месяц я понял, что офис дома — плохая идея. Поработав в коворкинге, уходить оттуда не хочется, там всегда какая-то движуха. Особенно хорошо, когда там собираются какие-нибудь чудики и удаётся утащить поесть💀
    Вообще, неплохой месяц выдался, что сказать. Чилим дальше😎

  • Work-life баланс и легаси

    С момента моего трудоустройства на новом месте стараюсь очень жестко соблюдать work/life-баланс, поэтому сейчас эта картинка актуальна как никогда

    P.S. Давно ничего не пишу, потому что сказать пока нечего. Целыми днями штудирую бизнес-логику, практикуя страстный бдсм с легаси, но потихоньку с командой близимся к пониманию того как будет выглядеть и функционировать новая итерация🙃

  • Отклик на статью про Xdebug

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

  • Первые дни на новой работе

    Вернулся ночью из командировки по новой работе
    Мне не особо можно распространяться о деталях, но работаю теперь в torgi223.ru на должности "ведущего программиста", что бы это ни значило 😀
    Команда просто отпад, офис того круче. Я за два дня очень хорошо отдохнул и сейчас просто с блаженством занимаюсь задачами
    Сейчас, кстати, сижу в коворкинге, в своём закутке, максимальный чил)
    Всем удачной недели!

  • Статья на Хабре про Xdebug в контейнере

    Вчера в порыве радости выложил пост, а потом понял, что по той ссылке лишь часть нужной для настройки инфы
    Собрался с мыслями и запилил на хабре статейку о том как пошагово настроить дебаггер в контейнере
    Ссылка — https://habr.com/en/post/712670/
    Наверняка схлопочу минусов, но пусть будет 😀