Я работаю на довольно большой кодовой базе. Сотни классов, тонны различных файлов, множество функциональных возможностей, более 15 минут требуется для создания новой копии и т. Д.
Большая проблема с такой большой кодовой базой состоит в том, что у нее есть довольно много вспомогательных методов и таких, которые делают то же самое, или есть код, который не использует эти служебные методы, когда это возможно. А также служебные методы не просто все в одном классе (потому что это будет огромный беспорядок).
Я довольно новичок в кодовой базе, но у руководителя группы, который работал над ним годами, похоже, та же проблема. Это приводит к большому количеству кода и рабочего дублирования, и, как таковое, когда что-то ломается, оно обычно разбивается на 4 копии в основном того же кода
Как мы можем обуздать эту модель? Как и в большинстве крупных проектов, не весь код документирован (хотя некоторые и есть), и не весь код ... ну, чистый. Но в целом было бы очень хорошо, если бы мы могли работать над улучшением качества в этом отношении, чтобы в будущем у нас было меньше дублирования кода, и такие вещи, как служебные функции, было легче обнаружить.
Кроме того, служебные функции обычно находятся в каком-то статическом вспомогательном классе, в каком-то нестатическом вспомогательном классе, который работает с одним объектом, или являются статическим методом в классе, с которым он в основном «помогает».
У меня был один эксперимент по добавлению служебных функций в качестве методов расширения (мне не нужны были какие-то внутренние компоненты класса, и это определенно требовалось только в очень специфических сценариях). Это имело эффект предотвращения беспорядка в первичном классе и тому подобном, но на самом деле его уже нельзя обнаружить, если вы уже не знаете об этом