Как стать автором
Обновить
72
0
Пешков Евгений @GraDea

Развиваю DDDevotion💪

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

Темные века разработки программного обеспечения

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

Пару лет назад я работал в SaaS-компании, которая страдала от всех возможных проблем, связанных с разработкой программного обеспечения. Код был настолько сложным, что внесение простых изменений занимало месяцы. Все проектные задачи и границы проекта оценивались только руководителем. Разработчики не понимали, какую проблему они решают. А когда не знаешь, чего ждет заказчик, многое из того, что делаешь, оказывается бесполезным. Команда не знала, что предложить заказчику. Все были очень разочарованы...

Но ситуация не была безнадёжной.
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 2

Агрегаты, мои агрегаты, как приятно о вас думать

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

В Domain-Driven Design выделяют стратегические и тактические паттерны. Например, первые — это Единый язык, а вторые — Агрегаты. Я много раз слышал от коллег, что со стратегией всё понятно, но когда дело доходит до перехода на тактический уровень (до кода) — всё в тумане. Это приводит к некорректным техническим решениям, которые не могут компенсировать даже правильный настрой и близость к бизнесу. Для успеха проекта крайне важно освоить тактические паттерны, особенно Агрегаты. Всё потому, что Агрегаты инкапсулируют в себя почти всю бизнес-логику, это основа вашего приложения. В этой статье я и расскажу про Агрегаты, как они могут помочь и почему важно их освоить. Но...

...сперва антипаттерны
Всего голосов 37: ↑33 и ↓4 +29
Комментарии 96

DDIA book (книга с кабанчиком) — сделай level up в понимании баз данных

Время на прочтение 4 мин
Количество просмотров 33K
Несколько месяцев назад на одной из ретроспектив мы решили попробовать совместное чтение.

Наш формат:

  1. Выбираем книгу.
  2. Определяем часть, которую необходимо прочитать за неделю. Выбираем небольшой объем.
  3. В пятницу обсуждаем прочитанное.
  4. Читаем в нерабочее время, обсуждаем в рабочее.
  5. После окончания книги совместно выбираем следующую.

Что дает:

  1. Мотивация на чтение и дочитывание.
  2. Развитие скиллов (в том числе на будущее).
  3. Выравнивание майндсета и терминологии в команде.
  4. Рост доверия.
  5. Лишний повод пообщаться.

Одна из недавних книг, которую мы читали — Designing Data-Intensive Applications. Да-да, та самая книга с кабанчиком. И эта книга настолько всем понравилась, что я решил сделать здесь обзор, чтобы большее количество людей ее прочитали.


Карта в исходном качестве
Читать дальше →
Всего голосов 22: ↑22 и ↓0 +22
Комментарии 11

Путь разработчика ASP.NET → PHP

Время на прочтение 6 мин
Количество просмотров 29K
Так получилось, что в сентябре прошлого года назад я перешел в компанию, где основным языком бэкенд-разработки был PHP 7. До этого технологии с которыми я работал ограничивались C#, ASP.NET, Javascript (JQuery, Angular 1.x, Typescript), MS SQL, IIS и Windows Server. Теперь же предстояло погружение в новый стек. Данная статьи — не очередной наброс на вентилятор для поддержки холивара. Постараюсь отметить, что показалось необычным или непривычным. Статья обращена к .net разработчикам, но, надеюсь, будет интересна и PHP сообществу.
image

Начнем с сессии

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

IIS Request filtering против ddos-атаки

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

Лежим


Заказчик, чьи сайты я поддерживал ранее, обратился с тем, что сайт лежит и отдает 500 ошибку. У него стандартный сайт на ASP.NET WebForms, не скажу, что очень нагруженный, но бывали проблемы с производительностью базы данных (MS SQL Server на отдельном сервере). Недавно сервер БД поменяли и перенесли данные.

Этот сайт не основной бизнес заказчика, поэтому практически не обслуживался. У него не настроено никакого мониторинга  и сбора метрик и вообще за ним особо не следят.

Данные телеметрии


