Как стать автором
Обновить
1
0
Олег @skilllab

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

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

Как и зачем использовать Template Method в C#

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

Template Method (он же «Шаблонный метод») — это паттерн проектирования, который определяет скелет алгоритма в методе, оставляя определенные шаги подклассам. Проще говоря, есть базовый алгоритм, но мы можно менять детали, переопределяя части этого алгоритма в наследниках.

Классический пример — процесс заказа товара в интернет-магазине. Независимо от того, какой у вас магазин, шаги примерно одинаковые: проверка наличия товара, оплата, упаковка и доставка. Но в зависимости от специфики магазина, эти шаги могут отличаться в деталях.

Template Method позволяет создать базовую структуру этих шагов и менять конкретные реализации без изменения самой структуры. В этой статье мы рассмотрим, как реализовать этот паттерн на C#.

Читать далее
Всего голосов 17: ↑13 и ↓4+14
Комментарии45

Гибкая фильтрация EFCore с помощью Expression

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

Фильтрация данных в EntityFramework — это довольно простая задача, которую можно легко решить с помощью метода Where() в LINQ. Однако если поля для фильтрации как и значения приходят к нам динамически, и тем более если фильтровать приходится по вычисляемым в рантайме значениям - возникают некоторые трудности с их обработкой. В статье рассказываю как я делал динамическую фильтрацию по вычисляемым в рантайме полям с помощью Expression trees и EntityFramework.

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

Немного про DDD: Реализация событий предметной области в .NET

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

Всем привет! Предметно-ориентированное проектирование, на мой взгляд, является недопонятым подходом, о котором многие говорят, но немногие его действительно применяют.

Одним из относительно простых в реализации и полезных в архитектурном смысле паттернов, на мой взгляд, являются события предметной области (Domain Events). В данной статье я бы хотел рассказать о возможных вариантах реализации этого шаблона DDD с использованием .NET.

Читать далее
Всего голосов 11: ↑10 и ↓1+14
Комментарии34

Идеальный продукт и его UX/UI дизайн

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

Рецензия на книгу «UX/UI дизайн для создания идеального продукта»

Привет! Сегодня расскажу о том, что узнала из книги‑гида Ярослава Шуваева «UX/UI дизайн для создания идеального продукта». Дабы рецензия не вышла совсем уж пространной, решила разделить её на две части. Поговорим о SUS, MVP, концепциях Personas и JTBD, разнице между MVT и A/B‑тестированием, об API, как о факторе, формирующем UX, и многом другом.

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

SAP Scripts на C#

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

Всем привет! Это моя первая статья на Хабре, я решил создать её здесь, чтобы поделиться наработанным опытом со всеми коллегами по RPA. Речь пойдёт об автоматизации интерфейса SAP через SAP скрипты при разработке на C#.

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

Ассемблер для программистов на языках высокого уровня: Hello World

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

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

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

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

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →
Всего голосов 61: ↑57 и ↓4+69
Комментарии41

Деплой .NET приложений для самых маленьких. Часть 2. Github Actions

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

В прошлой статье мы рассмотрели чрезвычайно популярный инструмент для выкатки приложений Jenkins. Мы подружили его через плагины с SSH, с GitHub, построили простой пайплайн с помощью Groovy. И вроде все здорово, все работает как должно, но все равно есть ощущение, что можно сделать лучше. И действительно, наш процесс можно улучшить, перестав проводить сборку на VPS.

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

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

Читать далее
Всего голосов 19: ↑16 и ↓3+24
Комментарии2

Заметки по сериализации + System.Text.Json

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

Сериализация - важнейший механизм любого приложения, от поиска по фильтрам в онлайн магазинах, до сохранения прогресса в играх. Давайте коротко пройдемся по основным форматам сериализации и рассмотрим использование System.Text.Json.

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

Подробности о GraphQL: что, как и почему

Время на прочтение19 мин
Количество просмотров107K
GraphQL сейчас, без преувеличения, это — последний писк IT-моды. И если вы пока не знаете о том, что это за технология, о том, как ей пользоваться, и о том, почему она может вам пригодиться, значит статья, перевод которой мы сегодня публикуем, написана специально для вас. Здесь мы разберём основы GraphQL на примере реализации схемы данных для API компании, которая занимается попкорном. В частности, поговорим о типах данных, запросах и мутациях.


Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии24

