dd

Автор: dd

  • Подписание XML через xmldsig

    А вот и второй пост из этой серии — подписание xml-запросов по xmldsig с помощью php и openssl — https://habr.com/en/post/710532/

  • Первая статья на Хабре про ГИС ЖКХ

    Дождался публикации своего первого поста на хабре — https://habr.com/en/post/710462/
    Пост о боли насущной — до сих пор преследующей меня интеграции с ГИС ЖКХ
    В этой части только про подключение, завёрнутое в докер

  • Мем недели

    Я на этой неделе💀

  • Снова любительский геймдев на C#

    Никогда бы не подумал, что напишу это, но я снова занялся любительским геймдевом
    Предлог простой — вспомнить и получше изучить джаву, потому что до этого знаний о ней было крайне мало, хотя я вообще весь свой путь в программировании начал именно с неё
    С 2015го по 2020 я с переменным успехом ковырялся с MonoGame — фреймворк для написания игр на c#
    Не особо что выходило, играми это назвать точно было нельзя, хотя и цели сделать игру не было — мне был интересен именно сам процесс, планирование и проектирование
    В этот раз цель всё та же, так как всё, что я когда-либо хотел сделать это клон Minecraft, но до этого может не дойти никогда
    Однако, изменился подхо — раньше я просто говнокодил, чтобы хоть как-то работало. Сейчас я всё так же говнокожу, но пытаюсь максимально развязать компоненты
    Вообще, в голову пришла идея отделить "бэкенд" от "фронтенда", то есть выстроить систему так, что игровой мир общается с gui посредством событийной шины. Всё в лучших традициях распределённых систем и микросервисов, откуда собственно идея и пришла
    Вообще, советую любому разрабу иногда залезать в совершенно другую область разработки, многие принципы могут пригодиться + это нехилая встряска мозгу, мыслить приходится совсем по-другому.

    Ссылка на гитхаб, на всякий случай — https://github.com/ddruganov/libgdx-test

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

  • Мягкое удаление записей и его проблемы

    Меня всегда интересовала возможность отменяемых действий, в частности удаления записей из БД. Каждый раз прибегал к deleted_at, но минимальный набор проблем включает в себя необходимость добавления ко всем запросам deleted_at is null
    Тут в двух статьях описано что с этим паттерном не так и как это все просто решается:
    https://brandur.org/soft-deletion
    https://brandur.org/fragments/deleted-record-insert

  • Про монорепозитории

    @artemmarenkoff я призываю тебя и представляю отличную статью на тему монорепизации проектов: https://www.devtip.co/monorepo/
    Если кратко: монореп это хорошо, а мультиреп нужен далеко не всегда

  • Пожалуй, самое время подвести итоги года

    Во-первых, этот бложек. Сильно, имхо, вырос, вас аж 12, спасибо. Он дал многое, из самого важного — начало формироваться понимание того, как надо в письменном виде доводить свои идеи
    Во-вторых, работа. Было много проектов, было много кранчей, было много крутого. Из особенно хороших получившихся приложений могу выделить те, где я прям в полной мере дал себе свободу в написании апи и выделил это все в отдельную либу.
    В-третьих, знакомства. Познакомился с двумя крутыми молодыми фронтами, с ними на работе было очень весело, редко бывает такое совпадение взглядов.
    В-четвертых, семья. У меня ни в один год не было столько приобретений — машина, квартира, а главное — дочь. Для моего мозга это всё где-то ещё лет через 20, а на самом деле я уже отец🤔
    Теперь к целям в новом году
    Бложек. В связи со сменой работы ожидается куча нового контента, учитывая, что я на 90% уверен, что сменю фреймворк.
    Работа. Ищу новую, есть много предложений, много интересных проектов и команд, очень рад. Гораздо круче выходить на рынок с большим опытом, рыбка уже сильно крупнее. Из особо интересного — 30.12 был первый этап собеседования в яндекс, алгоритмический. По ощущениям прошел, по факту узнаем после праздников.
    Знакомства. Все опять сводится к работе, но если совсем всё хорошо, то залететь бы на подкаст к Антону Назарову.
    Семья. В этом году все приобрел, теперь надо улучшать. Дочь растёт ежечасно, квартира нас ждёт, к лету переедем, машина радует глаз, но скорее всего будет передана тёще, ввиду роста семьи.

    Всех с наступающим! А я пошёл отмечу и начну готовиться к новой волне собеседований
    🥳🥳🥳

  • Доброе утро

    Доброе утро!😍😍😍

  • file_get_contents как HTTP-клиент

    Век живи — век учись
    Сегодня я узнал, что для особой категории энтузиастов есть (возможно) малоизвестный прикол с file_get_contents
    Оказалось, что с его помощью можно делать не только get-запросы, да и вообще конфигурировать как хочешь
    Спойлер — лучше так не делать, запинают, curl/guzzle вам в помощь
    Подробнее: https://stackoverflow.com/questions/11064980/php-curl-vs-file-get-contents/74178711#74178711

  • Не пишите свой фреймворк

    На всякий случай небольшое напоминание — используйте фреймворки
    В 99% случаев "мелкий проект на одно действие" перерастёт в нечто большее и тогда начнутся проблемы
    Не просто так это пишу — провёл несколько вечеров переводя такое "маленькое приложение" на фреймворк, потому что без него работать уже становилось тяжко
    Особенно это касается вопросов роутинга и шаблонизации
    Была мысль всё это писать самому, но хорошо, что что-то умное щёлкнуло в голове, иначе застрял бы на неделю
    Выше писал про Slim, как раз на него и переводил — прекрасный фреймворк, интуитивный, простой и модульный
    Вообще, наблюдать за тем, как из кучки старых файлов проекта рождается обновлённый проект с грамотной структурой — одно удовольствие
    Оплачиваемый рефакторинг — одни из лучших рабочих моментов, пожалуй🙃