Вопрос №5316 от пользователя iamel в уроке «Стандарты кодирования с eslint», курс «JS: подготовка к работе»
Вопрос: Почему важно соблюдать стандарты кодирования? Неверный ответ там "Меньше багов", но он не кажется неверным, если рассмотреть немного модифицированный пример из этого же урока: if (false) a=1; b=2; Фигурные скобки - это стандарт кодирования? Если да, то все 4 варианта ответа на этот вопрос являются верными.
Стандарт кодирования определяет набор правил и соглашений, используемых для оформления уже (потенциально) синтаксически корректного кода.
В коде, оформленном в соответствии со стандартами кодирования могут быть синтаксические и другие виды ошибок.
С другой стороны, исправно работающий корректный код может быть оформлен без использования стандартов кодирования (что ухудшает его читаемость, понятность и т.п.)
Согласен. Но, уменьшает ли количество багов следование стандарту кодирования. Или, наоборот, увеличивает ли количество багов отказ от следования стандартам кодирования. К тому же, правильными считаются варианты:
Другими словами, следование стандартам кодирования влияет на психологическую составляющую, скорость выполнения работы, легкость анализа выполненной работы, но не на ошибки(баги) в коде.
Ну, эти три пункта можно рассматривать как прямые следствия соблюдения стандарта кодирования. В отличие от уменьшения количества багов, являющегося косвенным следствием (выводом из цепочки логических посылок) и лишь предположительным. Думаю, идея такая.
Ваш разговор меня натолкнул на мысль. Я добавил в вопрос указание что нужно перечислить только те вещи, на которые стандарты влияют прямо, а не косвенно.
Всё же, ответы неоднозначны. Я сужу исходя из материала курса, а не на основе общих знаний. Быстрее разработка? Может быть на вашем опыте - да. Однако, исходя из материалов курса, в том же if() правильнее ставить фигурные скобки, но тогда, возвращаясь к примеру из курса:
Правильный вариант длиннее на два символа, два пробела(или таб) и два переноса строки. Это само по себе противоречит утверждению "быстрее разработка".
Выходит, наоборот. Логику, по которой строился вопрос теста, Вам описали. Оценивать вопрос следует исходя из неё - поэтому никакой неоднозначности нет.
Я сужу исходя из материала курса, а не на основе общих знаний.
Это очень странно так делать, ведь предмет вопроса относится не к материалам курса, а именно к тем самым "общим знаниям". Понятие и предназначение такой сущности, как "стандарты кодирования", вырабатывались не в материалах курсах, а сформировались и существуют независимо от них.
Правильный вариант длиннее на два символа, два пробела(или таб) и два переноса строки. Это само по себе противоречит утверждению "быстрее разработка".
А теперь давайте на минутку представим, что в разработке программы участвует ещё кто-то, кроме Вас. Ну, положим, не тысячи (хотя почему нет?!), не сотни и десятки, а хотя бы ещё несколько человек. Как будете договариваться? Или каждый будет писать код на свой лад, как пожелает, и в зависимости от настроения?! Как в таком случае члены вашей команды будут разбираться в написанном каждым другим коде? А ведь этот код потом надо будет сопровождать - и вполне возможно этим будут заниматься совсем другие люди из другой команды.
Должно быть понятно, что такой подход разработку не ускоряет. Стандарт написания кода по своему определению имеет смысл тогда, когда в жизненном цикле этого самого кода принимает участие более одного человека. Если Вы являетесь единственным создателем и пользователем кода, то никакая стандартизация не нужна - пишите как хотите.
Кроме того, здесь вопрос не столько в "длине кода" и прочих подобных характеристиках, сколько в установлении единообразия его оформления. Идеальных вариантов не бывает, всегда существуют личные предпочтения и множество других факторов, именно поэтому люди как-то договариваются между собой, создавая общие соглашения, называемые стандартами.
Александр, я не говорю о своих предпочтениях (без фигурных скобок я if ни разу в жизни не писал). Я говорю о вопросах конкретно этого квиза, ответы на которые обучающийся должен был почерпнуть из связанного с ним урока, или предыдущих. В моём последнем примере очевидно, скорость написания правильного кода будет ниже, так как количество символов более чем на четверть превосходит количество их же в неправильном варианте написания. Опять же, косвенно скорость возрастает, так как в команде будут действовать те самые общие стандарты, и в целом проект выиграет. Но, однозначно ответить "Быстрее разработка" на этот вопрос нельзя. Я внимательно прочел ваш пример командной разработки, и могу сказать, что он еще больше подтверждает мою мысль: следование стандартам кодирования позволяет "не замедлить" скорость работы одного разработчика над кодом другого. Само слово стандарт предполагает эталонность, или же норму. В данном случае норму скорости, стиля, и качества написания кода. Ну, и, наконец, если мы говорим о единственном создателе и пользователе кода, то следование стандартам кодирования (тот же пример с if), наоборот, снижает скорость разработки. А уж как он там в своем коде потом разбирается - его личное дело, тут уж и правда "пишите как хотите".
Ой. Похоже, что ваша мысль очень дорога для Вас, а ещё понятней я уже не смогу объяснить. ;)