• Быстрорастворимое проектирование
    0

    Можно и так, но тогда придётся вручную выстраивать pipe для каждого запроса. Мне удобнее определить правила глобально.

  • Быстрорастворимое проектирование
    0

    В ближайшее время не будет.

  • Быстрорастворимое проектирование
    0

    В этом году в Питере будет сразу два доклада в поддержку вашей точки зрения: https://dotnext-piter.ru/2019/spb/talks/4vehcump1bwnqlqrewsilq/, https://dotnext-piter.ru/2019/spb/talks/2nvbecxhuasmfgnmxmnczt/. Приходите с VanKrock, будет что обсудить.

  • Быстрорастворимое проектирование
    +2

    Ага, можно. Либо в middleware, либо в action filter. На Кодфесте я даже добавил несколько слайдов об этой альтернативе. В этом случае middleware / action filter будет выполнять функцию соответствующего декоратора, а тип результата выполнения pipeline будет всегда IActionResult. Основная идея остаётся прежней, но меняются детали реализации. Плюс — работает из коробки. Минус — жестко привязано к MVC. Спасибо, что упомянули. Попозже расширю пост контентом с Кодфеста.

  • Быстрорастворимое проектирование
    +3
    ??? лет опыта (нирвана) — покупаешь домик в горах / на берегу океана, наслаждаешься видом, не пишешь код
  • Быстрорастворимое проектирование
    +2

    Есть отличие: хендлер с двумя дженериками, поэтому можно все обвесить одним набором декораторов. С методами репозиториев и сервисов этот номер не пройдёт, потому что будут другие интерфейсы с другим набором параметров и методов. А то что у всех есть эта своя уютная инфраструктура, это да, есть. Если вам достался код ситхов, проще перейти на темную сторону, не находите?:)

  • Где и как открыть центр разработки?
    0

    А сколько сейчас в Казани проживает?

  • Где и как открыть центр разработки?
    0

    А почем у вас квадратов 100-150 снять с хорошим интернетом?

  • Лучшая худшая работа в мире: ищем хабраавтора
    +7

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

  • Audio AI: выделяем вокал из музыки с помощью свёрточных нейросетей
    0
    Надо рядом с вокалом положить в микс электрогитару, пропущенную через вокодер.

    Мусьё знает толк :))
  • Цена качества: 7 принципов оптимизации затрат на тестирование
    0

    Классная статья, спасибо!

  • Интервалы: грядущая эволюция C++
    0

    Ну за Java не скажу, а в C# если отправной точкой считать LINQ (как это часто бывает), то фольекаться тоже есть куда.

  • В разработке — каждый сам за себя. Но иногда это приводит в тупик
    +3
    и это будет, кстати, правда
  • В разработке — каждый сам за себя. Но иногда это приводит в тупик
    0
    Хуже того, у меня вообще сначала кругом LINQ и про сложность алгоритма я вообще не думаю.
  • В разработке — каждый сам за себя. Но иногда это приводит в тупик
    –2

    Это называется парное программирование. Придумали очень давно. Я всегда скидываю наброски дизайна, в котором не уверен на ревью команде. Не понимаю, почему нельзя показывать недописанных код.

  • О сущностях, DTO, ORM и Lazy Load
    +1
    Строго говоря многие проблемы как по мне не на уровне библиотек, а в реализации LINQ. С Roslyn наверняка можно добавить специальный атрибутик для компиляции, чтобы гибче управлять тем, что за экспрешны в лямбды попадают, чтобы не в рантайме это фиксить, а компилировать сразу как надо. А совсем прекрасно было бы, если еще настроечка была, чтобы билд ломался, если лямбду не разобрать.

    Можно конечно анализатор написать, но в такие моменты появляется ощущение, что делаешь чужую работу.
  • О сущностях, DTO, ORM и Lazy Load
    0

    Запилили совместимость с ЕFCore?

  • Я растерял веру в разработку, выгорел, но меня спас культ инструмента
    +3
    Но есть и минусы, самый большой связан с C# :) Он (C#) настолько хорош, то убедить бизнесы переходить с него — прям таки адски сложная задача. Стоит ли?

    Долго для самого себя искал аргументы, чтобы перейти с C# на F# в продакшн, но не нашел достаточного количества. Какие факторы стали решающими для вас?
  • В Госдуму внесен законопроект об автономной работе рунета
    +1

    Пока читал комментарии мозг как-то сам придумал сценарий для фильма в жанре отечественного кибер-панка. 2045 год. В России введён железный занавес, доступа к интернету нет, есть только внутренняя сеть в стране. Доступ к сети осуществляется с помощью вживлённых чипов. Весь трафик согласно 5 поправке к священному пакету Яровой хранится бессрочно. Последняя надежда — распределенное кибер-подполье, использующее дронов для подключения к спутниковому интернету. Главный герой — молодой сотрудник кибер отдела ФСБ — Игнат. Во время очередного задания он влюбляется в юную участницу сопротивления — Ольгу. Ольга показывает Игнату информацию из настоящего интернета и Игнат решает стать двойным агентом на стороне подполья. Теперь им предстоит найти легендарного хакера. Хакер должен помочь обойти защиту и опубликовать информацию из мирового интернета в чебурнете. В 2020 он уже взломал правительственные сервера и опубликовал секретную информацию в тогда еще открытом интернете. После этого никто больше о нем ничего не слышал… до сегодняшнего дня. Героям предстоит путешествие в Сибирскую тайгу.

  • В Госдуму внесен законопроект об автономной работе рунета
    +3

    Пока читал комментарии мозг как-то сам придумал сценарий для фильма в жанре отечественного кибер-панка. 2045 год. В России введён железный занавес, доступа к интернету нет, есть только внутренняя сеть в стране. Доступ к сети осуществляется с помощью вживлённых чипов. Весь трафик согласно 5 поправке к священному пакету Яровой хранится бессрочно. Последняя надежда — распределенное кибер-подполье, использующее дронов для подключения к спутниковому интернету. Главный герой — молодой сотрудник кибер отдела ФСБ — Игнат. Во время очередного задания он влюбляется в юную хакерские Ольгу. Ольга показывает Игнату информацию из настоящего интернета и Игнат решает стать двойным агентом на стороне подполья. Теперь им предстоит найти легендарного хакера. Хакер должен помочь обойти защиту и опубликовать информацию из мирового интернета в чебурнете. В 2020 он уже взломал правительственные сервера и опубликовал секретную информацию в тогда еще открытом интернете. После этого никто больше о нем ничего не слышал… до сегодняшнего дня. Героям предстоит путешествие в Сибирскую тайгу.

  • Сущности в DDD-стиле с Entity Framework Core
    0
    А если для инициализации агрегата потребуется over 20 параметров. Делать конструктор с кучей параметров?

    Значит это какой-то неправильный агрегат и делает неправильный мед, в том смысле, что не хватает какие-то дополнительных сущностей. За 10 лет ни разу не пришлось даже 10 параметров в конструктор передать.

    И что делать если логика должна предполагать как полную так и частичную инициализацию агрегата?

    Частичная инициализации сущности — анти-паттерн. Еслу нужно работать с драфтами, добавьте соответствующие ValueObject'ы по одному на каждый кейс частичной инициализации.
  • Сущности в DDD-стиле с Entity Framework Core
    0
    Если данные можно менять по отдельности / вместе в любых комбинациях и это не на что не влияет, оставляйте все публичным. Но если это действительно можно делать, то в вашем приложении просто нет никакой бизнес-логики и DDD не нужен.
  • Иди-ка ты на !@# со своей «токсичностью»
    +1

    Вот если управляли как в комментарии выше: «мил человек, поправь косяки, иначе придётся попрощаться», не вижу ничего ошибочного. И на интервью кандидат мог хорошо отвечать, а потом халтурить. Есть полно профессиональных собеседующихся. Да и стресс по таким незначительным поводам испытывать ни к чему.

  • Сущности в DDD-стиле с Entity Framework Core
    0
    Это про BizRunner'ы уже. То что выходит за рамки статьи. По поводу этого кода с вами согласен: много boilerplate из ничего.
  • Сущности в DDD-стиле с Entity Framework Core
    0
    DTO вам в любом случае нужен, если мапинг не 1 к 1, не уйдете. А репозиторий и сервис вам зачем, если уже есть метод UpdateBook?

    В примере, кстати Book.UpdatePubDate(date), а не UpdateBook(ChangePubDateDto dto).
  • Сущности в DDD-стиле с Entity Framework Core
    0
    Про ValueType с вами согласен на все 100%.

    Тем более, что EF Core с версии 2.1 позволяет задавать собственные «Value conversions» для таких объектов. Но тут есть некоторые ограничения, главное из которых — если такой ValueObject попадает в expression tree, например — .Where(), то в этом случае из БД загрузяться все обьекты и только потом отфильтруются. Но это можно легко обойти. NHibernate в этом плане гораздо лучше подходит для DDD.

    Не совсем верно. Если например, объявить тип Email, который будет проверять, что строка гарантированно вида #@.#, то в LINQ при сравнении с другой строкой запрос построится корректно, а вот с типом Email EF не сможет. Задача конечно решается через визитор на входе в QueryProvider, но это уже не «из коробки».
  • Сущности в DDD-стиле с Entity Framework Core
    0
    Да, меня тоже напрягает. Да и автора напрягает. Вообще если в read-стеке всегда делать select в dto, то lazy-load не так уж и страшен
  • Сущности в DDD-стиле с Entity Framework Core
    0
    К сожалению подсветка кода Хабра не поддерживает номера строк, а в оригинальной статье они есть. Оставил текст как в оригинале.
  • Иди-ка ты на !@# со своей «токсичностью»
    0

    Вот, кстати, самый нормальный взрослый подход. Только почему-то во многих компаниях до сих пор хихоньки, хахоньки и «да ты — %##%, да что же ты такое написал?!»

  • Зависимые типы — будущее языков программирования
    +2

    А что такое F*?

  • Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits
    +1
    А если просто <НОМЕР-ЗАДАЧИ-В-ТРЕКЕРЕ> и сквошить все комиты? 1 комит — 1 задача. Кому интересно, пойдет в джиру и посмотрит, не?
  • Дзен и искусство поддержки чистого кода
    0

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

  • Манифест жёсткого программиста
    0

    Например ПО для выставки, которая будет проходить в течение трёх дней ровно через два месяца

  • Манифест жёсткого программиста
    0
    Это если вы можете откатиться на предыдущую версию. А бывают такие системы, которые очень-очень-очень много пишут. Постоянно.
  • Scrum is dead
    0

    Надо взять на вооружение:)

  • Деревья выражений в enterprise-разработке
    0
    А эта штука тоже декомпилирует через GetIlAsByteArray?
  • Деревья выражений в enterprise-разработке
    0

    Спасибо за то что поправили. Я конечно имел в виду C#. В F# ещё и провайдеры типов и проблематика EF в нем не так актуальна.

  • Распараллеливание задач с зависимостями —  пример на .NET
    0

    Присоединяюсь к просьбе сообщить о начале продаж.

  • Директор по здравому смыслу: как перестать все контролировать и начать работать в команде
    0
    Нет, не получается. Тимлид — зам. менедежера по технической.
  • ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core
    0

    При условии, что вы пишете seed’в есть такое «костыль»: делаете батник с миграцией init, пишете код, удаляете миграции, вызываете init и migrate. В каждый момент у вас одна миграция. Менее изящно, но на этапе прототипирования бывает удобно. Если pk надо заменить, например.