Бэкап памяти. Наш мозг хранит по 3 копии каждого воспоминания

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

Я часто пишу о том, что наш мозг потребляет огромное количество энергии, и поэтому ноотропы играют довольно посредственную, но все же важную роль. Без мотивации и личного понимания: «что я делаю и для чего именно», ни о каком прогрессе не может быть и речи. И это правило подтверждается тем, что для формирования одного воспоминания мозг создает три его копии.

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

Памятка по BPMN и BPMN-диаграммам

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

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

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

Читать далее
Всего голосов 49: ↑47 и ↓2+60
Комментарии35

Быстрый запуск PostgreSQL через Docker Compose

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

Доброго времени суток! Сегодня я продемонстрирую вам, как быстро и эффективно настроить PostgreSQL с помощью Docker Compose. Этот процесс займет всего несколько минут, но в результате вы получите полноценную базу данных PostgreSQL, работающую в изолированном Docker контейнере. Важные компоненты, такие как базы данных, таблицы и индексы, будут сохранены на вашей локальной машине благодаря использованию томов (volumes), что обеспечит надежность и доступность данных.

Читать далее
Всего голосов 17: ↑9 и ↓8+4
Комментарии16

Протокол HTTP

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

Текстовая версия видео по протоколу HTTP из обновленного курса по компьютерным сетям для начинающих.

Рассматриваем основы работы HTTP, применяем HTTP на практике в терминале, используем Wireshark для анализа пакетов HTTP. 

Читать далее
Всего голосов 47: ↑44 и ↓3+57
Комментарии31

16 типов менеджеров проектов: от токсика и пингатора до бюрократа и мамы-утки

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

Менеджеров проектов можно классифицировать тысячей разных способов: по опыту, по навыкам, по вовлеченности или по сфере работы. Но мы выбрали самый сложный — классифицировать по их манере управления. Один PM на всё готов и вписывает команду в любой движ, другой — напротив, отказывается от активностей и всячески оберегает «своих» от перегруза. В общей сложности мы насчитали 16 ярких типажей. Попробуем разобрать плюсы и минусы каждого.

Нас зовут Аня Ионова и Миша Дырма, мы оба уже много лет работаем в AGIMA, оба прошли путь от линейного проджекта до руководителя проектного офиса. За эти годы мы вырастили десятки РМ-ов, а общались, наверное, с сотнями, если не с тысячами. Мы поняли, что это хороший материал для — немного субъективного — обобщения. В этой статье мы описываем те типы управления, которые видели собственными глазами. А заодно — даем рекомендации, как выявить и грамотно применить скиллы каждого PM.

Читать далее
Всего голосов 38: ↑33 и ↓5+34
Комментарии31

Что ждет крипту в России в 2024 году: разбираем последствия нового закона на мемах

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

В России выкатили новый закон о регулировании крипты, и грозятся принять его до конца текущего года. Что конкретно там запретили, какая ответственность грозит за «незаконные операции с криптой», и как дальше будут выживать отечественные криптообменники – разобрались во всём этом с профильным юристом.

Читать далее
Всего голосов 41: ↑30 и ↓11+25
Комментарии49

История программирования в СССР: от математических задач до космической программы

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

Советский Союз смог добиться хороших результатов в компьютерных технологиях, несмотря на изоляцию экономики и науки от западного мира. Идя на несколько шагов позади, отечественные конструкторы и программисты создавали разнообразные языки программирования и ЭВМ, среди которых был культовый суперкомпьютер БЭСМ. Рассказываем, как обучались математике и программированию советские дети и студенты, как и на чём кодили в 70-х и какие языки использовались в рамках Советской космической программы.

Читать далее
Всего голосов 21: ↑13 и ↓8+14
Комментарии27

Flipper на минималках. Как мы делаем устройство для чтения и эмуляции ключей от домофонов…

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

