Примерно в 1987 году я устроился на работу в компанию, которая меня наняла, потому что я был одним из небольшого числа людей, которые знали, как использовать Revelation. Откровение, если вы никогда не слышали об этом, было, по сути, реализацией операционной системы Pick на базе ПК, которая, если вы никогда о ней не слышали, получила свое имя от своего изобретателя, легендарного имени Дика Пика. О Pick OS можно сказать многое, но в основном это хорошо. Ряд производителей Supermini (по крайней мере, Prime и MIPS) использовали Pick или свои собственные пользовательские реализации.
Эта компания была главным магазином, и для своих внутренних систем они использовали информацию. (Нет, на самом деле это было его имя: это была реализация Пика Праймом.) У них был контракт с государством на создание системы на базе ПК, и они вложили около года в свой проект Revelation, прежде чем парень сделал всю работу, который также был их директором MIS, решил, что не может больше выполнять обе работы, и нанял меня.
Во всяком случае, он установил ряд стандартов кодирования для их программного обеспечения на основе Prime, многие из которых основывались на двух основных условиях: 1) использование немых терминалов с 80 столбцами и 2) тот факт, что с тех пор как Prime не сделал ' у меня нет визуального редактора, он написал свой собственный. Из-за волшебной переносимости кода Pick он перевел свой редактор в Revelation и с его помощью создал весь проект на ПК.
Разумеется, Revelation, основанный на ПК, имел совершенно хороший полноэкранный редактор и не возражал, когда вы проходили мимо колонки 80. Однако в течение первых нескольких месяцев, когда я был там, он настоял, чтобы я использовал его редактор и его стандарты.
Итак, первым стандартом было то, что каждая строка кода должна быть закомментирована. Каждая строка Без исключений. Он обосновал это тем, что даже если в вашем комментарии было написано именно то, что вы только что написали в коде, необходимость его комментирования означала, что вы хотя бы дважды подумали о строке. Кроме того, как он радостно указал, он добавил в редактор команду, которая форматировала каждую строку кода, чтобы вы могли добавить комментарий в конце строки.
О да. Когда вы комментировали каждую строку кода, это было с комментариями в конце строки . Короче говоря, первые 64 символа каждой строки были для кода, затем была точка с запятой, а затем у вас было 15 символов, чтобы описать то, что сделали ваши 64 символа. Короче говоря, мы использовали соглашение на ассемблере для форматирования нашего кода Pick / Basic. Это привело к вещам, которые выглядели так:
EVENT.LIST[DATE.INDEX][-1] = _ ;ADD THE MOST RECENT EVENT
EVENTS[LEN(EVENTS)] ;TO THE END OF EVENT LIST
(На самом деле, спустя 20 лет я окончательно забыл синтаксис продолжения строки в R / Basic, поэтому он мог выглядеть иначе. Но вы поняли идею.)
Кроме того, всякий раз, когда вам приходилось вставлять многострочные комментарии, правилом было использование цветочной рамки:
************************************************************************
** IN CASE YOU NEVER HEARD OF ONE, OR COULDN'T GUESS FROM ITS NAME, **
** THIS IS A FLOWER BOX. **
************************************************************************
Да, эти закрывающие звездочки на каждой строке были обязательны. В конце концов, если вы использовали его редактор, это была просто простая команда редактора, чтобы вставить цветочную коробку.
Заставить его смягчиться и позволить мне использовать встроенный редактор Revelation, было настоящей битвой. Сначала он был настойчив, просто потому что это были правила. Когда я возразил, что а) я уже знал редактор Revelation, б) он был значительно более функциональным, чем его редактор, в) другие разработчики Revelation имели бы такую же точку зрения, он ответил, что если бы я не тренировался над его редактором, я бы не стал когда-нибудь сможет работать с базой кодов Prime, что, как мы оба знали, не произойдет, пока ад останется незамерзшим. Наконец он сдался.
Но стандарты кодирования были последними. В частности, комментарии к ящикам с цветами были глупой тратой времени, и он сразил меня изо всех сил, сказав, что, если я просто воспользуюсь правильным редактором, поддерживать их будет очень легко. (Все это стало довольно пассивно-агрессивным.) Наконец я тихо сдался, и с тех пор весь код, который я привел к обзорам кода, получил его драгоценные комментарии в цветочном ящике.
Однажды, несколько месяцев на работе, когда я в значительной степени зарекомендовал себя более чем компетентным (особенно по сравнению с замечательным парадом других программистов, который проходил через этот офис, пока я там работал), он смотрел через мое плечо, когда я работал, и он заметил, что я не использовал комментарии к цветочному ящику. О, я сказал, что написал средство форматирования исходного кода, которое преобразует мои комментарии в ваш стиль, когда я их распечатываю. Это проще, чем поддерживать их в редакторе. Он открыл рот, немного подумал, закрыл его, ушел, и мы больше никогда не говорили о стандартах кодирования. После этого обе наши работы стали легче.