Если у вас есть наивные/неосведомленные разработчики, в ваш проект будет входить плохой код. Вы должны изменить свой процесс, чтобы проверки кода требовались до того, как этот плохой код внесет его в ваш репозиторий.
Обратите внимание, что «невежественные» здесь не означают глупых или плохих разработчиков. Это просто означает, что люди, которые не знают, что есть лучший способ сделать что-то. Как только вы научите их лучшему пути, и они узнают, что от них ожидается, это подорвет их невежество.
Что вы можете сделать:
Сделать все младшие разработчики должны представить подтягивания запросы для того, чтобы представить свои изменения. Старшие/ведущие разработчики должны затем просмотреть изменения и либо принять их, либо отклонить их с запрошенными изменениями.
Поместите свои интерфейсы в одно пространство имен и реализации служб под другим пространством имен. При просмотре, сканировании файлов для пространства имен служб, и если он используется везде, где он не предполагается использовать, отклоните запрос на pull.
Всякий раз, когда вы замечаете, что нарушение правила, которое вы хотите применить, переместилось в ваш репозиторий, запустите BLAME, чтобы выяснить, какой разработчик представил плохой код. Поговорите с этим человеком. Узнайте, почему они сделали это так, а не так, как вы предпочитаете. Покажите им, почему предпочтительнее делать это по-своему.
Имейте модульные тесты для вашего кода. Иногда бывает сложно сделать тесты, когда реализации служб жестко закодированы в методе-под-тестированием, а не издевательствовать над интерфейсом службы.
Мне нравится @David Osborne's R# idea, но разработчики всегда могут приостановить R #, или отключить его вообще. В конечном итоге это проблема процесса. I agree with @Steven, что вы должны привести пример, научить и тренировать. Постройте свою команду, поделившись своими знаниями, не тащите их, наказывая их за неправильное выполнение.
Это, кажется, как-то пагубная цели для меня. Для этого вам придется научить ваших «новых/невежественных» разработчиков использовать этот инструмент для проверки качества своего кода. или, возможно, вы можете заставить его автоматически проверять код, когда они его совершают? Не было бы лучше научить ваших разработчиков использовать IoC вместо этого и предоставить им причину и мотивацию сделать это? – Kjartan
Я понимаю вашу точку зрения ... но я думаю, что лучше иметь систему проверки дурака. Далее я верю в Альберта Эйнштейна, когда он сказал: «Две вещи бесконечны: Вселенная и глупость человека» (включая меня). –
Вы используете Resharper? Если это так, вы можете настроить его для предупреждения об этом. –