Обновить
0
Игорь @Vilkisread⁠-⁠only

Разработчик

Отправить сообщение

Три мушкетёра — Event Sourcing, Event Storming и Event Store — вступают в бой: Часть 1 — пробуем Event Store ДБ

Время на прочтение7 мин
Количество просмотров13K


Привет, Хабр! Решил я значит на время отойти от Scala, Idris и прочего ФП и чуть чуть поговорить о Event Store — базе данных в которой можно сохранят события в потоки событий. Как в старой доброй книге у нас тоже мушкетёров на самом деле 4 и четвертый это DDD. Сначала я с помощью Event Storming выделю команды, события и сущности с ними связанные. Потом сделаю на их основе сохранение состояния объекта и его восстановление. Буду я делать в этой статье обычный TodoList. За подробностями добро пожаловать под кат.
Читать дальше →

Асинхронные потоки от Стивена Клири

Время на прочтение18 мин
Количество просмотров24K


Про Стивена Клири можно сказать «он всерьез занялся многопоточным программированием еще до того, как это стало мейнстримом». Клири стал палочкой-выручалочкой для тысяч разработчиков, терпеливо объясняя на StackOverflow, почему программы не работают и как их исправить.


Еще в 2019-м на нашей конференции DotNext Стивен рассказал об асинхронных потоках: чем они могут быть полезны, чем отличаются от существующих библиотек вроде System.Reactive и RxJS, а также как задействовать их в проектах.


Спустя пару лет этот доклад остается полезным — поэтому теперь, в преддверии нового DotNext, мы решили сделать для Хабра текстовый перевод доклада Стивена. Видео тоже есть под катом. Далее повествование будет от лица спикера.

Читать дальше →

Как я ЖКХ-платежи автоматизировал

Время на прочтение6 мин
Количество просмотров24K

Если у вас есть возможность оплачивать все коммунальные счета из одного приложения, я вам завидую. А уж если у вас стоят умные счётчики, то вы просто счастливчик.

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

Решил я немного упростить жизнь и написать программку, которая будет оповещать меня о наступивших событиях, таких как необходимость заплатить или передать показания, и позволит передавать показания счётчиков сразу на оба сайта в нужное время.

Под катом рассказ о том, что у меня из этого получилось.

Читать далее

Tutorial: как портировать проект с Interop Word API на Open XML SDK

Время на прочтение15 мин
Количество просмотров9.8K

С выходом .NET5 дальнейшее развитие некоторых проектов оказалось под вопросом из-за сложности портирования. Если от небольших устаревших библиотек можно отказаться или найти им замену, то от зависимости Microsoft.Office.Interop.Word.dll очень сложно отказаться. Microsoft не планирует добавлять совместимость с .NET Core/5+, поэтому в этой статье мы рассмотрим, как создавать документы Word с помощью Open XML SDK.

Читать далее

Книга «Программируем на C# 8.0. Разработка приложений»

Время на прочтение12 мин
Количество просмотров8K
image Привет, Хаброжители!

C# — универсальный язык, который может практически всё! Иэн Гриффитс рассказывает о его возможностях с точки зрения разработчика, перед которым стоит задача быстро и эффективно создавать приложения любой сложности.

Множество примеров кода научат работать с шаблонами, LINQ и асинхронными возможностями языка. Вы разберетесь с асинхронными потоками, ссылочными типами, допускающими значение NULL, сопоставлениями с образцом, реализациями по умолчанию для метода интерфейса, диапазонами и синтаксисом индексации и многим другим.
Читать дальше →

Новые API в .NET 6

Время на прочтение4 мин
Количество просмотров14K

.NET 6 в процессе разработки, и я хотел поделиться некоторыми из моих любимых новых API в .NET и ASP.NET Core, которые вам обязательно понравятся. Почему они понравятся? Потому что они разработаны при прямом участии нашего фантастического сообщества разработчиков .NET. Подробнее в статье.

Читать далее

Автоматизация типовых процессов, правильный выбор реализации

Время на прочтение9 мин
Количество просмотров4.2K

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

Читать далее

Техники обработки отказов сервиса в микросервисных архитектурах, или Альтернативы Circuit Breaker

