Архив за 03 мая 2016 - 4

Обратите внимание, что хотя пост написан от первого лица, это перевод статьи из блога Jimmy Bogard, автора AutoMapper.

Меня часто спрашивают, особенно в контексте архитектуры вертикальных слоев (vertical slice architecture), где должна происходить валидация? Если вы применяете DDD, вы можете поместить валидацию внутри сущностей. Но лично я считаю, что валидация не очень вписывается в ответственность сущности.

Часто валидация внутри сущностей делается с помощью аннотаций. Допустим, у нас есть Customer и его поля FirstName/LastName обязательны:

public class Customer
{
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
}

Проблем с таким подходом две:

  • Вы изменяете состояние сущности до валидации, то есть ваша сущность может находиться в невалидном состоянии
  • Неясен контекст операции (что именно пытается сделать пользователь)

И хотя вы можете показать ошибки валидации (обычно генерируемые ORM) пользователю, не так-то просто сопоставить исходные намерения и детали реализации состояния. Как правило, я стараюсь избегать такого подхода.
Читать полностью »

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

А вообще зачем всё это

Мы — маленькая компания, наш штат — порядка 50 человек, 20 из которых — разработчики. Сейчас у нас 4 команды разработки, в каждой из которых сидит примерно по 5 fullstack разработчика. Но одно дело — называть себя fullstack-разработчиком, а другое дело — действительно разбираться одинаково хорошо в тонкостях работы SQL Server'а, ASP.NET, разработке на C#, разбираться в OOP, DDD, знать HTML, CSS, JS и уметь этим всем разумно пользоваться. Конечно же каждый разработчик тяготеет к чему-то своему, но все мы так или иначе специалисты именно в разработке на .NET и 90% кода мы пишем на C#.
Наш продукт — система автоматизации маркетинга — подразумевает довольно большой объем настроек для каждого конкретного клиента, и для того, чтобы наши менеджеры могли заниматься этой самой настройкой продукта под клиентов, у нас есть административный сайт, в котором можно заводить рассылки, создавать триггеры и другие механики, кастомизировать сервисы и многое другое. Этот административный сайт содержит довольно много различного нетривиального UI'а, и чем сильнее мы углубляемся, чем более тонкие моменты мы даём настраивать, чем большее количество фич мы выпускаем в продакшн, тем более интересным он становится. Чтобы не быть голословным, пара скриншотов (уже под катом, и скриншотов там отнюдь не пара!):
Читать полностью »

image

Разработчик операционной системы Sailfish компания Jolla недавно получила $12 млн инвестиций в рамках С раунда. Основной задачей Sailfish является успешная конкуренция с операционной системой Android на рынке бюджетных мобильных устройств.Читать полностью »

Гора изменит климатические условия местности, и дожди будут выпадать чаще

В ОАЭ планируют создать рукотворную гору для увеличения количества осадков - 1
Вполне может быть, что в скором времени на горизонте появится гора

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

А что для этого нужно сделать? Конечно, возвести гору. Для работы по этому проекту наняли ряд специалистов из Национального центра исследований атмосферы, Колорадо, США. Предварительная оценка проекта показала, что если возвести гору в этом регионе, увеличится облачность, что, в теории, может привести к выпадению большего количества осадков.
Читать полностью »

Визуализация движений кунг-фу - 1

Немецкий мультимедиа-дизайнер Тобиас Гриммлер визуально зафиксировал кинетику боевого искусства кунг-фу. Видео создано по заказу Международной ассоциации китайских боевых искусств.
Читать полностью »

image

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

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

В течение 24-х подходов эксперимента присутствовали все шесть подопытных дельфинов. Из них лишь двое смогли справиться с канистрой и добраться до еды. Однако эта пара поработала очень плодотворно – они вместе открыли канистру в 20 случаях, на что им требовалось до 30 секунд. Ещё в одном подходе другой дельфин сумел открыть канистру самостоятельно, что было довольно сложно сделать, и потребовало гораздо больше времени.
Читать полностью »

Компания Microsoft объявила, что с 10 мая 2016 года прекращает выкладывать все обновления на Download Center. Некоторые обновления с этого дня будут распространяться через Microsoft Update Catalog.

К сожалению, на сайте Microsoft Update Catalog пользователей ждёт неприятный сюрприз.

Обновления безопасности Windows можно будет скачать только браузером Internet Explorer - 1

Скачать обновления можно только браузером Internet Explorer 6 или выше. Браузеры Google Chrome, Mozilla Firefox и даже Microsoft Edge не поддерживаются.
Читать полностью »

Вышел на меня заказчик на первый взгляд с нетривиальной задачей «поднять два провайдера и настроить VPN между двумя офисами».

Для таких мелких задач обычно не пишутся ТЗ, а максимум достаточно схемы в Visio.
А вот и сама схема

MikroTik и 192.168.0.0-24 - 1

А вот в чём собственно проблема.
Проблема в том, что на маршрутизаторе R1 три 192.168.0.0/24 сети, а также третья проблема — это то что удалённая сеть также имеет сеть 192.168.0.0/24
Читать полностью »

image

Полное водоизмещение «Морского охотника» составляет около 140 тонн при перевозке 40 тонн дизельного топлива. Корабль оснащен двумя дизельными двигателями, которые могут достигать максимальной скорости 27 узлов (49,8 км в час) и рассчитан на условную 70-дневную миссию. В случае успеха испытаний ВМС США планируют построить целую флотилию беспилотных кораблей этого типа.

«Морской охотник» был разработан Агентством по перспективным оборонным научно-исследовательским разработкам США (DARPA) и оборонной фирмой Leidos. В течение двух лет судно будет проходить испытания у берегов Калифорнии. По словам представителя DARPA Джареда Адамса, беспилотные суда позволят подвергать людей меньшей опасности в ходе военных операций.
Читать полностью »

Объем рынка мобильных игр в Китае по итогам 2015 года превысил $7,1 млрд, говорится в исследовании компаний Newzoo и TalkingData. Рост по сравнению с показателем 2014 года составил 57%. К 2019 году, по прогнозу авторов исследования, доходы индустрии мобильных игровых приложений в стране достигнут $13,9 млрд, что составит 49% от общего объема китайского игрового рынка.

По состоянию на конец 2015 года на китайском рынке было представлено 16,5 тыс мобильных игрЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js