Берём одно число в секундах и превращаем его в живое описание:
«1 день 3 часа 25 минут 4 секунды» — сразу понятно, сколько времени прошло или осталось.
В этой задаче:
• Разложишь общее количество секунд на дни, часы, минуты и секунды простыми делениями;
• Напишешь функцию, которая подбирает правильные окончания слов по правилам русского языка;
• Соберёшь аккуратную строку, пропуская нулевые части и красиво выводя результат в консоль.
Из такого форматирования вырастают удобные логи, таймеры и отчёты, где за сухими секундами уже видно реальное время.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤9🤝8👍2👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Это современный сайт с обширной базой знаний по backend-разработке на ASP,NET Core, архитектуре приложений, шаблонам проектирования и лучшим практикам написания кода.
На Code Maze вы найдёте подробные гайды, пошаговые туториалы и примеры из реальных проектов. Материалы подойдут как для уверенных новичков, так и для опытных разработчиков.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤12👍7🔥4
Когда логика начинает зависеть от конкретных классов, проект постепенно «деревенеет»: любое изменение тянет за собой цепочку правок, и система теряет гибкость для роста.
В этом гайде:
• Поймём, как отделить намерение от реализации в поведении кода;
• Увидим, почему подмена частей становится проще и безопаснее;
• Разберём, как интерфейсы помогают тестировать модули без хаоса.
Думая в терминах контрактов — код становится гибче, чище и легче расширяется
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤11🤝10👍7😁1
Измеряем время выполнения кода через Stopwatch — без догадок
Иногда кажется, что «этот метод тормозит», но без цифр это только ощущение. В .NET есть готовый инструмент для честного замера времени — класс
Сначала подключим нужное пространство имён — оно лежит в
Теперь померяем, сколько времени занимает простой цикл с подсчётом суммы.
Создаём
Возможный вывод в консоли может выглядеть так:
🔥 Главное — не гадать «быстро или медленно», а мерить цифрами через
➡️ C# Ready | #практика
Иногда кажется, что «этот метод тормозит», но без цифр это только ощущение. В .NET есть готовый инструмент для честного замера времени — класс
Stopwatch.Сначала подключим нужное пространство имён — оно лежит в
System.Diagnostics:using System;
using System.Diagnostics;
Теперь померяем, сколько времени занимает простой цикл с подсчётом суммы.
Создаём
Stopwatch, запускаем, выполняем код, останавливаем и выводим результат:var stopwatch = Stopwatch.StartNew(); // запускаем таймер
long sum = 0;
for (int i = 0; i < 10_000_000; i++)
{
sum += i;
}
stopwatch.Stop(); // останавливаем таймер
Console.WriteLine($"Сумма: {sum}");
Console.WriteLine($"Время выполнения: {stopwatch.ElapsedMilliseconds} мс");
Возможный вывод в консоли может выглядеть так:
Сумма: 49999995000000
Время выполнения: 35 мс
Stopwatch удобно использовать как «обёртку» вокруг любого участка кода: до него — StartNew(), после — Stop() и чтение ElapsedMilliseconds или Elapsed.Stopwatch и уже по ним решать: оптимизировать участок, менять алгоритм или оставить как есть.Please open Telegram to view this post
VIEW IN TELEGRAM
❤16👍10🔥6
Берём путь к папке и превращаем его в наглядное дерево: с отступами, «ветками» и файлами внутри. Вывод мгновенно показывает структуру проекта или директории — без проводника и лишних кликов.
В этой задаче:
• Рекурсивно обойдёшь подкаталоги и соберёшь структуру папок и файлов;
• Научишься рисовать ветки ├──, └── и вертикальные линии;
• Выведешь аккуратное дерево в консоль, получив свой мини-tree.
Такой вывод удобно использовать, чтобы быстро просматривать структуру репозитория, делиться скриншотами дерева и встраивать результат в свои CLI-инструменты или скрипты сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🔥12❤8🤝5
Как не городить try/catch вокруг каждого вызова?
В бизнес-логике часто у каждой операции свой
С фильтрами в
🔥 Условие
➡️ C# Ready | #совет
В бизнес-логике часто у каждой операции свой
try/catch: обрабатываем заказ, отправляем письмо, пишем в лог — и везде одинаковый catch с логированием и сообщением пользователю:
try { ProcessOrder(orderId); }
catch (Exception ex) { Log(ex); ShowError("Что-то пошло не так"); }
try { SendEmail(orderId); }
catch (Exception ex) { Log(ex); ShowError("Что-то пошло не так"); }
С фильтрами в
catch обработку ошибок можно вынести в одно место. В try остаётся чистый, линейный код, а любой выброшенный Exception попадает в один catch. when (LogError(ex)) сначала логирует ошибку, затем возвращает true, поэтому блок обработки выполнится только после успешного логирования.Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤9🔥6
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍15❤12🤝7😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Здесь понятно объясняют вещи, которые обычно подают слишком сложно: шейдеры, освещение, шумы, работа рендера. Все уроки идут с визуализациями и примерами, поэтому даже сложная тема воспринимается легко.
Если интересен геймдев или хочешь лучше понимать, как работает графика в играх — сохраняй.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤8🔥6