Зачем нужны стандарты оформления или стили кода?
- Категория: Технические советы
- – Автор: Игорь (Администратор)
В рамках данной статьи я хотел бы поделиться с начинающими авторами программных творений мыслями по поводу вопроса "Зачем нужны стандарты оформления или стили кода", а так же провести несколько жизненных аналогий.
Примечание: В рамках материала не будет сравнения существующих стандартов или указания кучи плюсов, о которых можно прочитать на многих веб-ресурсах. Будут описаны только некоторые моменты, которые чаще всего остаются за бортом.
Прежде всего хотел бы начать с того факта, что стандартов существует просто невероятно огромное количество. Начиная от языков программирования, где чуть ли не для каждой закорючки есть описание, и заканчивая отдельными программными творениями, такими как CMS или фреймворки, где каждый автор придерживается определенного стиля написания кода и типизированных архитектурных решений.
Для чего все это необходимо? Представьте себе, что вы смотрите любимый сериал или фильм, читаете книгу, а быть может вообще сидите у костра в лесу и наблюдаете за тем, как горят поленья. Сериалы и фильмы содержат в себе штампы (аля "объявились злодеи" - "появился герой" - "напряженная ситуация" - "пара душещипательных диалогов" - "счастливая или несчастливая кульминация" в зависимости от жанра), книги чаще всего выдержаны в одном и том же стили (если это классика, то ожидать в ней реп будет немного наивно), огонь в костре будет гореть вверх, а поленья нужно будет подкладывать так, чтобы угли не затухли.
А теперь представьте, что, например, из костра вдруг полетели куски металла, в сериале каждые 5 минут полностью меняется вектор диалога, а книгу писали драматург, фантаст, комик и под конец вообще пошли какие-то таблицы с отчетами. Согласитесь, получать удовольствие от этих занятий было бы сложно, если, конечно, это не было целью с самого начала.
Все ровно то же самое происходит и в плане стиля оформления кода. Если код идентичен или хотя бы похож от фрагмента к другому фрагмента, то, разобравшись в логике его оформления (построения), будет существенно легче просматривать весь код в целом. Например, jQuery многим нравится за счет своей простоты освоения, однотипности подхода для организации плагинов (из-за этого вы легко можете расширять функционал без особых проблем) и интуитивно понятных возможностей (как пример, если вы не знаете, что делать с дефисом в css свойствах типа background-color, но где-то видели, что обычно пишут backgroundColor, то в большинстве случаев такое же подход будет в плагинах, стандартных функция и прочем). Если же код от фрагмента к фрагменту написан совершенно по разному (где-то переменные названы понятно, где-то однобуквенные, где-то вообще нижние подчеркивания с цифрами), то разбор каждого куска кода будет представлять собой попытку понять "чего хотел аффтар?".
Таким образом, наличие хоть какого-то стандарта облегчает задачу всем. Вам при написании, тем кто будет дополнять в плане "допиливания", а тем кто будет использовать, в плане поиска и решения проблем.
Примечание: Многие проекты, где писалось все "на авось" и в жестком темпе без соблюдения хотя бы самодельных стандартов (пусть даже и в стиле "одна буква - локальная переменная, две буквы - глобальная"), в последствии либо полностью переписывались с нуля, либо оставались в небытие.
Другой немаловажный момент заключается в том, что универсальных стандартов, в принципе, не существует. А это в свою очередь означает, что если вам нужно будет изучить несколько языков программирования, то в каждом из них будут свои стандарты. Если же нужно будет изучить и пяток другой CMS или фреймворков, то и в них будут собственные стандарты (что-то в стиле "а наш огонь горит под углом"). И если у вас нет достаточного опыта в быстром изучении стандартов, то каждый разбор будет занимать у вас весьма много времени.
Если приводить жизненную аналогию, то представьте себе, что в комнату с техникой зашли гуманитарий и математик. Технику они видят в первый раз. Как вы думаете, кто из них быстрее разберется в том, что это за техника, для чего она нужна и как ею пользоваться? Конечно, всякое бывает, но в большинстве случаев это будет математик, так как с техникой он имел гораздо больше дела.
Еще один немаловажный момент заключается в том, что после изучения десятка другого различных стандартов, вы сможете легко подбирать наиболее подходящий в зависимости от возникающих задач, а так же сможете создавать свои собственные подходы, основываясь на полученном опыте.
Проводя жизненную аналогию, то в чем-то это схоже с кулинарией. Если вы готовили много разных блюд, то создать собственное, например из залежавшихся продуктов в холодильнике, будет существенно легче. Банально, у вас будет понимание того, какие продукты вообще несовместимы.
Теперь, у вас на руках есть несколько мыслей о необходимости и применимости стандартов оформления кода.
☕ Понравился обзор? Поделитесь с друзьями!
Комментарии / отзывы