оформление программного кода столяров
Андрей Викторович Столяров: сайт автора
Второе издание «Оформления программного кода»
Вышло второе издание старой книжки «Оформление программного кода». Электронная версия нового издания доступна на странице книжки. Кроме того, теперь книжка (бумажная) снова есть в продаже. В сравнении с первым изданием текст чуть-чуть подправлен и добавлено несколько новых параграфов.
Изрядная часть материалов этой брошюры рассыпана по разным местам двух первых томов «Введения в профессию», но, во-первых, далеко не всё, и, во-вторых, книжка, в которой всё это сведено вместе и не требует поиска по кусочкам, тоже иногда полезна.
Частью краудфандингового проекта эта книжка не является, но, как и ранее в случае с «Введением в Си++», я готов бесплатно предоставить её донэйторам, чьи пожертвования суммарно составляют 3000 р. или больше. Единственное условие — востребуйте её сами. Предложение действительно до тех пор, пока книжка имеется в наличии.
Кстати, а книгу по Си++ планируется потом переиздавать как отдельную книгу (не в составе четвёртого тома)? Меня часто спрашивают знакомые студенты мехмата 2-го курса, что можно почитать по Си++, и до появления этой книги (точнее, до того, как я про неё узнал) единственной альтернативой было рассказывать всё самому.
Насчёт C++
По поводу переиздания Введения в C++ — я на эту тему думаю, но тут есть некоторые сложности. Делать стереотипное переиздание мне не очень хочется, поскольку в тексте было выловлено некоторое количество шероховатостей. А все изменения вносились уже в ту версию текста, которая включена в пишущийся сейчас четвёртый том. Я даже одно время пытался заставить этот текст «жить двумя жизнями», благо LaTeX позволяет условную компиляцию, но как-то за всеми аспектами уследить тяжело, например, сделать так, чтобы в версии текста для отдельной книжки не было ссылок на другие части четырёхтомника.
С другой стороны, вы не единственный, кто про это спрашивает, так что придётся мне, видимо, всё-таки думать в этом направлении 🙂
Андрей Викторович Столяров: сайт автора
А.В.Столяров. Оформление программного кода. Методическое пособие
Аннотация
В пособии изложены основные принципы, применяющиеся для повышения читаемости текстов компьютерных программ и их доступности для анализа человеком; в частности, даются рекомендации по разбиению программ на модули и подсистемы, уделяется много внимания различным стилям расстановки структурных отступов и незначащих (декоративных) пробелов.
Пособие ориентировано на студентов программистских специальностей, преподавателей, программистов.
Публикация в бумажном варианте
Второе издание опубликовано издательством МАКС Пресс (Москва) в 2019 году. ISBN 978-5-317-06257-6.
Первое издание опубликовано издательством МАКС Пресс (Москва) в 2012 году по заказу издательского отдела ф-та ВМК МГУ. ISBN 978-5-317-04282-0.
Электронная версия
Электронная версия, идентичная печатному изданию, доступна здесь: http://www.stolyarov.info/books/pdf/codestyle2.pdf
Статус бумажной версии
Первое издание доступно в библиотеке ВМК МГУ.
Системы документирования кода
Здравствуйте!
Хотелось бы спросить: как Вы относитесь к системам документирования исходного кода вроде Doxygen? И является ли их использование желательным при оформлении исходных текстов? Не нашёл этого в книге. Приходилось сталкиваться с ними не только в C и C++, но и в GNU Octave, Python и golang. Лично мне они показались удобными, особенно Doxygen с поддержкой LaTeX для формул: и вычурных кодировок для греческих букв не надо, и ASCII-artа.
Doxygen я активно
Doxygen я активно использую уже лет пятнадцать как, очень нравится. На вопрос о желательности этого я всё-таки предпочту, чтобы каждый отвечал для себя сам. Ну а в книжке этого нет, потому что тяжело объять необъятное.
Лично я думаю,
Добрый
При прочтении заметил несколько опечаток:
1) стр. 22, предпоследний абзац
«К примеру, если вы работаете над процедурой, длина которой 20-30, и видите возможность. «
Пропущено слово «строк» после цифр «20-30».
2) стр. 73, в примере описания функции int check на C, как делать не нужно, перепутаны местами 0 и 1, если сравнивать с кодом, который приведен ниже.
Не уверен, что следующие два пункта являются опечатками, если нет, то не могли бы вы пояснить, как читать и понимать данные типы возвращаемых значений?
3) стр. 79, static const char * const *
Правые const и * здесь не лишние?
Такое объявление компилируется, но «расшифровать» тип у меня не получается.
4) стр. 103, const char *GetNameById(int id) const
Аналогично предыдущему, правый const не лишний?
Спасибо 🙂
Опечатки (1) и (2) уже известны, но всё равно спасибо.
Вроде осознал
Другими словами, это разматывание чем-то похоже на матрешку: указатель указывает (масло масляное) на все, что слева от него, и, если внутри левой части есть еще указатель, поступаем аналогичным образом, сказав, что указатель указывает на этот указатель, который далее указывает на что-то еще.
А в каких случаях оно применяется? Из названия функции в примере следует, что таким образом можно представить распарсенную командную строку.
Используется ли это, например, для задания массива возможных сообщений программы?
const char * const messages[] = <
«Message1»,
«Message2»,
>;
Тут, конечно, и без const перед char поменять в памяти ничего не получится, но зато в указателях на подобный список все будет прописываться явно и компилятор ругнется, где нужно.
P.S. Хотя при попытке следующего присваивания
char * const *p = messages;
gcc выдает предупреждение о несовместимости типов указателей, а не о сбрасывании модификатора const. Можете объяснить, почему так происходит?
А четвертый пункт проще, да, спасибо.
кто на что похож
это разматывание чем-то похоже на матрешку
Можно и так сказать, хотя мне сложно судить, в правильном ли смысле вы привлекли эту аналогию.
Используется ли это, например, для
Да, почему бы и нет
Тут, конечно, и без const перед char поменять в памяти ничего не получится
Очень даже получится. Сами строки. Точнее, в итоге-то, конечно, не получится, но ошибка вылезет не при компиляции, а уже во время исполнения. Программа с грохотом превратится в тыкву.
gcc выдает предупреждение о несовместимости типов указателей, а не о сбрасывании модификатора const
Потому что вы меняете не тип самого указателя, а тип элемента, на который он указывает. Предупреждение «discards qualifiers» вылезет, если p описать как
const char **p = messages;
Можно и так
Можно и так сказать, хотя мне сложно судить, в правильном ли смысле вы привлекли эту аналогию.
Очень даже получится. Сами строки. Точнее, в итоге-то, конечно, не получится, но ошибка вылезет не при компиляции, а уже во время исполнения. Программа с грохотом превратится в тыкву.
Ну да, я и имел в виду Segmentation fault во время исполнения.
Потому что вы меняете не тип самого указателя, а тип элемента, на который он указывает.
Понял ошибку, спасибо.
Каждый
Ну нет, в таком виде, пожалуй, это всё-таки неправильно. Указатели-то имеют одинаковый размер, в отличие от матрёшек. И это как раз довольно важный момент: указатель не содержит весь список, он содержит только информацию о месте, где в памяти лежит первый элемент списка.
Тут скорее аналогия с ниточками какими-нибудь, которыми связаны элементы.
Матрешки
Указатели-то имеют одинаковый размер, в отличие от матрёшек.
Согласен, как раз в этом моменте аналогия и дает сбой, но на то она и аналогия 🙂
Тут вопрос в
Тут вопрос в том, для чего привлекается аналогия. Если для того, чтобы объяснить техническую сущность списка, то эта аналогия не позволит достичь поставленной цели.
Оформление программного кода. 2-е изд.
Название: Оформление программного кода. 2-е изд.
Автор: Столяров А.В.
Издательство: МАКС Пресс
Год: 2019
Страниц: 118
Язык: русский
Формат: pdf, djvu
Размер: 20.9 MB
В пособии изложены основные принципы, применяющиеся для повышения читаемости текстов компьютерных программ и их доступности для анализа человеком; в частности, даются рекомендации по разбиению программ на модули и подсистемы, уделяется много внимания различным стилям расстановки структурных отступов и незначащих (декоративных) пробелов.
Начинающие программисты обычно полагают, что текст программы предназначен для компьютера. У опытных программистов на этот счёт иное мнение. Совсем не сложно написать программу так, чтобы её «понял» компилятор или интерпретатор, и при этом можно совершенно не задумываться о том, удачно ли выбраны имена переменных и подпрограмм, правильно ли программа разбита на строки, служат ли своей цели структурные отступы, можно писать текст как попало, компилятору более-менее всё равно. Но такой подход годится лишь в случае, если программа, которую вы пишете, во-первых, настолько коротка, что вы её закончите в один приём, и, во-вторых, настолько бесполезна, что вы не только не станете её никому пересылать и даже показывать, но и сами никогда в жизни к ней не вернётесь. Вот только такие программы обычно не стоят того, чтобы вообще быть написанными.
Пособие ориентировано на студентов программистских специальностей, преподавателей, программистов.
Оформление программного кода столяров
В пособии изложены основные принципы, применяющиеся для повышения читаемости текстов компьютерных программ и их доступности для анализа человеком. В частности, даются рекомендации по разбиению программ на модули и подсистемы, уделяется много внимания различным стилям расстановки структурных отступов и незначащих (декоративных) пробелов. Начинающие программисты обычно полагают, что текст программы предназначен для компьютера. У опытных программистов на этот счёт иное мнение. Совсем не сложно написать программу так, чтобы её «понял» компилятор или интерпретатор, и при этом можно совершенно не задумываться о том, удачно ли выбраны имена переменных и подпрограмм, правильно ли программа разбита на строки, служат ли своей цели структурные отступы, можно писать текст как попало, компилятору более-менее всё равно.
Пособие ориентировано на студентов, преподавателей, программистов.
Название: Оформление программного кода
Автор: А.В. Столяров
Язык: Русский
Издательство: МАКС Пресс
Жанр: Компьютерная литература
Год выхода: 2019
Формат: pdf
Страниц: 118
Размер: 20,9 МБ
Поделитесь с друзьями ссылкой на эту страницу:
Оформление программного кода
Аннотация
В книге изложены основные принципы, применяющиеся для повышения читаемости текстов компьютерных программ и их доступности для анализа человеком; в частности, даются рекомендации по разбиению программ на модули и подсистемы, уделяется много внимания различным стилям расстановки структурных отступов и незначащих (декоративных) пробелов.
Пособие ориентировано на студентов программистских специальностей, преподавателей, программистов.
Оплата
Наш интернет-магазин работает только по предоплате!
Мы принимаем следующие виды оплаты:
Вы так же можете выбрать оплату по платежной квитанции и оплатить по ней покупку в отделении любого банка.
Юридические лица могут выбрать счёт на оплату.
Возврат денежных средств возможен в случаях:
Возврат не проводится в случаях:
Для оформления возврата обращайтесь по электронной почте dmkpress.help@gmail.com.
Доставка:
Курьерская доставка по Москве в течение 7 дней после оплаты заказа.
Стоимость доставки:
Самовывоз возможен в течение суток после оплаты.
Адрес для самовывоза:
115487, г. Москва, проспект Андропова, 38
Доставка почтой России: от 7 до 28 дней с момента оплаты заказа.
Стоимость доставки: