Skip to content

rvz16/cpp-base

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон репозитория для выполнения домашек по курсу "Углубленное программирование на C++"

Добро пожаловать на курс!

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

Если вы раньше не работали с подобными инструментами, то впадать и истерику не стоит, для вас есть гайд по локальному запуску этих утилит

Домашки будем сдавать на github, поэтому предлагаю обговорить правила оформления:

  1. Форкаем себе репозиторий и ДЕЛАЕМ ЕГО ПРИВАТНЫМ
  2. Каждое отдельное задание выполняется в отдельной ветке, поэтому делаем git checkout -b hwN, где N - номер домашнего задания
  3. Создаем папку c названием, совпадающим с названием ветки hwN
  4. В папке домашнего задания должен быть Makefile со слеудющими командами:
  • make build - собирает ваш проект
  • make run - запускает проект
  • make test - гоняет тесты GTest
  • make memory - прогон тестов с valgrind

Простой пример цели memory:

build:
    g++ -g -Wall -o main.out main_test.cpp # обязательно с флагом -g
memory:
    valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./main.out < input.txt # это можно прям копипастить, либо подсмотрите пример хорошего makefile в папке example

Важно - в контейнере не установлен GoogleTest, поэтому вам надо будет добавить его установку на этап сборки. Этот момент чуть позже распишем более подробно.

  1. Когда задание сделано, создаем PR в master, смотрим, что все галочки Github Actions зеленые, делаем assign на ментора и запрашиваем у него ревьью Тут хорошо бы понятно назвать PR - типа "Домашнее задание 1". Не надо называть их как "first attempt" и тому подобное
  2. Когда ментор и преподаватель одобрили PR, то вмерживаем его в мастер
  3. Profit

Важно:

Держим репозиторий чистым

В .gitignore есть базовый набор файлов, которых не должно быть в репозитории, но все же прошу перед отправкой домашки на проверку обратить внимание на то, что в PR нет:

  • бинарей
  • системных файлов (привет, маковский .DS_Store)
  • файлов среды разработки (.idea, .vscode, ...)

Чтобы бинари не добавлялись в репу, в Makfile добавляйте к их окончаниям .out

Следим за историей коммитов

Для понятной истории коммитов желательно описывать в них конкретно, что вы сделали

Рекомендуется также в сообщении коммита указывать номер домашнего задания, для которого коммит сделан, например git commit -m "hw1: initial commit"

Полезные ссылки:

  1. Если не знаете, как удалить ветку, отменить/изменить коммит, то велком сюда
  2. Пример домашки с универсальным мейкфайлом лежит в папке example

P.S.

По любым вопросам и предложениям касаемо этого репозитория пишите мне в telegram или заводите Issue на этот репозиторий, если стесняетесь, но все же лучше в личку

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 75.8%
  • C++ 20.5%
  • C 3.7%