Мне понравилась идея Flipper Zero в хранении и эмуляции электронных ключей. Это довольно удобно, можно избавится от половины моей связки со всеми ключами, плюс те ключи, которые я обычно даже не ношу, будут под рукой, в том числе универсальные. Но не понравились его габариты. К тому же, весь остальной функционал хоть мне и интересен, для этой задачи излишен, а за него тоже надо платить. В этот момент появилась идея и, что самое главное, желание самостоятельно реализовать такую штуку.

Конечная идея была в эмуляции ключей стандартов TouchMemory, Em-Marine и Mifare classic в одном устройстве. Хочется, чтобы это устройство было максимально компактным, в идеале вообще помещалось на связку ключей.

Читать далее
Всего голосов 58: ↑56 и ↓2+65
Комментарии56

Секреты адаптации сотрудников: Как создать команду, которая процветает в любой обстановке

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

Всем привет)

Сегодня поделюсь с вами секретами как адаптировать и обеспечить новых сотрудников хорошими условиями, чтобы они точно “прижились” в компании и стали частью команды. Как говорил один пират: “Часть команды - часть корабля”))

Начнем с самых простых основ, так сказать.

Адаптация - это самый важный процесс, который помогает быстро освоиться и чувствовать себя комфортно в новой среде работы. 

А сейчас давайте рассмотрим как ПРАВИЛЬНО должна проходить адаптация нового работника ???

1. Введение в компанию.

Кто бы что ни говорил, но первое впечатление очень важно, поэтому мы в первую очередь представляем новым сотрудникам вашу команду или компанию в целом. 

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

2. Обучение.

Вспомните сами, когда впервые пришли на свое новое место работы: ничего не понятно, все постоянно суетятся и что-то делают, а ты стоишь на одном месте и не можешь понять кто ты и что забыл здесь.

Именно, чтобы не допускать такого с новыми сотрудниками стоит на первых порах обучить их всем премудростям и хитростям вашей работы, если понадобится даже лично))

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

Читать далее
Всего голосов 15: ↑2 и ↓13-11
Комментарии5

Немыслимое – как тебя обсуждать?

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

В своей предпоследней статье на Хабре, «Оде о бесполезности споров» я рассказал об эксперименте, в котором ученый пытался переубедить убежденного сторонника плоской Земли. Как вы помните, он отказался даже посмотреть в телескоп, заявляя что «Сама мысль об искривленной поверхности воды оскорбительна для здравого смысла».

Многие читатели, уверен, задавались вопросами: Как это работает? О чем думает сторонник плоской Земли, когда отказывается проверять главную теорию своей жизни на практике? Принимает ли он решение на основании неверно истолкованных фактов или опирается исключительно на эмоции? Я берусь продемонстрировать это способом, понятным каждому разумному человеку — вывернув ситуацию наизнанку.

Поведение человека определяется логикой и эмоциями. Именно поэтому, все дискуссии тяготеют к одному из двух полюсов — прочитанное настолько неправильно, что ошибку хочется исправить. Или настолько возмутительно, что пройти мимо невозможно! Понять, в каком состоянии вы сейчас находитесь можно по отношению к автору статьи — если вами боретесь с его тезисами, то управляет логика. Если с личностью — то эмоции. Проблема в том, что это знание бесполезно: когда управляют эмоции вам не до логики — гадину надо давить!

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

Набраться мужества и посмотреть в телескоп
Всего голосов 29: ↑19 и ↓10+14
Комментарии193

«Уэбб» обнаружил «чрезвычайно красную» сверхмассивную чёрную дыру, растущую в ранней Вселенной

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

С помощью космического телескопа имени Джеймса Уэбба астрономы обнаружили «чрезвычайно красную» сверхмассивную чёрную дыру, растущую в ранней, довольно тёмной ещё Вселенной.

Красный оттенок сверхмассивной чёрной дыры, которую мы видим примерно через 700 миллионов лет после Большого взрыва, является результатом расширения Вселенной. Когда Вселенная расширяется во всех направлениях, свет, идущий к нам, «краснеет», и в данном случае красное смещение света указывает на пелену из плотного газа и пыли, окутывающую чёрную дыру.

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

Информация

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

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

Software Developer
Senior
C#
.NET
WPF
XAML
MSSQL
Entity Framework
SolidWorks
Kompas 3D
API interfaces