А.В.Столяров. Оформление программного кода. Методическое пособие

image of the cover

Аннотация

В пособии изложены основные принципы, применяющиеся для повышения читаемости текстов компьютерных программ и их доступности для анализа человеком; в частности, даются рекомендации по разбиению программ на модули и подсистемы, уделяется много внимания различным стилям расстановки структурных отступов и незначащих (декоративных) пробелов.

Пособие ориентировано на студентов программистских специальностей, преподавателей, программистов.

Публикация в бумажном варианте

Второе издание опубликовано издательством МАКС Пресс (Москва) в 2019 году. ISBN 978-5-317-06257-6.



first edition coverПервое издание опубликовано издательством МАКС Пресс (Москва) в 2012 году по заказу издательского отдела ф-та ВМК МГУ. ISBN 978-5-317-04282-0.

Электронная версия

Электронная версия, идентичная печатному изданию, доступна здесь: http://www.stolyarov.info/books/pdf/codestyle2.pdf

Электронная версия первого издания доступна здесь: http://www.stolyarov.info/books/pdf/codestyle.pdf

Статус бумажной версии

В настоящее время может быть приобретена в здании факультета ВМК, а также заказана с доставкой на этом сайте.

Первое издание доступно в библиотеке ВМК МГУ.

Разрыв строки до бинарной операции или после

Добрый день!
Недавно обратил внимание, что в code convention PEP-8 рассуждается на тему, вставлять ли разрыв строки для длинных арифметических или логических выражений до знака бинарной операции или после (утверждается, что разрыв перед является более удобочитаемым): https://www.python.org/dev/peps/pep-0008/#should-a-line-break-before-or-...
В то время как в вашей книге, на странице 45, приводится пример с разрывом после знака операции. Хотелось бы узнать, вы все еще придерживаетесь такого же мнения? И если да, то почему?

В примере по

В примере по вашей ссылке имеется "отягчающее обстоятельство" — там часть операндов с плюсом, часть с минусом. Я бы так делать вообще не стал, но если делать — то да, знак лучше ставить непосредственно перед операндом.

Если же такого смешения не наблюдается, т.е. знаки операций низшего (в рамках данного выражения) приоритета одинаковые, то ставить их в конце строки, а не в начале, мне кажется логичным примерно по тем же причинам, по которым знак переноса ставят всё-таки в конце текущей строки, а не в начале следующей: если строка имеет продолжение, то это должно быть задекларировано в самой этой строке, а не в её продолжении.

Оформление отступов

Странно, а почему не был упомянут стиль Уайтсмитс?
Он выглядит, например, так:
C++

int main()
    {
    foo1();
    foo2();
    foo3();
    ...
    return 0;
    }


Как можно заметить, отступы делаются для скобок, но при этом внутри скобок отступов не делается.

Нечто подобное

Нечто подобное упоминается на стр. 39 в качестве примера недопустимого стиля. Отличается только тем, что открывающая скобка там оставлена на одной строчке с оператором, но здесь у вас ситуация другая — заголовок функции, а не оператора.

В общем, я не считаю этот стиль допустимым. Причина — на стр. 39 объяснена.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <ins> <del> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Проверка на бота
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.