Время на прочтение11 мин
Количество просмотров10K

Эта статья может быть полезна для тех, кто, как и мы, пострадал от нестабильной работы внешних API. Я расскажу, какие бывают стратегии обработки отказов и какой путь борьбы с глючным почтовым сервисом избрали мы.

Читать далее

Введение в Akka.NET

Время на прочтение6 мин
Количество просмотров44K

Что такое Akka?


Масштабируемая, распределенная обработка транзакций в реальном времени


Мы верим, что написание корректных, параллельных, отказоустойчивых и масштабируемых приложений это сложно.

В большинстве случаев это связано с тем, что мы используем неправильные инструменты и неправильный уровень абстракции. Akka создана для того, чтобы изменить это.
Читать дальше →

Понимая Docker

Время на прочтение7 мин
Количество просмотров1.1M
Уже несколько месяцев использую docker для структуризации процесса разработки/доставки веб-проектов. Предлагаю читателям «Хабрахабра» перевод вводной статьи о docker — «Understanding docker».

Что такое докер?


Докер — это открытая платформа для разработки, доставки и эксплуатации приложений. Docker разработан для более быстрого выкладывания ваших приложений. С помощью docker вы можете отделить ваше приложение от вашей инфраструктуры и обращаться с инфраструктурой как управляемым приложением. Docker помогает выкладывать ваш код быстрее, быстрее тестировать, быстрее выкладывать приложения и уменьшить время между написанием кода и запуска кода. Docker делает это с помощью легковесной платформы контейнерной виртуализации, используя процессы и утилиты, которые помогают управлять и выкладывать ваши приложения.
Читать дальше →

Docker. Зачем и как

Время на прочтение6 мин
Количество просмотров520K
Есть множество прекрасных публикаций для тех, кто уже пользуется docker-ом. Есть хорошие статьи для тех, кто хочет этому научиться. Я пишу для тех, кто не только не знает, что такое docker, но и не уверен стоит ли ему это знать.

Я сознательно опускаю некоторые технические подробности, а кое где допускаю упрощения. Если вы увидите, что docker – то, что вам нужно, вы легко найдете более полную и точную информацию в других статьях.
Читать дальше

Ровняем шарды

Время на прочтение12 мин
Количество просмотров3.5K
image

"Размышления без практики приводят к заблуждению, практика без размышления приводит к затруднению."


Мы ведём войну с индивидуальностью у шардов в кластере MongoDB. Это продолжение статьи Шардинг от которого невозможно отказаться, а это значит, что наступила пора конкретики.


Как я и обещал, здесь мы рассмотрим подробнее:


  • настройку процесса выравнивания размера шардов
  • расчет поправок для коррекции границ
  • мониторинг распределения данных в коллекциях
Читать дальше →

Ускоряем загрузку веб-страниц: тестируем 4 стратегии оптимизации изображений

Время на прочтение10 мин
Количество просмотров9.4K


Статистика не устаёт повторять нам про устойчивую корреляцию между падением скорости загрузки страниц сайта и ростом частоты отказов со снижением конверсии. Я не открою Америку, если скажу, что работу сайта замедляет «раздутая» полезная нагрузка (с плохо оптимизированными изображениями и избыточным HTML-кодом). Это заставляет сервер выполнять лишнюю работу. Огромный пласт такой работы связан с проблемами оптимизации изображений. 

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

Не очень эффективными я считаю стратегии, которые опираются на тезис о том, что изображения — это статический контент (в течение статьи я ещё разовью эту мысль и приведу аргументы). Сейчас на мобильные устройства приходится большая доля интернет-трафика, но есть проблема: эти устройства имеют различные размеры, разрешения экрана, операционные системы и прикладное ПО (например, браузеры). Каким образом сделать так, чтобы веб-страница быстро (!)и корректно загружалась на любой платформе и выглядела при этом одинаково?
Читать дальше →

Как без усталости кодить по восемь с лишним часов

Время на прочтение6 мин
Количество просмотров89K


Всю свою жизнь я писал код неправильно.

Я думал, что достаточно просто сесть за стол, открыть ноутбук, выбрать задачу из моего списка to-do и кодить, пока не устану.