Какие аномалии бросились в глаза:

  1. Процесс w3wp использовал более 50% CPU (обычно сильно меньше).
  2. Количество потоков в этом процесс стабильно прирастало (сайт не успевал обслужить клиентов).
  3. Диск на сервере БД использовался на 100% (Active Time).
  4. Длина очереди обращений к диску с базами проекта была большой (обычно в районе нуля-единиц).
  5. Оперативная память на сервер БД использована полностью.
  6. Профайлер показал, что есть один горячий метод, который ходит в БД.
Читать дальше →
Всего голосов 19: ↑18 и ↓1 +17
Комментарии 8

Обзор ASP.NET 5

Время на прочтение 9 мин
Количество просмотров 72K
ASP.NET 5 привносит значительные изменения в платформу ASP.NET. В этой статье рассматриваются новые концепции ASP.NET 5 и объясняется, как они помогут разрабатывать современные веб-приложения.

Введение в ASP.NET 5.


ASP.NET 5 — это лишенный всего избыточного .NET стек для построения современных веб-приложений. Мы построили его с нуля, чтобы обеспечить оптимизированную платформу для разработки приложений, которые будут развернуты в облаке или работать на собственных серверах. Для поддержки гибкости при построении решений данная платформа состоит из модульных компонентов с минимальными накладными расходами.
ASP.NET 5 включает в себя следующие возможности:

  • Новая гибкая и кроссплатформенная среда выполнения
  • Новый модульный конвейер для HTTP-запросов
  • Конфигурация готовая к использованию в облаке
  • Унифицированная программная модель, которая сочетает в MVC, Web API и Web Pages
  • Возможность увидеть изменения без повторного построения проекта
  • Использование нескольких версий .NET Framework бок о бок
  • Возможность self-hosting или хостинга на IIS
  • Новые инструменты в Visual Studio 2015
  • Открытый исходный код в GitHub

Изменения, которые мы сделали для ASP.NET 5 были основаны на запросах клиентов и обратной связи. Эти изменения упрощают разработку, хостинг и обслуживание и ориентированы на современные веб-приложения.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 17

TDD мертв. Да здравствует тестирование

Время на прочтение 4 мин
Количество просмотров 31K
От переводчика. Давид Хейнемейер Ханссон данной статьей поднял острую тему обязательности использования TDD и, даже, возможного вреда от написания тестов перед написанием кода. Именно эта статья послужила лейтмотивом уже пяти встреч на тему жив ли TDD, на которых Давид, Кент Бек и Мартин Фаулер обсуждают достоинства и недостатки TDD, рамки применимости и ограничения. Для тех у кого восприятие устного английского оставляет желать лучшего, SergeyT публикует краткие саммари в своем G+.

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

Автоматизация тестирования Windows-приложений с использованием .Net

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

Автоматизация тестирования.


Тестирование – деятельность, выполняемая для оценки и улучшения качества программного обеспечения. Эта деятельность, в общем случае, базируется на обнаружении дефектов и проблем в программных системах.
Тестирование программных систем состоит из динамической верификации поведения программ на конечном (ограниченном) наборе тестов, выбранных соответствующим образом из обычно выполняемых действий прикладной области и обеспечивающих проверку соответствия ожидаемому поведению системы.
Основным подходом при тестировании программного обеспечения является тестирование «черного ящика». При данном подходе тестировщику неизвестно внутреннее устройство программы. Тестировщик взаимодействует с программой: вводит данные, нажимает кнопки, манипулирует другими визуальными компонентами и оценивает результаты.
Читать дальше →
Всего голосов 26: ↑16 и ↓10 +6
Комментарии 17

StreamTorrent — смотрим потоковое видео

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

Интернет телевидение


В связи с улучшением тарифов наших провайдеров (сейчас 2,5 мбита за 450 р.) я заинтересовался Интернет телевидением. Меня привлекает два момента: возможность смотреть спортивные трансляции, которых у нас нет или есть только на спутнике (НТВ+), возможность смотреть англоязычные каналы, так как есть желание научиться понимать английскую речь.
Читать дальше →
Всего голосов 72: ↑60 и ↓12 +48
Комментарии 71

Программирование по контракту в .NET Framework 4

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

К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ

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

Читать дальше →
Всего голосов 39: ↑25 и ↓14 +11
Комментарии 26

Информация

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