Пару лет назад я работал в SaaS-компании, которая страдала от всех возможных проблем, связанных с разработкой программного обеспечения. Код был настолько сложным, что внесение простых изменений занимало месяцы. Все проектные задачи и границы проекта оценивались только руководителем. Разработчики не понимали, какую проблему они решают. А когда не знаешь, чего ждет заказчик, многое из того, что делаешь, оказывается бесполезным. Команда не знала, что предложить заказчику. Все были очень разочарованы...
Пешков Евгений @GraDea
Развиваю DDDevotion?
Агрегаты, мои агрегаты, как приятно о вас думать
7 мин
30KВ Domain-Driven Design выделяют стратегические и тактические паттерны. Например, первые — это Единый язык, а вторые — Агрегаты. Я много раз слышал от коллег, что со стратегией всё понятно, но когда дело доходит до перехода на тактический уровень (до кода) — всё в тумане. Это приводит к некорректным техническим решениям, которые не могут компенсировать даже правильный настрой и близость к бизнесу. Для успеха проекта крайне важно освоить тактические паттерны, особенно Агрегаты. Всё потому, что Агрегаты инкапсулируют в себя почти всю бизнес-логику, это основа вашего приложения. В этой статье я и расскажу про Агрегаты, как они могут помочь и почему важно их освоить. Но...
+29
DDIA book (книга с кабанчиком) — сделай level up в понимании баз данных
4 мин
36KНесколько месяцев назад на одной из ретроспектив мы решили попробовать совместное чтение.
Наш формат:
Что дает:
Одна из недавних книг, которую мы читали — Designing Data-Intensive Applications. Да-да, та самая книга с кабанчиком. И эта книга настолько всем понравилась, что я решил сделать здесь обзор, чтобы большее количество людей ее прочитали.
Карта в исходном качестве
Наш формат:
- Выбираем книгу.
- Определяем часть, которую необходимо прочитать за неделю. Выбираем небольшой объем.
- В пятницу обсуждаем прочитанное.
- Читаем в нерабочее время, обсуждаем в рабочее.
- После окончания книги совместно выбираем следующую.
Что дает:
- Мотивация на чтение и дочитывание.
- Развитие скиллов (в том числе на будущее).
- Выравнивание майндсета и терминологии в команде.
- Рост доверия.
- Лишний повод пообщаться.
Одна из недавних книг, которую мы читали — Designing Data-Intensive Applications. Да-да, та самая книга с кабанчиком. И эта книга настолько всем понравилась, что я решил сделать здесь обзор, чтобы большее количество людей ее прочитали.
Карта в исходном качестве
+22
Путь разработчика ASP.NET → PHP
6 мин
30KТак получилось, что в сентябре прошлого года назад я перешел в компанию, где основным языком бэкенд-разработки был PHP 7. До этого технологии с которыми я работал ограничивались C#, ASP.NET, Javascript (JQuery, Angular 1.x, Typescript), MS SQL, IIS и Windows Server. Теперь же предстояло погружение в новый стек. Данная статьи — не очередной наброс на вентилятор для поддержки холивара. Постараюсь отметить, что показалось необычным или непривычным. Статья обращена к .net разработчикам, но, надеюсь, будет интересна и PHP сообществу.
Начнем с сессии
+14
IIS Request filtering против ddos-атаки
5 мин
16KЛежим
Заказчик, чьи сайты я поддерживал ранее, обратился с тем, что сайт лежит и отдает 500 ошибку. У него стандартный сайт на ASP.NET WebForms, не скажу, что очень нагруженный, но бывали проблемы с производительностью базы данных (MS SQL Server на отдельном сервере). Недавно сервер БД поменяли и перенесли данные.
Этот сайт не основной бизнес заказчика, поэтому практически не обслуживался. У него не настроено никакого мониторинга и сбора метрик и вообще за ним особо не следят.
Данные телеметрии
Какие аномалии бросились в глаза:
- Процесс w3wp использовал более 50% CPU (обычно сильно меньше).
- Количество потоков в этом процесс стабильно прирастало (сайт не успевал обслужить клиентов).
- Диск на сервере БД использовался на 100% (Active Time).
- Длина очереди обращений к диску с базами проекта была большой (обычно в районе нуля-единиц).
- Оперативная память на сервер БД использована полностью.
- Профайлер показал, что есть один горячий метод, который ходит в БД.
+17
Обзор ASP.NET 5
9 мин
72KПеревод
ASP.NET 5 привносит значительные изменения в платформу ASP.NET. В этой статье рассматриваются новые концепции ASP.NET 5 и объясняется, как они помогут разрабатывать современные веб-приложения.
ASP.NET 5 — это лишенный всего избыточного .NET стек для построения современных веб-приложений. Мы построили его с нуля, чтобы обеспечить оптимизированную платформу для разработки приложений, которые будут развернуты в облаке или работать на собственных серверах. Для поддержки гибкости при построении решений данная платформа состоит из модульных компонентов с минимальными накладными расходами.
ASP.NET 5 включает в себя следующие возможности:
Изменения, которые мы сделали для 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 были основаны на запросах клиентов и обратной связи. Эти изменения упрощают разработку, хостинг и обслуживание и ориентированы на современные веб-приложения.
+38
TDD мертв. Да здравствует тестирование
4 мин
31KПеревод
От переводчика. Давид Хейнемейер Ханссон данной статьей поднял острую тему обязательности использования TDD и, даже, возможного вреда от написания тестов перед написанием кода. Именно эта статья послужила лейтмотивом уже пяти встреч на тему жив ли TDD, на которых Давид, Кент Бек и Мартин Фаулер обсуждают достоинства и недостатки TDD, рамки применимости и ограничения. Для тех у кого восприятие устного английского оставляет желать лучшего, SergeyT публикует краткие саммари в своем G+.
+30
Автоматизация тестирования Windows-приложений с использованием .Net
11 мин
10KАвтоматизация тестирования.
Тестирование – деятельность, выполняемая для оценки и улучшения качества программного обеспечения. Эта деятельность, в общем случае, базируется на обнаружении дефектов и проблем в программных системах.
Тестирование программных систем состоит из динамической верификации поведения программ на конечном (ограниченном) наборе тестов, выбранных соответствующим образом из обычно выполняемых действий прикладной области и обеспечивающих проверку соответствия ожидаемому поведению системы.
Основным подходом при тестировании программного обеспечения является тестирование «черного ящика». При данном подходе тестировщику неизвестно внутреннее устройство программы. Тестировщик взаимодействует с программой: вводит данные, нажимает кнопки, манипулирует другими визуальными компонентами и оценивает результаты.
+6
StreamTorrent — смотрим потоковое видео
2 мин
20KИнтернет телевидение
В связи с улучшением тарифов наших провайдеров (сейчас 2,5 мбита за 450 р.) я заинтересовался Интернет телевидением. Меня привлекает два момента: возможность смотреть спортивные трансляции, которых у нас нет или есть только на спутнике (НТВ+), возможность смотреть англоязычные каналы, так как есть желание научиться понимать английскую речь.
+48
Программирование по контракту в .NET Framework 4
9 мин
9.2KСтолкнувшись с проблемой смены работы и желания работать разработчиком в хорошей конторе, понял, что мне не хватает знаний в области архитектуры, проектирования, ООП и прочих, не специфичных для платформы или языка вещах. Источники получения информации, кроме личного опыта, стандартные – книги и Интернет.
К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ
К сожаление последней не нашел в электронном виде, а в бумажном не знаю даже где искать. Из наличия в магазине на тот момент была только книга Мейера, ее я и взял.
К тому времени были прочитаны книги Фаулера о рефакторинге и книга GoF. Эти книги многое мне дали и были очень полезными, но хотелось чего-то более основополагающего об ООП. Поискав по форумам, я нашел несколько книг, которые меня заинтересовали:
Бертран Мейер «Объектно-ориентированное конструирование программных систем»
Гради Буч, Объектно-ориентированный анализ и проектирование
Барбара Лисков. Использование абстракций и спецификаций при разработке программ
К сожаление последней не нашел в электронном виде, а в бумажном не знаю даже где искать. Из наличия в магазине на тот момент была только книга Мейера, ее я и взял.
+11
Информация
- В рейтинге
- Не участвует
- Дата рождения
- Зарегистрирован
- Активность