🧑💻 Новые возможности модификаторов доступа на авто-свойствах в F# 10
До F# 10, чтобы создать свойство с публичным геттером и приватным сеттером, приходилось писать много кода с явным объявлением полей и методов. Теперь это стало проще — можно задавать разные уровни доступа прямо на авто-свойствах.
Раньше подобное требовало большого количества шаблонного кода:
В F# 10 достаточно написать:
Особенности
• Модификатор доступа можно назначить либо на всё свойство, либо отдельно на геттер или сеттер.
• В сигнатурах .fsi это пока не поддерживается, ограничения остаются
Теперь можно писать меньше шаблонного кода, сохраняя чёткое разграничение прав собственности.
🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека шарписта
#sharp_view
До F# 10, чтобы создать свойство с публичным геттером и приватным сеттером, приходилось писать много кода с явным объявлением полей и методов. Теперь это стало проще — можно задавать разные уровни доступа прямо на авто-свойствах.
Раньше подобное требовало большого количества шаблонного кода:
type Ledger() =
[<DefaultValue>] val mutable private _Balance: decimal
member this.Balance with public get() = this._Balance and private set v = this._Balance <- v
В F# 10 достаточно написать:
type Ledger() =
member val Balance = 0m with public get, private set
Особенности
• Модификатор доступа можно назначить либо на всё свойство, либо отдельно на геттер или сеттер.
• В сигнатурах .fsi это пока не поддерживается, ограничения остаются
Теперь можно писать меньше шаблонного кода, сохраняя чёткое разграничение прав собственности.
🔹 ML для старта в Data Science
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱4❤3👾1
Collection expressions — удобный синтаксис для создания и инициализации коллекций и массивов с помощью квадратных скобок и элементов, разделённых запятыми. Можно использовать spread-элементы (..) для вставки содержимого других коллекций внутрь новой.
Пример:
int[] odds = [1, 3, 5, 7];
string[] vowels = ["a", "e", "i", "o", "u"];
string[] consonants = ["b", "c", "d", "f"];
string[] alphabet = [..vowels, ..consonants, "y"];
С помощью выражений коллекций можно легко создавать массивы, списки, Span и другие коллекторные типы. Появились они в C# 12.
🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Создание качественных модульных тестов — важный, но утомительный и затратный процесс. GitHub Copilot Testing для .NET упрощает эту задачу, автоматически генерируя, собирая и выполняя тесты прямо в вашем рабочем процессе.
Как начать использовать
1. Установите последнюю версию Visual Studio 2026 Insiders и получите лицензию GitHub Copilot
2. Включите функцию GitHub Copilot Testing через настройки (Tools > Options > GitHub > Copilot > Testing
3. Откройте проект или решение на C# и убедитесь, что оно успешно собирается
4. В чате Copilot напишите команду
@Test #target, где #target — имя метода, класса, файла, проекта, решения или #changes для git diff5. Copilot автоматически проанализирует код, создаст проект с тестами (если его нет), сгенерирует, соберёт и выполнит тесты.
Результаты отображаются в Test Explorer и в окне чата, где вы увидите статистику по числу тестов, изменениям в покрытии кода и рекомендации по устранению «тестируемых» пробелов.
🔹 Специалист по ИИ
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4😁1🤩1
Не кодь — вайбкодь. Бесплатно 🚀
Сбер представил бесплатный агентный режим GigaCode — нового цифровой разработчика, который берет на себя рутину, чтобы вы могли сосредоточиться на крутых задачах!
Что умеет GigaCode в агентном режиме?
⏩ Сам находит и открывает нужные файлы
⏩ Вносит изменения в код, запускает тесты, собирает проекты и оформляет коммиты в Git
⏩ Работает в вашей любимой среде: JetBrains IDE, GigaIDE Desktop, а скоро еще и в VS Code
Плюс, в GigaCode появилась новая модель автодополнения кода — GigaCode Inline 4.0. Она мгновенно предлагает нужные фрагменты кода для Python, Java, JavaScript и других языков. Подсказки стали еще точнее, а работа с контекстом — еще лучше.
🖱 Хотите ускорить разработку? Обновленный GigaCode уже доступен на GitVerse.
Начать вайбкодить — по ссылке
Сбер представил бесплатный агентный режим GigaCode — нового цифровой разработчика, который берет на себя рутину, чтобы вы могли сосредоточиться на крутых задачах!
Что умеет GigaCode в агентном режиме?
Плюс, в GigaCode появилась новая модель автодополнения кода — GigaCode Inline 4.0. Она мгновенно предлагает нужные фрагменты кода для Python, Java, JavaScript и других языков. Подсказки стали еще точнее, а работа с контекстом — еще лучше.
Начать вайбкодить — по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱14😢13😁2🤩1👾1
🛠 Структурные опциональные параметры в F# 10
В F# 10 появилась возможность использовать структурный тип
Теперь, применяя атрибут
Раньше:
Теперь с F# 10:
Такой код работает быстрее в случаях, когда параметр отсутствует, и уменьшает давление на сборщик.
🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека шарписта
#sharp_view
В F# 10 появилась возможность использовать структурный тип
ValueOption<'T> для опциональных параметров. Это позволяет избежать выделения памяти в куче.Теперь, применяя атрибут
[<Struct>], можно указать компилятору использовать ValueOption<'T> — структуру, которая хранится на стеке и не требует дополнительных аллокаций.Раньше:
type X() =
static member M(?x: string) =
match x with
| Some v -> printfn "Some %s" v
| None -> printfn "None"
Теперь с F# 10:
type X() =
static member M([<Struct>] ?x: string) =
match x with
| ValueSome v -> printfn "ValueSome %s" v
| ValueNone -> printfn "ValueNone"
Такой код работает быстрее в случаях, когда параметр отсутствует, и уменьшает давление на сборщик.
🔹 Экспресс-курс «Математика для Data Science»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Фильтры исключений позволяют выполнить код при срабатывании catch, но при этом не перехватывать исключение.
Пример:
try
{
await work();
}
catch (Exception ex) when (Log(ex))
{
// этот блок не выполняется, так как Log возвращает false
}
static bool Log(Exception ex)
{
// логируем исключение
return false;
}
Метод Log вызывается один раз при исключении, логирует его и возвращает false, чтобы исключение продолжило всплывать дальше без перехвата.
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔9😁4❤1👾1
Обычный сценарий поиска работы в ИТ до сих пор у многих сводится к загрузке резюме на несколько площадок и ожиданию, пока система кого то заинтересует. При этом автоматические правила, внутренние фильтры и массовая обработка откликов оставляют кандидата без ответа.
Альтернатива в том, чтобы не ограничиваться джоббордами и целенаправленно выходить на людей, которые управляют инженерными командами. Общение с CTO, тимлидами и фаундерами превращает поиск работы в прямой профессиональный разговор, а не попытку пройти через набор формальных стадий.
🔸 Практический интенсив «Архитектуры и шаблоны проектирования»
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 На рынке сейчас математика — снова король: AI растёт быстрее, чем вузы успевают обновлять программы. Мы же перестраиваем курс под индустрию мгновенно.
Хочешь наконец разобраться в математике для DS, а не гуглить «что такое градиент» перед собесом?
Новый курс «Математика для разработки AI-моделей» — это 8 недель плотной подготовки, свежая программа и только актуальные темы, которые реально нужны в ML.
Что в курсе:
→ линал, производные, градиенты, вероятности, статистика;
→ практика на Python и 3 большие ДЗ;
→ живые вебинары + разбор ваших вопросов;
→ финальный мини-проект, который можно положить в портфолио;
→ доступ к материалам и чат с экспертами.
Для старта нужны только школьная математика и базовый Python.
🎁 Бонусы ноября:
— скидка 40% до 30 ноября;
— «Базовая математика» в подарок при оплате;
→ бесплатный тест уровня математики.
👉 Записывайся на курс
Хочешь наконец разобраться в математике для DS, а не гуглить «что такое градиент» перед собесом?
Новый курс «Математика для разработки AI-моделей» — это 8 недель плотной подготовки, свежая программа и только актуальные темы, которые реально нужны в ML.
Что в курсе:
→ линал, производные, градиенты, вероятности, статистика;
→ практика на Python и 3 большие ДЗ;
→ живые вебинары + разбор ваших вопросов;
→ финальный мини-проект, который можно положить в портфолио;
→ доступ к материалам и чат с экспертами.
Для старта нужны только школьная математика и базовый Python.
🎁 Бонусы ноября:
— скидка 40% до 30 ноября;
— «Базовая математика» в подарок при оплате;
→ бесплатный тест уровня математики.
👉 Записывайся на курс
В F# 10 упростили синтаксис для аннотирования типов в вычислительных выражениях. Теперь можно добавлять типы в let!, use! и and! без необходимости использовать дополнительные скобки вокруг идентификаторов.
ньше для указания типа в вычислительном выражении приходилось писать так:
let! (x: int) = fetchValue()
Сейчас можно написать короче:
let! x: int = fetchValue()
Если вы часто работаете с async, task или другими вычислениями, это изменение вы оцените.
🔹 Алгоритмы и структуры данных
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱1