== Оформление кода == * постарайтесь не вносить без обсуждения разнобой стилей, если есть предметные пожелания по коррекции текущего -- пишите в devel-distro@ или мне (mike@), обсудим; * перед тем, как делать существенные переработки уже имеющегося кода -- опять же опишите проблему, идею и предполагаемый результат, порой могут выясниться непредвиденные последствия; * документируйте на русском (README) или английском (README.en) языке то, что написали или изменили, если бы сами хотели прочесть описание сделанного на месте другого человека; в любом случае старайтесь внятно описывать коммиты, при необходимости также спрашивайте совета: документация кода порой не менее важна, чем сам код, и призвана не повторять его, но пояснять намерения и неочевидности. [float] === рекомендации === * трезво относитесь ко входным данным и не пренебрегайте кавычками: название дистрибутива с пробелом или получение текста ошибки вместо ожидаемого вывода команды могут привести к сложнодиагностируемым ошибкам; вместе с тем в ряде случаев, где требуется пословная обработка значений переменных или раскрытие шаблонов shell (*?[]) -- кавычки могут оказаться лишними; * пользуйтесь if [ ... ]; then ...; fi вместо [ ... ] && ...: это кажется более громоздким, но текст оказывается более читаемым и в т.ч. расширяемым, поскольку между then/else/fi можно спокойно добавлять строки; с && проще забыть { ... } или оставить ненулевой код возврата при неудаче теста, когда он считается несущественным; * предпочтительно применение $() вместо `` (особенно при вложенности); * постарайтесь не вылезать за 80 колонок; * избегайте merge-коммитов в коде, который предлагаете для включения в основную ветку: поддерживается линейная история для удобства работы с промежуточными состояниями. [float] === ссылки === * https://lists.altlinux.org/mailman/listinfo/devel-distro (подписка по приглашению)