Мне нравится, что мой код упорядочен, то есть правильно отформатирован, доступен для чтения, спроектирован, протестирован, проверен на наличие ошибок и т.д. На самом деле я фанатичен. (Возможно, даже больше, чем фанатик...) Но по моему опыту действия, помогающие качеству кода, вряд ли реализованы. (По качеству кода я имею в виду качество кода, который вы создаете изо дня в день. Вся тема качества программного обеспечения с процессами разработки и т.д. Гораздо шире, а не объем этого вопроса.)
Качество кода не кажется популярным. Некоторые примеры из моего опыта включают
-
Вероятно, каждый разработчик Java знает JUnit, почти все языки реализуют фреймворки xUnit, но во всех компаниях, которых я знаю, было очень мало правильных модульных тестов (если вообще). Я знаю, что не всегда можно писать модульные тесты из-за технических ограничений или сроков, но в случаях, которые я видел, модульное тестирование было бы вариантом. Если разработчик захотел написать несколько тестов для своего нового кода, он может это сделать. Я пришел к выводу, что разработчики не хотят писать тесты.
-
Анализ статических кодов часто выполняется в небольших проектах, но на самом деле не используется для обеспечения соблюдения соглашений о кодировании или поиска возможных ошибок в корпоративных проектах. Обычно даже предупреждения компилятора, такие как доступ к нулевому указателю, игнорируются.
-
Конференции и журналы конференции будут много говорить о EJB3.1, OSGI, Cloud и других новых технологиях, но вряд ли о новых технологиях или инструментах тестирования, новых подходах к анализу статического кода (например, SAT-решение), процессах разработки, помогающих чтобы поддерживать более высокое качество, как какой-то скверный зверь устаревшего кода был подвергнут испытанию... (Я не посещал множество конференций, и, вероятно, он выглядит по-разному для конференций по гибким темам, поскольку модульное тестирование и CI и тому подобное имеют более высокую ценность там.)
Итак, почему качество кода настолько непопулярно/считается скучным?
EDIT:
Спасибо за ваши ответы. Большинство из них относятся к модульному тестированию (и обсуждалось в связанном вопросе). Но есть много других вещей, которые можно использовать для поддержания высокого качества кода (см. связанный вопрос). Даже если вы не можете использовать модульные тесты, вы можете использовать ежедневную сборку, добавлять некоторый статический анализ кода в свою среду разработки или разработки, пытаться программировать пар или проводить проверки критического кода.