Skip to content

Course on Development Tools (in Russian)

Notifications You must be signed in to change notification settings

ksenyako/devtools-course1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

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

Ресурсы:

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

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

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

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 33.4%
  • CSS 31.1%
  • Shell 25.2%
  • C++ 10.3%