Skip to content

Repository for passing homeworks of Efendiev Murad

Notifications You must be signed in to change notification settings

MURAD-CBRG/hse_cpp_autumn_2023

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

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

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

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

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

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

build:
    g++ -g -Wall -o main.out main.cpp # обязательно с флагом -g
memory:
    valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes ./main.out < input.txt # это можно прям копипастить, либо подсмотрите пример хорошего makefile в папке example
  1. Когда задание сделано, создаем PR в master, смотрим, что все галочки Github Actions зеленые, делаем assign на ментора и запрашиваем у него ревьью
  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

Repository for passing homeworks of Efendiev Murad

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

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