Часто люди присылают кривущий код. В принципе, кривущий код - это нормально, но иногда хочется заюзать его в важных местах, и интересно знать, какому коду можно доверять и насколько (в цифрах).
Пока что есть такая идея. (на примере Java, но язык не принципиален):
Все внешние объекты языка (интерфейсы, классы, методы) помечаются аннотациями @Trusted/@Suspected/@WTF/@DefaultTrust.
@WTF
public String getUserName(String userName){...formatHomeDrive(userName)...}
Аннотации выставляются ревизором.
Аннотации могут храниться не только непосредственно в коде, но и в отдельном текстовике как мапы (полное имя/путь объекта языка -> уровень доверия) и во время кодинга графически отображаться только непосредственно в IDE, а во время сборки вставляться препроцессором в реальный код (это легко накодить для идеи и эклипсы). Таким образом, каждый ревизор может иметь отдельное частное мнение. Хранение «мнений» в текстовом формате может использоваться для формирования «общественного мнения» (текстовым мерджем между несколькими «мнениями»)
Смысл в том, что если в коде используются только Trusted код, и из Trusted кода используется только Trusted код (вызываются только Trusted методы только Trusted классов из только Trusted пакетов), то тогда «зеленая полоска», код готов для продакшена. Иначе желтая полоска и процент (или какое-то другое количество) Suspected/DefaultTrust кода. Любой WTF - красная полоска, на доработку.
Как вам идея? Говно или отлично? Вы используете что-то подобное? Подкиньте хороших мыслей