2020-01-24

Q&A Споры о вкусах

Привет. Интересная дискуссия с коллегами: спорим о лучших практиках юнит-тестирования.

В пространстве витает противоречивая точка зрения: некоторые коллеги считают, что в тестах не надо давать имена "магическим числам" в тестах, т.к. некоторым неудобно читать пулл-реквесты, потому что можно забыть, какое же значение лежит в константе.

Другая точка зрения заключается в лучших практиках кода, которые говорят, что константы и прочие "магические числа" всегда нужно именовать.

Казалось бы, первая точка зрения апеллирует к удобству чтения... но причина... неудобно читать пулл-реквесты?! Трудно подняться на пару строчек выше и посмотреть значение константы? На первый взгляд вроде нормальная аргументация, про удобочитаемость, а потом посмотришь с другой стороны, выглядит диковато и немного по-детски. Собственно, мое удивление здесь этой самой аргументации. Казалось бы, "матерый" программист еще и не то прочитает... А вы что думаете? Как вы делаете в своих тестах? Как вам вообще ситуация? Интересно послушать мнения.

Типичный пример спора ради спора, в котором некоторые участники не хотят слушать оппонентов.

Аргументы типа "удобно-неудобно", "красиво-некрасиво" это очень хорошие аргументы. Ведь с ними невозможно спорить. Если мне удобно читать зелёные буквы на оранжевом фоне, то кто меня переспорит, правда?

Интересной эту дискуссию я бы тоже не назвал.

Если мы говорим об "удобстве", то выбрали то, что "удобнее" большинству (если не можете и до этого договориться, то пусть тимлид решит, ну или я могу за вас решить, если уж совсем никак), а остальные привыкнут через неделю. Если через месяц мнение большинства изменилось (оказалось, что у вас продакшн из-за этого падает, или тимлид облысел), то проголосовали ещё раз и закрыли этот вопрос.

В общем, разговор ваш так же важен, как и расстановка фигурных скобочек, табы-пробелы, но чуть менее важен, чем ответственное решение о том, класть ли тесты в папочку /tests или /src :)

Скорее всего, у вас есть более важные проблемы, за решение которых вам платят.