Программирование
Вопросы о C#, Python, Java, алгоритмах и архитектуре кода.
В чём разница между #include <filename> и #include "filename" в C/C++? Директива include c определяет поиск заголовочного файла: скобки — системные пути, кавычки — локальные. Избегаем ошибок include c и упрощаем разработку.
Настройте существующую локальную ветку Git для отслеживания удаленной с помощью git branch --set-upstream-to или git push -u. Пошаговое руководство: git fetch, проверка веток, устранение ошибок и примеры для git pull без аргументов.
Как создавать глобальные переменные в Python, использовать ключевое слово global в функциях, обращаться к ним из разных функций и избегать ошибки UnboundLocalError. Область видимости, примеры кода и лучшие практики для переменных в функциях.
Идиоматичные способы проверки исключений в JUnit тестах: assertThrows в JUnit 5, ExpectedException в JUnit 4. Примеры кода, сравнение подходов и лучшие практики для junit тестов с проверкой сообщений.
Динамический вызов функции модуля по строковому имени в Python с помощью getattr и importlib. Примеры кода, проверки безопасности, обработка async-функций и полный шаблон реализации call(module, func_name). Избегайте eval для безопасности.
Узнайте, как генерировать случайное целое число в C# с помощью класса Random.Next() и RandomNumberGenerator. Примеры кода, диапазоны, многопоточность, криптостойкие числа и избежание ошибок для надежного рандома.
Как правильно округлять float до 2 знаков в Python: решите проблему 13.949999999999999 с round(), f-строками и decimal. Python округление до 2 знаков без артефактов точности для финансов и измерений.
Что такое рефлексия в программировании и зачем она нужна? Подробно о рефлексии Java: Reflection API, примеры Class.forName, getDeclaredField, invoke. Плюсы, минусы, использование в фреймворках и метапрограммировании.
Как объявить и инициализировать массив в Java: new, литералы, циклы, Arrays.fill, стримы. Примеры для int, String, многомерных массивов. Типичные ошибки и советы для начинающих программистов.
Разница между ArrayList и LinkedList в Java: когда выбрать ArrayList для быстрого доступа, а LinkedList для вставок/удалений. Сравнение производительности, памяти и примеры кода для списков в Java.
В Python нет string.contains, используйте 'in', str.find() или str.index() для проверки подстроки в строке. Примеры кода, альтернативы с regex и pandas, производительность и ошибки. Замена somestring.contains на питоничный код.
Разница между интерфейсами и типами (type) в TypeScript: синтаксис, declaration merging, union, extends, implements. Когда использовать typescript интерфейсы и typescript типы, примеры кода и рекомендации.
Как разбить yaml строки на несколько строк в YAML: используйте folded (>) для сглаживания в пробелы или literal (|) для сохранения yaml перенос строки. Chomping, кавычки без экранирования, примеры в PyYAML и Ansible. Избегайте конкатенации +.
*args и **kwargs в Python: как одинарная * собирает дополнительные позиционные в tuple, а двойная ** — именованные в dict. Примеры, порядок параметров и ошибки.
Как реализовать задержку времени в Python-скрипте: time.sleep для блокирующих пауз, asyncio.sleep для async, примеры throttling, GUI и многопоточности. python sleep, python задержка, пауза python.
Подробное объяснение разницы между методами __str__ и __repr__ в Python. __str__ для человекочитаемого вывода в print(), __repr__ для отладки и eval(). Примеры, лучшие практики и fallback-механизм.
Подробное объяснение принципа IoC (инверсия контроля), его реализации через инъекцию зависимостей. Проблемы, которые решает ioc контейнер, примеры в Spring, когда использовать в программировании и связь с DI.
Самый чистый способ валидации десятичных чисел в JavaScript. Функция IsNumeric проходит все тесты: '-1.5', '.42' (true), '99,999', 'blah' (false). С regex, Number.isFinite, кроссплатформенно. Забудьте isNaN!
Узнайте, как изменить сообщение последнего непушенного коммита с помощью git commit --amend или нескольких с git rebase -i. Пошаговое руководство по amend, reword, добавлению файлов и восстановлению ошибок для чистой истории Git.
Пошаговое создание рабочего пространства в VS Code с глобальными настройками для AVR и STM32 микроконтроллеров. Проект-специфичные settings.json, launch.json, tasks.json для сборки и отладки. Упрощает программирование STM32 в VS Code.