AnTiks - все видео
Новые видео из канала RuTube на сегодня - 17 April 2026 г.
00:30 — Недостаток тестов. Занимают очень много времени. 01:05 — Отказ от тестов - тактическое преимущество по времени разработки. Стратегический проигрыш на этапе поддержки. 02:20 — Тратишь время на написание тестов на этапе разработки - экономишь время и деньги на этапе поддержки. 05:50 — Тестирование − следующая стадия организации процесса разработки. 07:30 — Ориентирование на совместную разработку. Внедрение тестов в больших компаниях. 09:45 — Лучше, когда программист сам понимает выгоду тестов.00:05 — Самое главное значение тестирования - избежать ошибок. Повышает надёжность продукта. 00:45 — Тестирование может упорядочивать процесс разработки (TDD - Test driven development) 01:15 — Тестирование повышает доверие при использовании чужого кода. 03:45 — Дидактическое(Тип: Объяснения) значение. Помогают понять, что ждать от метода. И не тратить время, чтобы искать ответ в документации. 06:35 — Использование тестирования увеличивает bus factor (bus factor - кол-во людей, которые должны попасть под автобус, чтобы выполнение проекта стало невозможным) 08:10 — Улучшает менеджмент проекта. 08:20 — Упрощает рефакторинг и развитие проекта.00:40 — Функциональные тесты. Тесты проверяющие внешние поведение кода. 01:30 — Функциональные тесты подходят для случаев, когда важно, чтобы ответ был в каких-то границах и не требуется точный ответ. 03:10 — Функциональный тест может проверять только нужную функциональность метода. Не всю. 03:25 — Функциональный тест на основе случайных чисел. 06:00 — Перегрузка Assert.AreEqual(expected, actual, delta), позволяющего сравнивать числа с некоторой точность delta. 06:30 — Минусы функционального тестирования. Некоторые конкретные случаи могут остаться вне тестирования.00:05 — Покрытие тестами - каждая строчка кода проверяется каким-то тестом. 01:35 — Ручная проверка(Подсчёт) покрытия, через break points. (Автоматическая проверка покрытия Visual Studio Test → Analyse Code Coverage) 03:15 — Надо стремиться к полному покрытию тестами. Т.к. это будет означать, что алгоритм проверяется и работает.00:00 — Больше тестов. 00:05 — Тест на отрицательный дискриминант. 00:55 — Debug тестов. 01:25 — О создании тестов для алгоритмов. 02:15 — Исправление кода. 03:35 — Рассмотрим код тестов. Нарушение принципа “не повторяй себя”. 04:00 — Экстракция метода. 05:50 — Params. Ключевое слово, позволяющие методу принимать произвольное число аргументов.Модификация архитектуры приложения для автоматического тестирования. 00:08 — Пример кода, не подходящего для автоматического тестирования 01:03 — Разбор ошибок 02:24 — Модификация программы для автоматического тестирования: вынесение функционала, не связанного с вводом и выводом на экран, в отдельный метод 04:25 — Недостатки использования статических переменных 06:30 — Обоснование улучшения тестируемости кода после выделения отдельного метода 07:15 — Постановка проблемы: необходимость разделения функционала в отдельные программы 08:04 — Создание библиотеки 09:26 — Подключение библиотеки к проекту 11:30 — Анализ выполнения программы, использующей библиотеку 12:18 — Содержание каталога с проектом при подключении библиотек00:05 — Модульные тесты (unit tests). Тестируют отдельные части приложения (методы). 00:15 — Библиотеки для модульных тестов. 00:30 — NUnit. 00:55 — Создание модульных тестов. 01:40 — Инициализация библиотеки. 02:10 — Метки класса [TestClass] и метода [TestMethod]. 02:40 — Тело теста. Три фазы: Arrange - Инициализация значения, Act - Вызов функциональности, Assert - Проверка результата. 04:20 — Запуск модульного теста.Автоматическое тестирование как способ борьбы с багами. 00:20 — Постановка проблемы 00:50 — Происхождение слова Debug 02:40 — Примеры последствий неправильной работы ПО 07:05 — Ответственность за неправильную работу ПО 08:40 — Методики избавления от багов 09:32 — Недостаток использования встроенного дебаггера для отладки в больших проектах 10:25 — Понятие тестирования 10:36 — Отличие тестирования от дебаггинга 11:10 — Автоматическое и неавтоматическое тестирование00:05 — Вывод кавычек на консоль 01:38 — Экранирование кавычек при помощи \ 02:00 — Использование \ для специальных символов: символ перевода строки \n, символа возврата каретки \r 03:30 — Применение консольных приложений 05:14 — Пример, когда не нужен графический интерфейс 06:10 — Реализация Progress Bar в консоли при помощи \r 06:40 — Спецсимвол \t - табуляция 07:33 — Примеры некорректной работы программ из-за отсутствия экранирования \ 08:38 — Экранирование \ 08:45 — Особый способ записи строк при помощи @, решающий проблемы с экранированием 09:45 — Кавычки внутри строки с @00:05 — Переменная, чем она является, и ее функции. 00:50 — Тип переменной, и для чего он нужен. 02:09 — Понятие типа данных. 03:12 — Тип double. 03:36 — Тип long. 04:06 — Тип float. 05:35 — Способы преобразования одного типа данных к другому. Понятие конверсии. 10:30 — Явный и неявный cast. 11:07 — Приведение большего типа данных к меньшему. 12:10 — Checked-способ отлова ошибки. 12:57 — Не стоит округлять число отбрасыванием дробной части. 13:56 — Метод Round. 14:44 — Важность конверсии.О базовых понятиях языка программирования С# и о том, как пишется приложение в среде разработки Visual Studio. 01:35 — Структура проекта. 02:40 — Принцип запуска приложения. 03:38 — Понятие Solution(решение), и для чего оно нужно. 04:20 — Предназначение каждого из кодовых файлов, входящих в приложение. 05:12 — Библиотека System. Отличие языка программирования С# и библиотеки .NET. 06:36 — Понятие метода, и какова его функция. 07:46 — Понятие классов. 08:15 — Пространство имен. 08:47 — Между пространством имен и сборками нет прямого соответствия. 09:12 — Точка входа. 09:50 — Функции инструкций. 11:40 — Принцип и способы запуска программы. 13:24 — Файлы, созданные Visual Studio на диске. 14:30 — Xamarin-одна из сред разработки приложений на языке С#.00:10 — Самостоятельность и почему она нужна. 01:30 — Энциклопедическое изучение языка программирования – пустая трата времени. 03:05 — Приоритет курса: научиться изучать этот язык. 04:20 — Наглядная иллюстрация. Отличия промышленного кода от учебного кода. 04:45 — Эксперименты как способ изучения языка.00:35 — Кодировка. Перевод символов в байты. 01:20 — История появления кодировки. 05:00 — Семейство кодировок utf. 06:30 — Особенности кодировки utf-8. 09:30 — Лучше четко указывать кодировку, которую надо использовать. 12:10 — О соответствии 1 символ — 1 байт.00:17 — Различия понятия "язык" и "фреймворк" на примере C# и .NET Framework 01:35 — Запись в файл при помощи File.WriteAllText() 02:50 — Расположение файлов, при указании относительного пути до них 03:05 — Относительный путь до файла 03:30 — Использование Environment.CurrentDirectory для того, чтобы узнать рабочий каталог 03:55 — Понятие рабочего каталога 04:30 — Рабочий каталог при работе с debug 04:58 — Assembly.GetExecutingAssembly().Location для того, чтобы узнать путь до запущенного exe-файла 06:00 — Использование полного пути до файла 06:45 — Использование Path.Combine() для составления полного пути до файла 07:50 — Запись массива строк при помощи File.WriteAllLines() 08:35 — Запись бинарных файлов(массива байт) при помощи File.WriteAllBytes() 09:30 — Методы для чтения из файла, File.ReadAllText(), File.WriteAllLines(), File.WriteAllBytes() 09:50 — Недостаток File.ReadAllText(), File.WriteAllLines(), File.WriteAllBytes() при работе с большими файлами 10:15 — Принцип работы с большими файлами, примеры 11:23 — Каталоги, класс Directory 11:36 — Использование Directory.GetFiles() для получения массива строк со списком всех файлов в каталоге00:05 — Форматированный вывод. 00:15 — Вывод без форматирования. 01:05 — Постановка проблемы: без форматированного вывода код смотрится неаккуратно, усложняется его чтение. 02:25 — Строки форматированного вывода. 02:55 — Разделение вывода и вычисление. 03:40 — Достоинства строки форматированного вывода. 06:30 — Форматированный вывод для определенного формата вывода переменных. 08:00 — Вывод числа с некоторой точностью после запятой. 09:45 — Добивание нулями слева. 11:10 — Вывод времени. 12:30 — Форматированный вывод для таблиц. 14:00 — string.Format. Возвращает отформатированную строку в соответствии с шаблонами значениями. 14:55 — Экранирование фигурных скобок. 15:10 — Run Time Error. Неправильная строка форматированного вывода. 15:20 — Перегрузка вывода на консоль. 16:00 — Разбор ошибки. Язык string.Format.Оптимизация работы со строками при помощи использования StringBuilder. 00:00 — Постановка проблемы 00:35 — Недостаточность функционала char[] 01:00 — Недостаточность функционала List 01:12 — Преимущества StringBuilder 01:45 — Примеры работы с StringBuilder 03:30 — Ситуации, когда необходимо использовать StringBuilder 05:50 — Пример ситуации, когда применение StringBuilder обосновано. Неоптимальное решение. 06:17 — Объяснение неоптимальности решения при помощи String 07:40 — Проблемы с производительностью 08:43 — Выделение памяти в куче 10:05 — Оптимизация по быстродействию 11:45 — Оптимизация при помощи изменения типа данных со String на StringBuilder 12:30 — Сравнение времени работы оптимального и неоптимального решения 14:27 — Обсуждение полученных результатов00:20 — Отличие строки от массива символов 00:42 — 1 отличие - специфическая функциональность String, которая отсутствует в Array 01:15 — Пример такой функциональности: метод Substring, ToLower 02:00 — 2 отличие - неизменяемость строк 02:30 — Причины неизменяемости строк, примеры 03:55 — Карта памяти: конкатенация строк 06:35 — Карта памяти: изменение строки внутри стороннего метода 07:40 — Паттерн ImmutableСловари, сравнение с массивами и листами. Преимущества и недостатки словарей. 00:17 — возможности массива (на примере массива строк) - массив устанавливает одностороннее соответствие между индексом и строкой. 00:33 — недостатки и ограничения массивов. 01:49 — словари средство для решения недостатков. 04:35 — особенность работы класса словарь − прежде чем обратиться к значению по ключу необходимо, чтобы значение там было. 05:03 — метод словаря ContainsKey проверяет наличие значения по ключу. 05:49 — скорость работы словаря — немного медленней массива. 06:10 — прохождение циклом по словарю. Пример работы с элементом словаря как с парой ключ-значение 06:43 — когда использовать словари.00:15 — Коллекции. Массив - как пример коллекции. 00:35 — Недостаточность функциональности массива. Неизменная длина. 01:55 — List. Список. Его объявление. 02:20 — Инициализация. 02:25 — Generic type. 03:30 — Методы списка. Add - добавление элемента, Insert - вставить элемент, RemoveAt - удалите в опр. месте. 04:10 — Foreach для списков. 05:15 — Внутреннее устройство. 07:20 — Операция вставки и добавление. Измерение времени