Во-первых, я являюсь разработчиком PHP_CodeSniffer, поэтому я явно предвзято в этой области. Но я также работал над некоторыми большими кодовыми базами за 10 лет в качестве PHP-разработчика, поэтому я надеюсь, что могу привести некоторые конкретные причины того, почему стандарты кодирования - это хорошо. Я мог бы написать серию блога по этой теме, но я просто расскажу вам немного о том, как появился PHP_CodeSniffer, чтобы вы могли понять проблему, которую инструмент решил для меня.
Я работал над несколькими крупными проектами CMS. У первого была куча кода за ним и относительно небольшая команда разработчиков. У нас не было никаких стандартов. Но у нас не было реальных проблем. Команда была маленькой и долгое время оставалась вместе. Мы привыкли друг к другу.
Затем мы построили новую CMS. Мы начали работать с несколькими разработчиками. Затем я был частью команды из двух разработчиков. И снова стандарты кодирования не вызвали у нас никаких проблем. Я и другие разработчики пришли с одного и того же фона и уже установили некоторые рекомендации, которыми мы руководствовались. Тогда нам не понадобилось PHPCS.
Но эта команда выросла разработчиком одновременно и в итоге достигла 12 штатных разработчиков, и немало пришло и ушло. Некоторые пришли из старой CMS, а некоторые прибыли из-за пределов компании. У всех были разные фоны и другой подход к развитию. Было очевидно, кто написал какой код, потому что стили были настолько разными. Всякий раз, когда вы работали над чем-то сложным, вам сначала нужно приспособиться к их стилю, потому что это было просто не так, как вы привыкли видеть код. Это как чтение Шекспира в первый раз. Вам нужно привыкнуть к ней, прежде чем вы сможете читать в своем естественном темпе.
Для разработчиков, что дополнительное время, чтобы остановить и выяснить другой стиль кодирования, - это просто потраченное впустую время. Это шанс для идеи ускользнуть, пока вы увязли с шагом, отступом и скобой. В конце концов, все это не имеет значения. Но позвольте мне сказать вам, они очень важны, если они заставляют разработчиков нарушать их поток. Таким образом, нам нужен был способ заставить их уйти с пути и позволить разработчикам делать то, что они делают лучше всего.
В то же время мы намного больше перешли на JavaScript. Новый язык, в котором стиль вообще был выброшен в окно. Код был скопирован/вставлен из примеров сайтов и спрессован вместе. Изучая разработку сложного кода на новом языке, имело смысл найти способ сделать наш JS похожим на наш PHP. Мы можем свести его к минимуму позже, но нам нужно было быстро переключаться между языками, чтобы сохранить поток.
Для этого рождается PHP_CodeSniffer. Это помогает разработчикам работать с одним и тем же стилем кодирования, чтобы форматирование и другие проблемы с пламенем были полностью устранены. Это позволяет вам относиться к вашему JS, как к вашему PHP. Я использую его для обнаружения специфических для продукта запахов, таких как нетранслируемые строки или разработчиков, которые не используют наш правильный код включения класса. Я также использую его для специфических для языка запахов, чтобы убедиться, что запятая JS, которая убивает IE, не оставлена. Вы можете использовать его так, как хотите. Он поставляется с кучами обнюхиваний, которые легко объединяются, используя XML ruleset file. Вы также можете написать свой собственный.Вы можете интегрировать сторонние инструменты, чтобы сделать его универсальным магазином для анализа статического кода. Вы можете быть настолько серьезными в отношении стандартов и кодовых запахов, сколько хотите.
PHP_CodeSniffer, как и любой инструмент dev, должен работать на вас. Вы не работаете для этого. Если он вызывает слишком много ошибок, которые вам не нужны, настройте стандарт, чтобы удалить те, которые вам не нужны, или превратите ошибки в предупреждения. Но если моя история звучит как нечто, что вы переживаете или можете пройти в будущем, стоит внимательно изучить PHP_CodeSniffer, чтобы узнать, может ли он вам помочь.
Я надеюсь, что это поможет вам и другим понять, почему стандарты кодирования действительно важны для некоторых проектов и разработчиков. Дело не в деталях. Речь идет об удалении стиля кодирования из списка вещей, которые заставляют разработчиков терять фокус.
Он никогда не перестает удивлять меня, как я продолжаю находить, казалось бы, хорошие, информативные вопросы о СО, которые закрываются «как не конструктивные». –