Ответ 1
Было проведено несколько исследований, в которых показано, что строгое соблюдение последовательного визуального стиля помогает опытным программистам сохранить большую локальную проблему в памяти, не запоминая отдельные элементы проблемы.
Согласование стиля кодирования с привязкой
Это связано с тем, как работает человеческая память. Это называется chunking. Например, хорошо изученное явление, что мастера шахмат намного лучше запоминают позиции шахмат, чем люди, которые не знакомы с игрой. Но это только в том случае, если части происходят в "естественных положениях", которые могут возникать в обычной игре. Если вы помещаете шахматные фигуры в случайные позиции, шахматные мастера не лучше, чем не-шахматисты при запоминании позиций на доске.
То же самое относится и к программистам. Когда стили кодирования согласованы, конструкции кодирования кажутся "естественными" для программиста, и более крупные части кода легче усваиваются. Наша краткосрочная память имеет емкость около семи плюсов плюс-минус, поэтому, чем больше те знакомые куски, тем больше необработанных данных, которые наш ум может активно удерживать в памяти (Джордж Миллер).
Когда вы сталкиваетесь со случайным образом отформатированным кодом, программисты должны расходовать дополнительную психическую энергию на вручную разобрать отдельные части проблемы, над которой они работают. Это устраняет возможность держать большие части проблемы в памяти, чтобы работать над ней. Это также означает, что для достижения точки, в которой программист продуктивно решает проблему, требуется больше времени.
Время потока
Вы когда-нибудь находили, что проблема кажется такой ясной, пока вы продолжаете работать над ней, но тогда вы, кажется, "теряете информацию", когда позже возвращаетесь к проблеме; т.е. нарушить время потока? Время потока хорошо документировано в Peopleware (обязательно для всех программистов). Время прохождения - это когда программисты получают большую часть выполненной работы и достигаются только в том случае, если вы работаете над проблемой в течение длительного, непрерывного периода времени. Это потому, что программисту требуется определенный период времени для усвоения достаточной проблемы в когнитивной памяти для эффективной работы над проблемой. Хорошо отформатированный код помогает нашей визуальной обработке изображений, что означает, что программисты быстрее достигают времени потока.
Я разработал стандарты кодирования в нескольких компаниях-разработчиках программного обеспечения. К сожалению, многие программисты считают, что стандарты кодирования - это всего лишь средство отстаивать ненужный контроль над тем, как они это делают; форма творческой цензуры. По правде говоря, это редко имеет значение, каковы фактические стандарты. Ценность заключается в том, чтобы заставить всех в команде быть последовательными, даже если это означает принятие часто произвольного решения между тем, как делать это по-своему или делать это по-своему.
Вот несколько ссылок, упомянутых выше: