Когда долго занимаешься одним и тем же, взгляд постепенно притупляется и становится зашоренным. Это касается и разработки. Конечно, существуют устоявшиеся нормы программирования, например, в объектно-ориентированных языках — это использование инкапсуляции, наследования, полиморфизма. Но в действительности если не приучил себя изначально соблюдать их, потом, в лучшем случае, учишься на ошибках и теряешь время. На Хабре вышла статья на эту тему, с подробным описанием 7 признаков, которые помогут посмотреть на свой код со стороны и избежать проблемного дизайна:
— жесткость (трудно менять код, так как простое изменение затрагивает много мест);
— неподвижность (сложно разделить код на модули, которые можно использовать в других программах);
— вязкость (разрабатывать и/или тестировать код довольно тяжело);
— ненужная сложность (в коде есть неиспользуемый функционал);
— ненужная повторяемость (Copy/Paste);
— плохая читабельность (трудно понять что код делает, трудно его поддерживать);
— хрупкость (легко поломать функционал даже небольшими изменениями).
https://aka.ms/gen_habr_331930_tlgm