Sergei-Lebedev / devtools-course

Course on Development Tools (in Russian)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Спецкурс "Инструменты разработки"

Нижегородский Государственный Университет им. Н.И. Лобачевского
Факультет ВМК, каф. МО ЭВМ

License: Creative Commons Attribution-Share Alike 3.0 (CC BY-SA 3.0)

Ресурсы

  • Таблица успеваемости
  • Google-группа
  • Документация: https://devtools.readthedocs.org
  • Отчеты о построении: https://travis-ci.org/UNN-VMK-Software/devtools-course
  • Литература:
  • Дейв Томас, Энди Хант "Программист-прагматик"
  • Нил Форд "Продуктивный программист" (pdf)
  • Гудлиф "Ремесло программиста" (pdf)
  • Стив Макконнелл "Совершенный код"
  • Kernighan & Pike, The Practice of Programming, Addison-Wesley, 1999, ISBN 020161586X
  • Дополнительная литература:
    • Джеффри Фридл "Регулярные выражения", 3-е издание (pdf)
    • Ян Гойвертс, С. Левитан "Регулярные выражения. Сборник рецептов" (pdf)

Описание лабораторных работ

  1. Настройка окружения
  2. Проектирование

Лабораторная работа #1, "Настройка окружения"

  1. Вступите в группу devtools-course, которую мы будем использовать для общения. По всем вопросам необходимо обращаться туда.
  2. Выберите себе тему из списка, вписав свое имя.
  3. Зарегистрируйтесь на GitHub, предпочтительно использования аккаунта, из котого понятно ваше имя (опционально).
  4. Создайте форк нашего проекта: https://github.com/UNN-VMK-Software/devtools-course, клонируйте репозиторий к себе на рабочую машину. Все необходимые инструкции можно найти здесь.
  5. В подпапке code заведите папку со своим именем (name-surname), и поместите туда файл README.md. Это будет ваша wiki страничка в формате Markdown со всеми деталями о вашем проекте.
  6. Заполните свой README.md информацией, чтобы там были заголовки, списки и желательно ссылки и стили (жирный, курсив). Стоит написать свое имя, тему лабораторной работы, раскрыть постановку задачи (предлагается сделать это самостоятельно). Просьба следить за грамматикой, файлы с ошибками будут возвращаться на доработку. Также просьба следить за корректностью синтаксиса Markdown.
  7. Когда все будет готово, стоит проверить, правильно ли генерируется html на основе вашего Markdown. Для этого можно воспользоваться утилитой pandoc, или например текстовым редактором, который умеет рендерить html.
  8. После того как вы убедились, что файл выглядит хорошо, нужно будет сделать локальный коммит в Git, затем сделать push изменений в ваш форк на GitHub.
  9. Когда ваши коммиты попадут на GitHub, нужно будет сделать pull-request в центральный репозиторий. Большая просьба в названии pull-request указать свою фамилию и номер лабораторной, например "Корняков - Лабораторная работа #0".
  10. Если будут замечания к вашему коду, вы можете просто добавлять коммиты в свою ветку master, и пулл-реквест будет автоматически обновляться.

Лабораторная работа #2, "Проектирование"

  1. Создайте в своей директории подпапки, подобно тому как это сделано здесь. В дальнейшем нужно будет строго придерживаться подобной раскладки файлов.
  2. Разработайте интерфейс класса (hpp-файл), и поместите его в папку include.
    • Постарайтесь избегать лишних зависимостей в своем заголовочном файле. Также желательно предоставлять минималистичный интерфейс, позволяющий решить задачу, а все остальное поместить в protected и private секции класса.
    • Реализацию на этом этапе писать не нужно, вы можете это сделать чтобы проверить "жизнеспособность" API. В таком случае cpp-файл можно положить в директорию src, но ничего больше.
  3. Задокументируйте свой класс в стиле Sphinx, см. заготовку: исходник, результат.
    • Необходимо создать rst-файл и поместить его в свою директорию docs.
    • Необходимо заполнить его, подробно описав (1) назначение класса, (2) сигнатуры публичных методов, (3) приведя примеры использования класса в пользовательском С++ коде.
    • Когда файл будет готов, его нужно будет включить в корневой файл с документацией.
  4. Проверить корректность построения документации можно двумя способами:
    • Локально. Вам нужно будет установить Sphinx, после чего построить документацию, пользуясь файлами из директории docs.
    • Онлайн. Вы можете индивидуально подключить свой репозиторий к сервису ReadTheDocs. Тогда вы сможете увидеть свою документацию подобно тому, как это сделано для всего проекта devtools.
  5. Когда заголовочный файл класса, и документация на него будут готовы, нужно снова прислать пулл-реквест. Большая просьба в названии указать свою фамилию и номер лабораторной, например "Лабораторная работа #2".

About

Course on Development Tools (in Russian)


Languages

Language:Python 32.2%Language:CSS 30.3%Language:Shell 26.7%Language:C++ 10.8%