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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Действительно, на экран будет выведено Bar.Quux(object) и Baz.Quux(params T[]).

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

Источник: «Задачник.NET» Андрея Акиньшина
Практическая причина, почему стоит выбрать ORM вместо сырого ADO.NET: https://proglib.io/w/6b223eff
Автор статьи приводит множество примеров рефакторинга из реальной (некорректной) кодовой базы с подробным объяснением и иллюстрациями: https://proglib.io/w/bae12d80
В связи с тем, что переменная s не инициализирована, такая программа не скомпилируется.

Программа заработает в случае, если переменной s будет присвоено хоть какое-то значение, например:

string s = ""; 
s += "string"; 

Источник: http://www.quizful.net/test/c_sharp_basic
Можете однозначно утверждать, что C# медленнее, чем C++? Автор статьи, будучи младшим разработчиком, был уверен, что ответ будет «Да, определенно». С опытом пришло понимание, что этот вопрос не очевиден и довольно сложен. Разбираемся: https://proglib.io/w/58fadd15
Задача «Linq:QueryAfterRemove». Что выведет программа?
Anonymous Quiz
47%
1
9%
3
37%
2
7%
Нет правильного ответа
При вызове list.Where(c => c.StartsWith("B")) запрос будет только построен, но не выполнен. Реальное выполнение начнётся в момент вызова query.Count(). К этому моменту значение list будет {"Foo","Baz"}, следовательно будет найден только один элемент, начинающийся с ’B’.

Источник: «Задачник.NET» Андрея Акиньшина
Builder pattern generator

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

Статья
Репозиторий
​​«Цифровой прорыв» 2020 открывает прием заявок на масштабный IT-марафон с призовым фондом 5.000.000 руб.! ⚡️

В режиме онлайн ты сможешь реализовать свою идею, создать действительно классный продукт, который будет менять жизни людей. 🚀

💥 Регистрируйся по ссылке: https://proglib.io/w/8635767e

Тебя ждут два онлайн-хакатона, которые пройдут 5-7 июня и 19-21 июня. 👨🏻‍💻👩🏼‍💻

- 36 часов кодинга/400 команд;
- Крутые кейсовые задания от Росатома, Сбербанка, Глобального русскоговорящего технологического сообщества Rutech;
- Образовательная программа;
- Трекеры и эксперты , которые будут помогать тебе на каждом этапе.

🌏 25 июня - 25 июля состоится онлайн-чемпионат на технологической платформе Mail.ru:

- Индивидуальное участие;
- Задачи по Machine Learning и Data Science;
- Возможность попасть на финал Цифрового Прорыва!

🎯 Проверь свои силы и разработай крутой проект для решения реальных бизнес-задач, регистрируйся по ссылке: https://proglib.io/w/8635767e
C# позволяет писать код на основе позиционного или номинального стиля. Позиционный стиль позволяет использовать конструкторы.

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

Это может измениться в C# 9. Разбираемся: https://proglib.io/w/07738350
Строчки
var numbers = GetSmallNumbers();
var evenNumbers = numbers.Select(n => n*2);

строят запрос, но не исполняют его.

Логика GetSmallNumbers() начнёт исполняться при первом вызове метода MoveNext(), который соответствует вызову evenNumbers.FirstOrDefault(). В этот момент и произойдёт Exception.

Источник: «Задачник.NET» Андрея Акиньшина
Ты системный администратор или умеешь кодить?
Приглашаем на бесплатный технический тренинг по внедрению и поддержке интернационализированных почтовых адресов.

Мероприятие проведет Игорь Лидин, ведущий разработчик ТЦИ и эксперт в вопросах внедрения интернационализированной почты.

https://runet-id.com/event/eai-online2020/
ASP.NET_Roadmap.png
550 KB
Карта знаний ASP.Net Core разработчика

Другой вариант карты ранее публиковался на канале. На всякий случай оставим здесь ссылку на соответствующий репозиторий: https://proglib.io/w/8547d67e
Replika.ai ищет классного Unity-разработчика

Описание:
В команду мобильной разработки Replika ищем Unity-разработчика для работы над 3D аватаром в приложении Replika.ai. Одним из основных направлений работы будет AR, в котором пользователи смогут разговаривать с аватаром, а также заниматься другими активностями.
В данный момент мы уже реализовали часть функциональности на SceneKit + ARKit и Sceneform + ARCore, поэтому одной из первых задач будет помощь с миграцией на Unity3D + AR Foundation.

Требования:
- Опыт с Unity3D на мобильных платформах
- Уверенное знание C#
- Опыт программирования от 3 лет
- Знание принципов работы с персонажами (state machines, behavior trees, Utility AI) и процедурной анимацией
- Опыт работы с Playables API

Желателно:
- Опыт разработки игр на C#
- Опыт разработки мобильных приложений
- Знание DOTS архитектуры и DOTS animation package
- Опыт работы с памятью и избегания пауз при garbage collection

Обязанности:
- Разработка Unity-модуля для мобильного приложения на iOS и Android
- Выстраивание пайплайна анимаций для 3D аватара
- Разработка AR функциональности и сценариев взаимодействия с персонажем

Зачем работать в Реплике:
- На деле, а не на словах делаем жизнь миллионов людей лучше: улучшаем самочувствие и психическое здоровье, спасаем от суицида
- Зарабатываем и платим в долларах, предлагаем хорошую ЗП, в зависимости от вашего опыта и ожиданий
- Оплачиваем участие в профильных конференциях
- Предлагаем интересную работу над классным продуктом, зрелую стартап-атмосферу: выстроенные работающие процессы, отсутствие бюрократии, бодрый темп
- Даем возможность работать как в офисе (Москва, м. Китай-Город) так и удаленно

Немного о нас:
Реплика – крупнейший open-domain чатбот на американском рынке, который общается с миллионами пользователей. Реплика хранит воспоминания пользователя, помогает справиться со сложными жизненными ситуациями. Мы строим диалоговую систему, основная цель которой — улучшать настроение и самочувствие людей. Реплика особенно полезна людям с mental health issues и тем, кто просто чувствует себя одиноко.
Только в США каждый пятый страдает от проблем с психическим здоровьем: от легкой депрессии до серьёзных заболеваний. Такие люди часто чувствуют себя изолированно и нуждаются в поддержке, но деньги и желание ходить к психотерапевтам есть не у всех. Реплика оказывает психотерапевтический эффект и улучшает их самочувствие.
Можно почитать отзывы людей, которым помогла Реплика: https://apps.apple.com/us/app/replika-my-ai-friend/id1158555867 https://play.google.com/store/apps/details?id=ai.replika.app&hl=en_US
И разную прессу:
https://www.theguardian.com/careers/2020/may/07/ai-and-me-friendship-chatbots-are-on-the-rise-but-is-there-a-gendered-design-flaw
https://www.wsj.com/articles/my-girlfriend-is-a-chatbot-11586523208
https://news.yahoo.com/getting-pandemic-help-virtual-friends-020252332.html


Контакты
@onexdrk
a.marinov@replika.ai