Как стать автором
Обновить
-3
0
Григорий Александрович Осетров @ShadowGreg

Пользователь

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

Телеграм бот на C# с использованием Yandex Cloud Functions

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров4.1K

Всем привет!

Данная статья содержит информация о том, как написать телеграм бота на C# с использованием Yandex Cloud Functions и Телеграм Webhook. Также в данной статье будет рассмотрено CI/CD с помощью GitHub Actions.

P.S. полезная литература находится в ссылках!

Читать далее
Всего голосов 8: ↑8 и ↓0+11
Комментарии12

Telegram API и библиотека TDLib для .NET платформ

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров26K

image
Доброго времени суток! В Telegram существует два вида API: Telegram Bot API (обыкновенный бот с пометкой "бот") и Telegram API (клиент и юзербот, который обладает больше функционалом, чем просто бот). В этой статье пойдет речь о втором виде, а именно: что требуется для взаимодействия с Telegram API, какие средства нужны для написания кода своего юзербота на языке C#, как их правильно установить, а также каким образом использовать их.

Читать дальше →
Всего голосов 20: ↑18 и ↓2+25
Комментарии7

Под капотом у Dictionary и ConcurrentDictionary

Время на прочтение5 мин
Количество просмотров175K
Некоторое время назад, я решил, что хочу знать больше подробностей о работе многопоточности в .NET и что я уделял этому незаслуженно мало внимания в прошлом. Информации на эту тему великое множество (отправной точкой я для себя выбрал этот раздел книги «C# in a nutshell»), но, как оказалось, только малая часть ресурсов пытаются объяснить что-то в деталях.

Каждый мастер должен знать свои инструменты, а что может использоваться чаще коллекций? Поэтому я решил сделать небольшой обзор многопоточных коллекций и начать с ConcurrentDictionary (беглый обзор уже встречался здесь, но его там совсем мало). Вообще, я несколько удивился, что такой статьи для .NET еще нет (зато хватает по Java).

Итак, поехали.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии31

План самостоятельного обучения DDD, CQRS, EventSourcing

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

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Всего голосов 32: ↑31 и ↓1+34
Комментарии4

Разбираемся с middleware в ASP.NET Core

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

Этой статья раскрывает концепции Middleware в ASP.NET Core. К концу этой статьи вы получите четкое представление о следующих моментах:

- Что такое Middleware?

- Почему порядок расположения Middleware имеет значение?

- Методы Run, Use и Map.

- Как создать собственное Middleware?

- Как реализовать просмотр каталогов с помощью Middleware?

Приступить к прочтению!
Всего голосов 9: ↑8 и ↓1+7
Комментарии6

UML для самых маленьких: диаграмма классов

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


Аве, Кодер! Диаграмма классов UML иллюстрирует структуру системы, описывая классы, их атрибуты, методы и отношения между объектами.

Даже самые малые детки знают, что UML происходит от Unified Modeling Language, если по- русски, то — унифицированный язык моделирования, который, как гласит легенда, разработали, когда серьезные дяди и тети в конец задолбались плавать в разнообразии кружочков, черточек и облачков.

Для тех, кому лень читать:

Всего голосов 10: ↑6 и ↓4+5
Комментарии4

Моделирование данных: обзор

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

В работе мы с коллегами часто видим как компании сталкиваются с проблемой управления данными – когда таблиц и запросов становится сильно много и управлять всем этим очень сложно. В таких ситуациях мы рекомендуем моделировать данные. Чтобы разобраться, что это такое – я перевела статью-обзор про моделирование данных от Towards Data Science, в которой кроме основных терминов и понятий можно найти наглядный пример использования моделирования данных в ритейле. Вперед под кат!

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии1

Использование диаграммы вариантов использования UML при проектировании программного обеспечения

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

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

Обычно при проектировании разработчики изображают  систему графически, поскольку человеку легко разобраться в таком представлении. Именно поэтому вместо написания громоздких текстов про каждую возможность будущей программы разработчики строят различные диаграммы для описания своих систем. Это помогает им не забывать, что нужно реализовать в программе, и быстро вводить в курс дела своих коллег.

Читать далее
Всего голосов 8: ↑6 и ↓2+9
Комментарии10

DFD (Data Flow Diagram) Диаграммы — зачем они нужны и какие бывают

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

Привет всем!

Сегодня решил написать основную теорию про применение диаграмм потоков данных как одного из инструментов моделирования процессов.

Диаграмма отображает потоки данных между системами, базами данных. Ключевыми элементами являются входные/выходные данные, системы, точки хранения и сбора данных. 

Зачем нужны DFD диаграммы?

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

Читать далее
Всего голосов 5: ↑2 и ↓3-1
Комментарии8

О Thread и ThreadPool в .NET подробно (часть 1)

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

Эта текст покрывает ответы на некоторые совсем базовые вопросы и вместе с тем сразу погружает в проблематику получения ответа на вопрос: "как работать лучше? однопоточно, многопоточно или многопоточно, но на ThreadPool?". Ответ на этот вопрос может изначально показаться очень простым и понятным, однако реальность совершенно иная: всё как и везде сильно зависит от ситуации: от типа задачи, от её размера, от прочих условий, которые так просто в голову сами собой не придут.

А потому мы пройдёмся в первую очередь по IO-/CPU-bound операциям, стоимости создания потока, базовым основам работы пула потоков (но только основы), а далее -- углубимся в анализ чёрного ящика: от чего зависит производительность пула потоков? Каков объём работы приемлим для того чтобы в него планировать?

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

Также отмечу, что материал постепенно переходит от начального уровня сложности ? через ⚠️ средний уровень к ☠️ высокому, о чём вы сможете узнать по пиктограммам.

Погрузиться в знания
Всего голосов 25: ↑24 и ↓1+34
Комментарии11

FAQ: наш опыт получения государственного гранта (4 млн рублей) на развитие IT-бизнеса

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

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

Итак:

Сколько проектов вы подавали? Два. Первый — система защиты от скликивания рекламы clickfraud.ru, второй — автономная CRM offlinecrm.ru. Нам одобрили грант на первый проект и отказали на второй (разные команды де-факто и де-юре).

Куда подавали? ФСИ — фонд содействия инновациям. Fasie.ru — советую изучить внимательно сайт фонда, там есть довольно много информации. Иногда работает чат, а иногда нет. Есть открытые контакты — можно написать или позвонить, если есть вопросы. Мы звонили и всегда сотрудники фонда помогали исчерпывающе и доброжелательно.

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

Читать далее
Всего голосов 28: ↑22 и ↓6+31
Комментарии88

Два простых правила для предотвращения взаимных блокировок на мьютексах

Время на прочтение6 мин
Количество просмотров57K
Здравствуйте, уважаемые Хабраюзеры!

Так сложилось, что это третий пост в блоге нашей компании, и, как и первые два, он посвящен вопросам многопоточного программирования и проблемам, которые при этом возникают. Получилось так неслучайно, ведь мы на собственной «шкуре» испытали, что ситуации, возникающие при написании многопоточных программ, невероятно сложны для отладки, так как во многом определяются динамикой работы программы на конкретной аппаратной платформе. Уверен, что большинство программистов сталкивались с ситуацией, когда программа, которая прекрасно работает на одном компьютере, на другом совершенно неожиданно начинает дедлочиться практически «на ровном месте».
Читать дальше →
Всего голосов 82: ↑73 и ↓9+64
Комментарии50

Как легко получить deadlock на Task.WhenAll

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.5K

Напоминание! Task.WhenAll не отдает ваши задачи планировщику и если вы забыли Task.Run или Task.Factory.StartNew, то добро пожаловать на синхронное выполнение и\или выполнение в main и\или ловите deadlock.

А ниже пара примеров, при которых вы можете этого избежать, но так делать не надо.

Читать далее
Всего голосов 10: ↑5 и ↓5+5
Комментарии12

C#: один сценарий использования для любых задач

Время на прочтение10 мин
Количество просмотров17K
Привет, Хабр! Мы продолжаем рассказывать об асинхронном программировании на C#. Сегодня поговорим о едином сценарии использования или пользовательском сценарии, подходящем для любых задач в рамках асинхронного программирования. Затронем темы синхронизации, взаимоблокировок, настройки операторов, обработки исключений и много другого. Присоединяйтесь!

Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии12

Основные настройки для управления ресурсами в PostgreSQL: настройка памяти, CPU и I/O

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров12K

Привет, Хабр!

При работе с PostgreSQL (да и в целом с любой БД) важно правильно настраивать и управлять ресурсами, такими как память, процессорное время и дисковые операции, и так далее для обеспечения лучшей производительности и стабильности работы БД.

В этой статье мы как раз и рассмотрим кратко о том, как управлять ресурсами в PostgreSQL.

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии18

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Время на прочтение24 мин
Количество просмотров228K
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии27

REST API в микросервисной архитектуре

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

В этом посте расскажу о том, какой вред может нанести межсервисная коммуникация по HTTP в микросервисной архитектуре и предложу альтернативный способ совместного использования данных в распределенной системе.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+6
Комментарии11

Blazor: Server и WebAssembly одновременно в одном приложении

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


ASP.NET Core Blazor — это разработанная Microsoft веб-платформа, предназначенная для запуска на стороне клиента в браузере на основе WebAssembly (Blazor WebAssembly) или на стороне сервера в ASP.NET Core (Blazor Server), но две эти модели нельзя использовать одновременно. Подробнее о моделях размещения написано в документации.


В статье я расскажу о том, как


  • запустить Server и WebAssembly одновременно в одном приложении,
  • переключаться с Server на WebAssembly без перезагрузки приложения,
  • реализовать универсальный механизм аутентификации,
  • синхронизировать состояние Server и WebAssembly с помощью gRPC.

TL;DR:


Gif с демонстрацией полученного результата


Пример доступен на github.

Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии9

Быстрый расчет формул из Excel на C#

Время на прочтение16 мин
Количество просмотров31K
Как часто вы слышите от заказчиков, что они пришлют данные в Excel или просят вас сделать импорт или выгрузку в Excel-совместимом формате? Я уверен, что в большинстве сфер Excel — один из самых популярных, мощных и в то же время простых и удобных инструментов. Но самым проблемным моментом всегда остается интеграция таких данных с различными автоматизированными системами. Нашу команду попросили рассмотреть возможность проведения расчетов данных, используя настройки из пользовательского Excel-файла.

Быстрый расчет формул из Excel на C#

Если вам необходимо выбрать производительную библиотеку для работы с Excel-файлами или вы ищете решение для расчета сложных финансовых (и не только) данных с удобным инструментом управления и визуализации формул из коробки, добро пожаловать под кат.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии10

Еще раз про асинхронную машину состояний и где именно там аллокации

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров21K

Несмотря на то, что про async/await уже было сказано много слов и записано множество докладов, тем не менее, в своей практике преподавания и наставничества, я часто сталкиваюсь с недопониманием устройства async/await даже у разработчиков уровня Middle+. В данной статье мы подробно рассмотрим машину состояний, сгенерированную компилятором из асинхронного метода для понимания принципа работы асинхронности в C#, разберемся где именно там аллокации и порешаем задачи для самопроверки. Если вы уже раз сто видели как выглядит асинхронная машина состояний, но все равно недопонимаете ее, тогда эта статья для вас.

Читать далее
Всего голосов 23: ↑21 и ↓2+24
Комментарии9

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность