Я только что присоединился к (относительно) небольшой команде разработчиков, которая работала над проектом несколько месяцев, если не год. Как и большинство разработчиков, присоединившихся к проекту, я провел первые пару дней, рассматривая кодовую базу проекта.
Проект (внутреннее бизнес-приложение ASP.NET WebForms среднего и крупного размера), из-за отсутствия более понятного термина, является катастрофой. Есть три сразу заметные проблемы со стандартами кодирования:
- Стандарт очень свободный. Он описывает больше того, что не нужно делать (не используйте венгерскую запись и т. Д.), Чем то, что нужно делать.
- Стандарт не всегда соблюдается. Повсюду несоответствия с форматированием кода .
- Стандарт не соответствует рекомендациям Microsoft по стилю. На мой взгляд, нет смысла отклоняться от рекомендаций, которые были сформулированы разработчиком фреймворка и самым крупным вкладчиком в языковую спецификацию.
Что касается пункта 3, возможно, это беспокоит меня больше, потому что я нашел время, чтобы получить свой MCPD с акцентом на веб-приложениях (в частности, ASP.NET). Я также единственный Microsoft Certified Professional в команде. Из-за того, что я изучил во всех моих школах, самообучении и обучении на рабочем месте (включая мою подготовку к сертификационным экзаменам), я также обнаружил несколько примеров в коде проекта, где ничего не делается в лучший способ.
Я работаю в этой команде всего неделю, но я вижу так много проблем с их базой кода, что думаю, что буду тратить больше времени на борьбу с тем, что уже написано, чтобы делать вещи «по-своему», чем если бы я был работая над проектом, который, например, следовал более широко принятым стандартам кодирования, архитектурным шаблонам и передовым практикам. Это подводит меня к моему вопросу:
Должен ли я (и если да, то как мне) предложить своему руководителю проекта и руководителю группы, что проект нуждается в капитальном ремонте?
Я не хочу ходить в их офис, размахивая сертификатами MCTS и MCPD, говоря, что кодовая база их проекта - дерьмо. Но я также не хочу молчать и писать хитрый код поверх их хитрого кода, потому что я на самом деле хочу писать качественное программное обеспечение и хочу, чтобы конечный продукт был стабильным и легко обслуживаемым.