Несмотря на то, что это не настоящий вопрос с кодом, я все еще спрашиваю его здесь. Потому что я задаюсь вопросом: как вы, ребята, работаете в кодовой базе SOAD, что каждое небольшое изменение ломает несколько функций и классов? То, что каждое небольшое изменение, которое вы делаете или пытаетесь реорганизовать, заставляет ВСЕ взорваться в вашем лице.Работа с непригодной кодовой базой
Подумайте: круговая зависимость, двойная включает (C++), простые целые числа вместо перечислений для коммутаторов, внутреннюю библиотеку, зависящую от приложения, которое изначально было создано на эту библиотеку, потоки призраков, начиная с библиотеки, в основном, но в классе библиотеки, выполняющем черную магию в фоновом режиме, синглтоны в библиотеке, называемые ALL OVER, место в приложении, длинные и непонятные операторы switch, несогласованное именование переменных, очень плохая орфография в именах переменных, и список продолжается и дальше.
Каждый раз, когда я хочу добавить функцию, я вижу, что фундамент для этой функции является неполным, неустойчивым, неподъемным и не подходит для расширения. Каждый раз, когда я смотрю на код, я застрял почти мгновенно, и кажется, что добавление функции невозможно без рефакторинга ВСЕ.
Я мог взломать функцию в код, но это только что вернулось и укусит меня в попку, поэтому я просто отказываюсь это делать, хотя другие члены команды, похоже, не заботятся об этом сами. Я думаю, что отношение сделало кодовую базу столь же ужасной, как и она.
Я студент, и это для школьного проекта, так что вы, возможно, подобрали: я абсолютно не программист класса, я ноб, но ноб с неуправляемым желанием сделать что-то чистое, элегантное и многоразовое.
Не похоже, что полный рефактор - это вариант, люди на 100% неохотно делают это, и это я против 29 других. Каждый раз, когда я начинаю смотреть на код, я чувствую желание ударить себя по лицу в стену, съесть свое лицо, удалить проект и никогда не смотреть на него снова из кипящей ненависти, разочарования и отталкивания высказываний от других высказываний «но он работает сейчас, я не вижу проблемы ». Как вы относитесь к таким вещам? Я мог бы действительно использовать некоторые советы для моего здравомыслия.
Спасибо, что ознакомили меня с принципом SOLID, я никогда не слышал об этом раньше. Это похоже на контрольный список всех вещей, которые поступили неправильно. Большинство классов выполняют множественные и неоднозначные вещи, все открыто для модификации, но НЕ для расширения, не так много подтипов происходит, есть огромные интерфейсы, которые неясны в их работе, и вместо инъекции зависимости они использовали Singletons. Что вы имеете в виду с большим ударом? –
Начиная с большого взрыва означает рефакторинг всех модулей. Скорее, вы должны атаковать базу кода одним функциональным модулем за раз (например, пространство имен в C++/C# или пакете на Java). В случае, если что-то пойдет не так, проще сузить и сдержать проблему. – aquaraga
Жаль, что в кодовой базе нет пространств имен. Это действительно катастрофа. Начиная с Big Bang - это то, что я сделал пару дней назад, и я только что закончил. Мне долго приходилось хорошо, но я думаю, что снова схватил кодовую базу. Спасибо за Ваш ответ. Я отмечу это как принято. –