А вот и второй пост из этой серии — подписание xml-запросов по xmldsig с помощью php и openssl — https://habr.com/en/post/710532/
Автор: dd
-
Первая статья на Хабре про ГИС ЖКХ
Дождался публикации своего первого поста на хабре — 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, как раз на него и переводил — прекрасный фреймворк, интуитивный, простой и модульный
Вообще, наблюдать за тем, как из кучки старых файлов проекта рождается обновлённый проект с грамотной структурой — одно удовольствие
Оплачиваемый рефакторинг — одни из лучших рабочих моментов, пожалуй🙃

