Программирование
Вопросы о C#, Python, Java, алгоритмах и архитектуре кода.
Рекомендации по бесплатным C++ библиотекам для работы с Excel на Windows: чтение/запись ячеек, формулы. Сравнение OpenXLSX, xlnt, libxlsxwriter. Примеры кода, установка, лицензии BSD/MIT.
Что такое паттерны проектирования MVC, MVP, MVVM? Какие проблемы они решают, сходства и ключевые различия. Применение в фреймворках ASP.NET, WPF, Android. Сравнение mvc паттерн, mvvm паттерн для чистого кода.
Узнайте, как безопасно удалить ключ из словаря Python без KeyError: используйте my_dict.pop(key, None), if key in dict: del или try/except. Примеры кода, сравнение методов для python удалить ключ и python удалить из словаря.
Разбираем идиому copy-and-swap в C++: суть, проблемы, которые она решает (exception safety, self-assignment), примеры реализации. Изменения в C++11 с move-семантикой. Когда применять для RAII-классов.
Разбираем, в чём разница между .gitignore и .gitkeep в репозиториях Git. .gitignore игнорирует файлы и папки, .gitkeep сохраняет пустые директории. Примеры, ошибки и лучшие практики использования файлов gitignore и gitkeep.
Правильные версии C#: 1.0, 2.0, 3.0 и далее с датами релизов. Объяснение, почему нет C# 3.5 — это путаница с .NET Framework 3.5. Полная хронология, история и советы по поиску на Microsoft Learn.
Что такое @classmethod и @staticmethod в Python? Чем они отличаются, когда использовать декоратор classmethod или staticmethod. Примеры кода, наследование и зачем нужны эти декораторы в классах Python.
Разница между AddTransient, AddScoped и AddSingleton в ASP.NET Core — когда использовать каждый lifetime, влияние на DbContext, потокобезопасность и Dispose.
Почему в C# для преобразования строки в массив байт требуется кодировка? Объяснение UTF-16 хранения, способы получить байты без хаков, примеры для шифрования. Сколько байт занимает строка и как избежать ошибок с endianness.
Динамический вызов функции модуля по строковому имени в Python с помощью getattr и importlib. Примеры кода, проверки безопасности, обработка async-функций и полный шаблон реализации call(module, func_name). Избегайте eval для безопасности.
Как правильно округлять float до 2 знаков в Python: решите проблему 13.949999999999999 с round(), f-строками и decimal. Python округление до 2 знаков без артефактов точности для финансов и измерений.
Как в Python печатать без перевода строки или пробела: print(end=''), sys.stdout.write(), flush для непрерывного вывода '....'. Примеры для Python 2/3, индикатор прогресса и избежание ошибок.
Как объявить и инициализировать массив в Java: new, литералы, циклы, Arrays.fill, стримы. Примеры для int, String, многомерных массивов. Типичные ошибки и советы для начинающих программистов.
Пояснение и примеры: как извлечь подстроку в Python с помощью срезов (s[start:end]), получить myString[2:] до конца, использовать отрицательные индексы и slice().
Идиоматичные способы проверки исключений в JUnit тестах: assertThrows в JUnit 5, ExpectedException в JUnit 4. Примеры кода, сравнение подходов и лучшие практики для junit тестов с проверкой сообщений.
Самый чистый способ валидации десятичных чисел в JavaScript. Функция IsNumeric проходит все тесты: '-1.5', '.42' (true), '99,999', 'blah' (false). С regex, Number.isFinite, кроссплатформенно. Забудьте isNaN!
Узнайте, как генерировать случайное целое число в C# с помощью класса Random.Next() и RandomNumberGenerator. Примеры кода, диапазоны, многопоточность, криптостойкие числа и избежание ошибок для надежного рандома.
Что такое рефлексия в программировании и зачем она нужна? Подробно о рефлексии Java: Reflection API, примеры Class.forName, getDeclaredField, invoke. Плюсы, минусы, использование в фреймворках и метапрограммировании.
Как разбить yaml строки на несколько строк в YAML: используйте folded (>) для сглаживания в пробелы или literal (|) для сохранения yaml перенос строки. Chomping, кавычки без экранирования, примеры в PyYAML и Ansible. Избегайте конкатенации +.
Узнайте, как определить тип переменной в Python с помощью type() и isinstance(). Проверка типов данных: int, float, uint32 через NumPy, ctypes. Примеры кода, советы по диапазону и распространённые ошибки для точной типизации.