Заголовок:
Стиль кода - почему не спасает даже код-ревью
Текст:
Честно, сколько команд не менял - везде одинаково: у каждого свой стиль кодить, и никакие правила не гарантируют, что не будет путаницы или недопониманий. Код-ревью и линтеры нужны, не спорю, гайды тоже, но когда у кого-то в голове другой подход, это всё равно выстреливает в ногу.
Я в прошлом году поучаствовал в проекте, где попытались жестко вкатить единую кодстайл-политику на Python с помощью flake8, black и mypy - вроде бы всё классно, багов по синтаксису и стилю почти не было. Но на деле это не спасло от того, что часть ребят писала излишне громоздкие и непонятные функции, а другие наоборот, слишком упрощали и прятали логику где попало. В результате вместе с код-ревью приходилось тратить кучу времени не на баги, а на выяснение - что вообще хотел автор. И это при том, что в команде были опытные ребята, не новички.
Ещё одна история - когда делал ревью на старом проекте с PHP, там стилевые гайды были, но каждый поддерживал свои устаревшие библиотеки и паттерны, которые даже местами конфликтовали. Использовали php-cs-fixer, но настройка была настолько расплывчатая, что линтер сам по себе не помогал приводить всё к общему знаменателю. Итог - куча мелких багов из-за недопонимания логики, а слияния веток превращались в бой с конфликтами и правильным стилем. Вот и подумай - какой толк от правил, если голова и понимание у всех разные?