Рейтинг: 0
Создана 11 лет назад
Владелец root

Стена группы

Загрузка...
6 лет назад
#

О сущностях, DTO, ORM и Lazy Load



Объектно-ориентированная парадигма — стандарт для прикладного ПО. Реляционные СУБД — стандарт хранения данных в прикладном ПО. Да, можно писать и на Haskell и хранить данные исключительно в ClickHouse. Но речь о мейнстриме.

ORM позволяет натянуть сову на глобус сделать вид, что RDBMS'а нет и данные хранятся в объектной модели, более подходящей для ООП. Остается «маленькая» такая проблемка — эта абстракция, как и многие другие, «течет». Там где в объектной модели ссылка на другой объект в базе данных foreign key и id. В момент материализации сущности мы встаем перед выбором:

  1. Загрузить все и упасть с out of memory / timeout

  2. Явно указать какие зависимости мы хотим загрузить, а какие — нет и нарушить принцип tell don't ask

  3. Загружать зависимости неявно по требованию с помощью Lazy Load и получить проблемы с производительностью где-то в вызываемом коде



Какую-же ногу себе отрезать: левую или правую?

TLDR Lazy Load не так плох, если использовать только для записи и не использовать при чтении. Но все не так просто и есть куча нюансов.

Источник
6 лет назад
#

Ищем ошибки в исходном коде Amazon Web Services SDK для .NET



Picture 1



Приветствую всех любителей покритиковать чужой код. smile Сегодня в нашей лаборатории новый материал для исследования — исходный код проекта AWS SDK для .NET. В своё время мы писали статью о проверке AWS SDK для C++. Тогда не нашлось ничего особо интересного. Посмотрим, чем нас порадует .NET версия AWS SDK. Хорошая возможность в очередной раз продемонстрировать возможности анализатора PVS-Studio, а также сделать мир немного совершеннее.

Источник
6 лет назад
#

Если окна окрывают, значит — это кому-нибудь нужно



Однажды мне потребовалось открыть окно из консольного приложения. Я хотел это сделать используя wpf, но информации, разбросанной по сети оказалось мало, так что я решил как-то систематизировать и представить этот маленький туториал.

Источник
Den
6 лет назад
#

Новые голосовые приложения на C# в 3CX v16



3CX v16 уже на подходе, и у нас есть отличные новости о нашем приложении для разработчиков Call Flow Designer. В новом релизе CFD использует новый скриптовый «движок», интегрированный в ядро сервера 3CX. Благодаря выполнению скриптов в ядре АТС, производительность голосовых приложений значительно возросла. Кроме того, такой подход открывает доступ к множеству внутренних «продвинутых» функций SIP-ядра. В результате вы получаете эффективный инструмент для создания еще более функциональных голосовых приложений.

Источник
6 лет назад
#

Корректный ASP.NET Core



Корректный ASP.NET Core



Специально для любителей книг из серии «С++ за 24 часа» решил написать статью про ASP.NET Core.



Если вы раньше не разрабатывали под .NET или под какую-то аналогичную платформу, то смысла заходить под кат для вас нет. А вот если вам интересно узнать что такое IoC, DI, DIP, Interseptors, Middleware, Filters (то есть все то, чем отличается Core от классического .NET), то вам определенно есть смысл нажать на «Читать дальше», так как заниматься разработкой без понимания всего этого явно не корректно.



Источник
6 лет назад
#

Ctrl-Alt-Del: учимся любить легаси-код





Какое отношение к легаси-коду имеют «Звёздные войны», группа «Тату» и сочетание «Ctrl-Alt-Del»? Как быть, когда приходишь в большой проект и сталкиваешься с пропастью непонятного старого кода? И как эффективнее донести до начальства, что трудозатраты на ликвидацию технического долга оправдывают себя?

Доклады
Дилана Битти не обходятся без шуток, но эти шутки сопровождают вполне серьёзные рассуждения о главных вопросах разработки. Такое хорошо подходит для завершения конференции: когда зрители уже услышали много хардкора и больше не могут воспринимать слайды с кодом, самое время для более общих вопросов и яркой подачи. И когда нашу .NET-конференцию DotNext 2018 Moscow завершало выступление Дилана про легаси-код, зрителям оно понравилось сильнее всего.

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

Источник
Den
6 лет назад
#

О том, как из C# перешел в Elixir/Phoenix



Как-то раз пришлось мне менять работу. До этого я работал только с языками типа Python, C++, C# и ещё парочкой подобных. А теперь пришлось начать работать с функциональным языком. Первые впечатления были «да что за фигня?». Однако у меня получилось достаточно быстро адаптироваться. Далее я расскажу об основных моментах, к которым пришлось привыкнуть или которые пришлось понять, чтобы начать писать быстро и адекватно.

Источник
Den
6 лет назад
#

Математика в Gamedev по-простому. Кривые и дождь в Unity



