Forwarded from Proglib.academy | IT-курсы
Самое интересное, что разница здесь не столько в модели
На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17❤3
Во многом его ценность определяет опыт тех, кто его разрабатывает и ведёт.
Об этом как раз новый пост Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proglib.academy | IT-курсы
Курс «ИИ для разработчиков» ведут практики из ведущих российских IT-компаний
В ближайшее время познакомим вас с каждым преподавателем. Программа курса — по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
Невалидный пользовательский ввод — ожидаемый сценарий, а не авария. Такой код работает, но использует исключения для обычной проверки:
try
{
var age = int.Parse(input);
SaveAge(age);
}
catch
{
ShowError();
}
if (int.TryParse(input, out var age))
{
SaveAge(age);
}
else
{
ShowError();
}
TryParse() сразу показывает: преобразование может не удаться, и этот результат предусмотрен логикой программы. Используйте его для форм, query-параметров, настроек, файлов и других внешних данных.
📌 Ожидаемая ошибка — явная проверка. Исключение — действительно исключительная ситуация.
#sharp_view
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱8❤3
В C# каждое обращение к элементу массива проверяется на выход за границы. Это безопасно, но медленно. Разработчики часто решают проблему через unsafe-код с указателями — быстро, но опасно: один неверный индекс, и приложение крашится или получает дыру в безопасности.
Есть третий путь — Span<T>
Span — это структура, которая хранит указатель на данные и их длину. Фишка в том, что это ref struct — она живёт только в стеке и не может попасть в кучу. Благодаря этому компилятор гарантирует: данные переживут span, а значит проверки границ можно убрать.
Например, в быстрой сортровке вместо передачи массива с индексами low/high передаёте span. Код короче, переполнение невозможно, а рекурсивные вызовы работают через срезы:
// Было: опасно, (low + high) может переполниться
void Quicksort(int[] array, int low, int high) {
int mid = (low + high) / 2; // 💥 overflow!
// ...
Quicksort(array, low, pivot - 1);
Quicksort(array, pivot + 1, high);
}
// Стало: безопасно и выразительно
void Quicksort(Span<int> span) {
if (span.Length <= 1) return;
int pivot = Partition(span);
Quicksort(span[..pivot]); // левая часть
Quicksort(span[(pivot + 1)..]); // правая часть
}
Раньше для передачи части массива в функцию приходилось либо копировать данные, либо таскать массив + offset + length. Span решает это элегантно: создаёте срез array[10..20], передаёте дальше — никакого копирования, полная безопасность типов.
#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤6🥱1
Разберут, как превратить AI из инструмента для отдельных задач в часть инженерного процесса
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proglib.academy | IT-курсы
Для человека это естественная часть работы. У Claude Code этого контекста по умолчанию нет — только задача и инструкции, которые ему дали.
Поэтому в большой команде недостаточно просто выбрать хорошую модель.❗️ Нужно ещё объяснить ей, как у вас устроена разработка: какие подходы приняты, что обязательно проверять и по каким правилам принимать решения.
GenAI Data Platform, и с этой проблемой сталкивался не раз
Покажет живое демо, разберём, как встроить AI в процесс разработки так, чтобы он реально помогал, а не добавлял ещё один повод для споров на ревью.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
В 1957 году Дэвид Уилкс, Дэвид Уилер и Стэнли Гилл описали быстрый способ подсчёта количества установленных битов (popcount).
Вместо проверки каждого бита по отдельности алгоритм постепенно суммирует их:
• сначала попарно;
• затем группами по 4;
• потом по байтам;
• в конце получает итог одним умножением.
Сегодня современные процессоры обычно выполняют эту операцию аппаратной инструкцией POPCNT, но если её нет, используются программные реализации на основе той же идеи.
В .NET для этого есть BitOperations.PopCount(), а подобные алгоритмы до сих пор можно встретить в низкоуровневом системном коде.
#il_люминатор
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥4
Один из самых долгих споров среди разработчиков.
❇️ Одни считают, что хороший код не нуждается в комментариях. Если приходится объяснять, что происходит, значит, стоит улучшить имена, структуру или разбить метод.
🅰️ Другие отвечают: комментарии нужны. Но не чтобы пересказывать код, а чтобы объяснить почему он написан именно так. Например, описать сложное бизнес-правило, необычное решение, ограничение внешней системы или оставить ссылку на баг.
А как у вас?
👍 — комментариев минимум, код должен говорить сам за себя.
🔥 — комментарии нужны, если помогают понять неочевидную логику.
#entry_point
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥75👍13
В .NET 11 Preview 6 для мобильных приложений .NET MAUI остался только один рантайм — CoreCLR. Отдельный путь через Mono для Android, iOS и Mac Catalyst больше недоступен.
.NET Core, серверные и десктопные приложения .NET. Переход должен сократить различия между платформами и упростить развитие самого рантайма.По данным команды .NET, на iOS и Mac Catalyst CoreCLR уже обычно быстрее Mono. На Android результаты пока близки: разница по времени запуска и размеру приложения укладывается примерно в 10%.
Переход крупный, поэтому Microsoft просит разработчиков уже сейчас запускать свои MAUI-приложения на Preview 6 и сообщать о регрессиях до ноябрьского релиза.
#async_news
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍4🔥3
Ниже — бесплатный вебинар о том, как этого избежать
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Forwarded from Proglib.academy | IT-курсы
Где-то есть тесты, где-то их забыли. Где-то агент следует архитектуре проекта, где-то предлагает решение, которое с ней не сочетается.
Завтра покажем, как передать AI инженерный контекст команды и не превратить его внедрение в ещё один источник хаоса.
Бесплатно. 60 минут доклада + 30 минут вопросов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5