Продолжаю работу с курсантами 🤓
...Во время расследования бага я выяснил, что в полученной сущности( из внутреннего ядра, это соседний проект коллег) жсон поле со значением типа int(хотя всегда был строкой и всегда должен быть), отчего падала вся интеграция
(По этой причине я вообще против нетипизированного json, но он уже давно стал стандартом в мейнстриме.)
...Каждый тест, даже простой завалился, при старом коде.
...Что интересно - эту функцию парсинга применял на нескольких проектах. И казалось бы - элементарные тесты, нашли здесь сразу ошибку, в кейсе с вызовом функции и передачей пустой строки
Исправил, задумался.
...В общем, я уже смог применить что-то похожее на "замыкание" для обхода различных хранилищ данных и загрузки их в один датафрейм, что оказалось очень полезным. Это также невероятно удобно, если получается создать NullObject'ы и композит. Это как будето даёт набор "деталей" которые можно произвольно объединять, переставлять местами или заменять без изменения логики кода, а просто работой с объектами.
...Очень сложно уже для моего понимания. Наверное нужно спуститься на пару уровней вниз и отрабатывать навыки последовательно. Что ж, однозначно мотивирует. Думаю, возобновить ежедневные занятия SQL хотя бы по 30 минут, теперь регулярно, а не наскоками. По крайней мере, я видел к чему стремиться)
...Для групп Ли мне мотивации не хватает.
Преподаватель теории групп, которого я должен был заменить, передумал на пенсию уходить.
Мне бы в 90+ такую работоспособность :)
...Окончательно паззл сложился после материала про паттерн Посетитель с примером на питоне про гномов. За него отдельное спасибо, я своим умом доходил или до ФП, или до ОО решения, но не до универсального с multiple dispatch и иерархией посетителей.
...Очень сильно потянуло в сторону ФП, поскольку надоело писать и поддерживать однотипный ООП код с кучей условий, который:
• тяжело протестировать;
• кидает исключения где попало, невозможно нормально прервать цепочку и получить результат;
• тесно привязывает методы к сущности, которые тяжело отвязать и компоновать;
Как бонус - теперь при прочтении интерфейсов сразу вижу типичные проблемы, когда они плохо спроектированы и могу итеративно это исправить.
...Эталонный пример ужасает своим объёмом. В следующем задании, наверно будет ещё больше. Искренне жаль тех, кто сталкивается с подобным в своих проектах.
(Ну так-то это уровень крепкого миддла:)
Post #1782
782
- 👍 47
- ❤ 10
- 😁 3
- 🤓 1