Всем привет! Меня зовут Гриша, и я основатель CGDevs. Продолжим говорить про математику что ли. Пожалуй, основное применение математики в геймдеве и компьютерной графики в целом – это VFX. Вот и поговорим про один такой эффект – дождь, а точнее про его основную часть, требующую математики – рябь на поверхности. Последовательно напишем шейдер для ряби на поверхности, и разберём его математику. Если интересно – добро пожаловать под кат. Гитхаб проект прилагается.



Источник
Den
6 лет назад
#

Небольшой обзор SIMD в .NET/C#



Вашему вниманию предлагается небольшой обзор возможностей векторизации алгоритмов в .NET Framework и .NETCORE. Цель статьи познакомить с этими приёмами тех, кто их вообще не знал и показать, что .NET не сильно отстаёт от «настоящих, компилируемых» языков для нативной
разработки.



Источник
6 лет назад
#

Дилетант в opensource — lessons learned за 3 года



Давно, в 2014 году я сделал для себя небольшую утилитку, чтобы перегонять C#-вьюмодели в TypeScript-код. Она сэкономила мне немало времени и нервов. И вот, в сентябре 2015 я решил оформить свои «эксперименты на коленке» в некую удобоваримую форму и вылить их на GitHub. Так началось моё дилетантское участие в разработке открытого ПО. Время шло. И вот, вчера в репозитории с этим проектом, наконец, появился юбилейный, трёхсотый коммит. В связи с этим знаменательным событием, я бы хотел поделиться своим дилетантским опытом о том, с чем придётся столкнуться, если вам вдруг взбредёт в голову разработать что-то «на благо развития индустрии». Я изложу некоторые цифры, расскажу несколько прохладных историй, а так же поделюсь впечатлениями каково это — написать и поддерживать opensource-проект без мам, пап и кредитов поддержки компании, оплаты и… и свободного времени. Заходите под кат, присаживайтесь, мы начинаем.



Источник
Den
6 лет назад
#

Создаём систему электронного хронометража гонок



185282-11516937085b2ed4ea7e36b



По будням, я уже 17 лет занимаюсь разработкой корпоративного софта, у меня было много разных хобби, но в итоге нашёл то, что держит уже 5 лет и не собирается отпускать. С 2013 года большую часть свободного времени я посвящаю мотокроссу и эндуро на внедорожных мотоциклах, в том числе регулярно участвовал в любительских соревнованиях. После неудачного дропа в июне 2017 года я оказался в больнице с полным переломом правой плечевой кости. Вышел из больницы, пришёл в себя и стало ясно, что ездить не получится ещё месяца два — три, а привычка к активной деятельности осталась. Тогда и решил, что надо попробовать самому организовать гонку для своих друзей. С технической точки зрения меня интересовал хронометраж, о том как я делаю собственную систему и провожу гонки читайте под катом.



Источник
6 лет назад
#

Математика в Gamedev по-простому. Триангуляции и Triangle.Net в Unity



Всем привет! Меня зовут Гриша, и я основатель CGDevs. Математика – очень крутой инструмент при разработке игр. Но если скажем без понимания
векторов и
матриц обойтись в принципе сложно, то алгоритмы триангуляций не столь обязательная вещь, но с помощью них решается достаточно большое количество интересных задач. Сегодня хотелось бы поговорить про достаточно важный инструмент в вычислительной геометрии, такой как триангуляции и их применение в игровой индустрии. Кроме того, я написал порт и немного обёрток великолепной библиотеки Triangle.Net для Unity. Если интересно – добро пожаловать под кат. Ссылка на гитхаб прилагается.



Источник
6 лет назад
#

Асинхронный рассинхрон: антипаттерны в работе с async/await в .NET



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





Источник
6 лет назад
#

Стоит ли сохранять длину массива в локальную переменную в C#



Очень часто замечаю, что люди пишут вот так:

var length = array.Length;
for (int i = 0; i < length; i++) {
    //do smth
}


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

Источник
Den
6 лет назад
#

Чат-бот обретает слух, или страдания дилетанта





Не так давно я презентовал синтаксического чат-бота по имени Ваня Разумный (
«Создание ИИ методом «глокой куздры». Интеллектуальная одиссея»). Последующий очевидный этап, который, подобно другим создателям искусственного разума, захотелось пройти – даровать детищу голос. Казалось бы, чего проще?

Пришлось, однако, помучиться. Некоторые проблемы решить так и не удалось – безусловно, по причине дилетантизма. А впрочем, сомневаюсь, что и профессионалам интересно решать сопутствующие задачки. Никому это не интересно, вот и мне не хотелось. Я надеялся по-быстрому прикрутить звук и перейти к последующим задумкам…

Но обо всем по порядку.

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

Источник
1 2 4 5

Авторизация

Войдите, используя Ваш аккаунт

Войти с помощью

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

Skyeng
GeekBrains
Lingualeo