Я думаю что все пользователи OS Engine читали статью про СИЛОВОЕ освобождение памяти в новой OSEngine
smart-lab.ru/company/os_engine/blog/1203290.php
как они это сделали, это конечно отдельный прикол в стиле.
Дремучим сибирским лесорубам подарили новуюяпонскую бензопилу. Подставили доску:
— Вжик! — сказала японская бензопила.
— Ух ты! — сказали дремучие сибирские лесорубы.Подставили бревно:
— Вжик! — сказала японская бензопила.
— Ух ты! — сказали дремучие сибирские лесорубы.Подставили железный лом:
— Крррр....! — сказала японская бензопила.
— А #ля! — сказали дремучие сибирские лесорубы.
Если вкратце, то большое выделение памяти происходит,
потому что в .NET сменили GC который используется по умолчанию на Server GC.
А раньше в NET.Framework по умолчанию был Workstation GC.
Можно вернуться к использованию Workstation GC, который выделяет память по другому
и быстрее освобождает, с помощью небольших настроек.
Но суровые российские разработчики OS Engine не умеют читать документацию
на непонятном вражеском языке и поэтому всегда по привычке используют ЛОМ для исправления ошибок.
Если вы все еще используете OS Engine ты мы уже идем к вам....
Зато каждый пост набирает одни и же 40-50 лайков. Ни одного комментария при этом. Ребята заморочились и ставят сами себе лайки с фейковых аккаунтов
Выводы по оценке кода
🔴 Критические проблемы:
Нарушение принципов SOLID - класс выполняет слишком много несвязанных обязанностей
Отсутствие обработки ошибок - много мест с потенциальными исключениями
Жестко закодированные значения - магические числа и строки усложняют поддержку
Синхронные HTTP-запросы - блокируют потоки, низкая производительность
Сложная бизнес-логика - методы трудно понимать и тестировать
🟡 Проблемы среднего уровня:
Слабая типизация - работа со строками вместо перечислений
Дублирование кода - повторяющиеся паттерны HTTP-запросов
Отсутствие модульных тестов - код невозможно адекватно протестировать
Проблемы с читаемостью - длинные методы и сложные условия
🟢 Положительные моменты:
Логическая структура - разделение на регионы
Базовое логирование - есть система уведомлений об ошибках
Инкапсуляция - разделение реализации и интерфейса
Общая оценка: 3/10
Код работает, но обладает серьезными архитектурными проблемами, низкой надежностью и сложностью поддержки. Требуется значительный рефакторинг для промышленного использования
И это только один файл. Представьте сколько там косяков… Привет васюрино!
❌ Критические недостатки:
Опасно ненадежный - упадет при первом же нестандартном ответе API
Неподдерживаемый - если MOEX изменит API, придется переписывать пол-класса
Медленный - сотни синхронных HTTP-запросов подряд
Хрупкий - любое изменение в данных вызовет исключения
💀 Профессиональные риски:
Нельзя использовать в продакшене - гарантированно приведет к потерям данных/денег
Нельзя тестировать - нет возможности написать нормальные тесты
Технический долг - каждая минута работы с этим кодом создает часы будущих проблем
🚩 Для контекста:
В профессиональной среде такой код:
Не прошел бы code review
Не был бы допущен в прод
Требовал бы полного переписывания
Вывод: Код выполняет свою задачу «на троечку» для личного использования, но абсолютно непригоден для коммерческого применения.