Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Действительно, в ходе исполнения программы исключения не произойдёт.

Строки
var numbers = GetSmallNumbers();
var evenNumbers = numbers.Select(n => n * 2);

строят запросы без непосредственного выполнения.

Отдельный интерес представляет последняя строка метода Main:
Console.WriteLine(evenNumbers.FirstOrDefault());
Данный вызов получит только первый элемент запроса (одиночные вызовы MoveNext() и Current), дальнейшее получение элементов перечисления происходить не будет. Таким образом, код отработает без исключений.

Источник: «Задачник.NET» Андрея Акиньшина
Ozon научит Go бесплатно! Важная новость для всех, кто связывает своё будущее с написанием кода: самый быстрорастущий российский e-commerce запускает бесплатную школу Go. Это возможность за два месяца стать middle-специалистом с опытом решения реальных задач и проектом в портфолио — а лучшие выпускники получат предложение о работе в Ozon. Что нужно, чтобы поступить? Опыт в написании кода, сделанное тестовое задание и, конечно, заявка. Подробности тут: http://ozon.dev/goschool
Программа выведет следующий результат:
Infinity
Infinity
DivideByZeroException


Первые две строчки выполнятся и выведут Infinity. При делении произойдёт конвертация int к double, а операция double operator/(double x, double y) выполняется согласно IEEE 754 (ECMA-334, 14.7.2), а значит при делении положительного числа на положительный ноль должна вернуть положительную бесконечность. Операция int operator/(int x, int y) бросает DivideByZeroException в случае, если правый операнд равен нулю (ECMA-334, 14.7.2). Поэтому третья операция деления выбросит исключение, о чём будет выведено соответствующее сообщение.

Источник: «Задачник.NET» Андрея Акиньшина
RetireNet ― расширение, предназначенное для проверки вашего .NET Core проекта на наличие известных уязвимостей.

https://proglib.io/w/bff6cd49
Вакансия: С# разработчик (full-stack / back-end)
Уровень: Senior
Компания: Mindbox, автоматизация маркетинга в России. Разрабатываем продукт для крупного и среднего бизнеса.
Вилка: 200 000 - 240 000

👨‍🎓 Ожидаем: знания BCL / CLR, чистый код, шаблоны классической и распределенной архитектуры, DDD, оптимизация производительности (желательно, SQL)

Предстоит разрабатывать фичи в облачном продукте с активными пользователями и большой нагрузкой

📌 Условия:
- Прозрачные грейды: разработчиков до 260 000 ₽/мес net, архитекторов, SM — до 320 000 ₽. Квартальные премии от прибыли продуктов
- Комфортный офис (м.Савеловская, м.Белорусская)
- На 100 000 ₽/год софинансируем образование (80%), спорт и здоровье (35%). Книги бесплатно
- Хорошее техническое оснащение
- Молодой коллектив. Спорт, квесты, настолки, ЧГК, VR и караоке

Контакты: @kate_tihorenko

➡️ Подробности - https://proglib.io/vacancies/s-razrabotchik-full-stack-back-end-mindbox-2020-05-19
👍1
Погружаемся в мир 3D-графики, освежаем знания по математике, основам линейной алгебры, тригонометрии, построению матриц и т.д.

В рамках статьи автор рассматривает, как трансформируются 3D-модели и как учитываются источники света. Чтобы помочь с объяснениями, автор приводит диаграммы и примеры кода, чтобы продемонстрировать, как математика и числа обрабатываются в играх.

https://proglib.io/w/cfaa8be0
Действительно, программа выведет str == null и 1/1/0001 12:00:00 AM.

Обе переменные не инициализированы, но string — это ссылочный тип (если более точно, то это immutable тип, что означает reference тип с семантикой value типа), а DateTime представляет из себя тип значения. В связи с тем, что значение по умолчанию неинициализированного типа DateTime определяется как 12:00 1 января 1 года, второе условие не выполнится и мы попадем в альтернативное условие и программа выведет 1/1/0001 12:00:00 AM.
Завершение темы, связанной с рендерингом 3D-игр:

Растеризация и трассировка лучей
Билинейная, трилинейная, анизотропная фильтрация
Освещение и тени. Математика освещения

Вдобавок хотелось бы отметить важную тему про обновление языка C#: ведущий дизайнер языка C# Мэдс Торгерсен делится соображениями по поводу некоторых функций, которые они планируют добавить в C# 9.0.

https://proglib.io/w/34d55d81
Iris_Classon_Migrating_ASP_NET_Microservices_to_ASP_NET_Core_By.pdf
4.9 MB
Migrating ASP.NET Microservices to ASP.NET Core: By Example (2019)

Автор(ы): Iris Classon

Перенесите существующий микросервисный кластер из ASP.NET в ASP.NET Core. Хотя улучшенная производительность и кроссплатформенная поддержка очевидны, эта книга поможет вам преодолеть многие проблемы, чтобы определить, как, когда и в какой степени требуется миграция.

Внедрение Microsoft .NET Core вызвало много радости, но также и путаницу для разработчиков, привыкших к приложениям и сервисам ASP. В этой книге приводятся конкретные шаги по частичной или полной миграции системы микросервисов SaaS с учетом ограниченных ресурсов, времени и финансов.

В дополнение к практическим советам и реальным примерам рассказано о многих неудачах, которые предоставят вам полный 360-градусный обзор миграции.

Автор делится предписывающими рекомендациями по всем частям системы — от кода, зависимостей, редакторов, интеграции и конвейера развертывания до модели распространения.