Но на самом деле такой стиль работы убивал мой уровень продуктивности спустя 2–4 часа написания кода. Я ощущал себя таким уставшим, что мне не хотелось ничего, кроме как других задач, требующих низких затрат энергии (например, code review).

Сейчас я могу писать код по восемь с лишним часов, не чувствуя себя после этого развалиной.

Что же изменилось?

Мой подход к работе.

После 62 книг по саморазвитию, десятков статей и исследований продуктивности, собственных проб и ошибок я создал систему продуктивности, помогающую мне кодить, писать, создавать и жить по максимуму без прокрастинации, усталости и тумана в голове.

В статье я расскажу, как этого достиг.
Читать дальше →

Чего «энтерпрайзу» в PostgreSQL не хватает

Время на прочтение6 мин
Количество просмотров17K

В конце прошлого года Иван Панченко предложил мне рассказать на внутреннем семинаре Postgres Pro, чего, по нашему опыту использования PostgreSQL в "кровавом энтерпрайзе" "Тензора", не хватает в этой СУБД.

С докладом пока так и не сложилось, зато появилась эта статья, в которой я постарался собрать наиболее показательные вещи, которые вызывают "напряги" при активном использовании PostgreSQL в реальном бизнесе.

Читать далее

15 методов работы с массивами в JavaScript, которые необходимо знать в 2020 году

Время на прочтение4 мин
Количество просмотров109K
Перед вами перевод статьи, опубликованной на сайте dev.to. Автор: Ibrahima Ndaw.
Оригинал опубликован в авторском блоге.

Массив в JavaScript — это особая структура данных, которая используется для хранения различных элементов. С помощью встроенных в нее свойств и методов можно добавить, удалить, перебрать или обработать данные в соответствии со своими потребностями. Знание методов работы с массивами в JavaScript поднимет ваши профессиональные навыки в сфере разработки на новый уровень.

В этой статье мы рассмотрим 15 методов, которые помогут вам более эффективно работать с массивами в JavaScript.

Читать дальше →

Сила композиции

Время на прочтение20 мин
Количество просмотров19K


Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


Уже завтра начнется новый DotNext, где я помогу Скотту выступить с другим докладом, а пока что публикую перевод его выступления про композицию. Далее повествование будет от лица Скотта.

Читать дальше →

C# Regex в примерах

Время на прочтение6 мин
Количество просмотров114K
Перевод статьи подготовлен специально для студентов курса «Разработчик С#».




Класс Regex реализует регулярные выражения в C#. В этой статье вы узнаете, как использовать C# Regex для проверки различных пользовательских входных данных.

Regex в C# реализует регулярные выражения. Класс C# Regex предлагает методы и свойства для анализа большого текста, с целью поиска шаблонов символов. В этой статье вы узнаете, как использовать класс .NET Regex в C#.
Читать дальше →

Что такое красивый код и как научиться его писать

Время на прочтение9 мин
Количество просмотров24K
Меня зовут Маша, я автор курса по С++ в Яндекс Практикуме. Все вопросы, задачи курса, его тексты и описания решений — это всё наша команда. И сегодня я хочу поговорить про красоту кода. Обсуждать её я буду по большей части на примере С++, так как я на нем и пишу, чаще всего программируя довольно низкоуровневые проекты для устройств интернета вещей, умного дома и медицинских аппаратов. Но сами правила и подход к пониманию красоты кода актуальны для любого языка.

Если совсем базово, то можно выделить три уровня красоты кода:

  1. Визуальный. Это как раз все про coding conventions, правильные переменные, оформление и прочее.
  2. Восприятие кода. Про ощущения, которые возникают у людей, работающих с вашим кодом.
  3. Продуманность архитектуры. Это тоже критично и тоже относится именно к красоте кода.

Сразу же оговоримся, что мы обсуждаем код, выполняющий ту работу, которую должен, и делающий это правильно. Нерабочий код оценивать с точки зрения красоты не имеет никакого смысла.

А теперь давайте по каждому пункту отдельно.


Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Тамбов, Тамбовская обл., Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Старший
PostgreSQL
Git
C#
.NET
SQL
Docker
Базы данных