- Знакомство с системой контроля версий Git, практическое освоение основных команд.
- Освоение соглашений и практик к оформлению кода и ведению репозитария в Git
- Практическое закрепление знаний полученных при изучении шаблона Singleton;
- Изучить основы Git, связанные с понятием фиксации (commit), истории(log) ветки(branch), индексирования (tracking/staging) и т.д. (Главы 1, 2, 3 документации). Ответить на вопросы:
- Какие состояния могут иметь файлы находящиеся под контролем git? В каких областях (working tree/staged area/git repository) при этом они находятся?
- Какой командой можно отобразить состояние файлов в репозитории?
- Какими действиями (командами) можно изменять состояние файлов?
- Как посмотреть историю изменений в git?
- Есть ли возможность внести правки в последний commit? Если да, то как?
- Как отменить изменения определённого commit-а?
- Как вернуть локальный репозиторий к состоянию, который был после заданного commit-а?
- Как работать с удалённым репозиторием (получить изменения/применить изменения/отправить изменения)?
- Что такое ветка в git-е под капотом?
- Как и где хранятся конфигурации git? Какими командами командной строки их можно отобразить?
- Как можно настроить git для игнорирования определённых типов файлов или каталогов?
- В качестве примера, изучить подход к написанию коммитов. Ведение истории коммитов в этой и дальнейших лабораторных работах следует вести исходя из данного соглашения (*).
- В качестве примера изучить Соглашние по оформлению кода для C# CoreFX C# coding guidelines. Для Python: Google Python Styleguide Оформление кода в этой и дальнейших лабораторных работах следует вести исходя из данного соглашения (*).
- Разработать библиотеку, способную записывать логи в текстовый файл:
- Логгер (объект записывающий собщения в файл) должен быть реализован с использованием шаблона Singleton и не должен позволять клиентам создавать более 1 экземпляра объекта.
- Предполагается, что логгер будет использован в многопоточном приложении.
- Имя файла с логами должно соответстовать шаблону
DP.P1.yyyy-MM-dd.HH-mm-ss.log. Например:DP.P1.2020-11-16.00-05-28.log - При инициализации логгер должен создавать новый файл, либо очищать существующий.
- Формат сообщения, записываемого в лог должен быть следующий
yyуy-MM-dd HH:mm:ss [LEVEL] Message, гдеyyуy-MM-dd HH:mm:ss- время записи сообщения в лог;LEVEL- уровень (важность) сообщения (значение из множества {TRACE, INFO, WARN, ERROR, FATAL});Message- текст сообщения. Например:2020-11-16 00:16:58 [INFO] Application started successfully. - Приложение должно быть разработано на языке программирования Python 3.11+ или на платформе .NET 7 или выше с использованием языка C#.
- Для демонстрации работы на Python допустимо использовать Jupyter Notebook
- Для демонстрации работы на C# допустимо использовать консольное приложение (шаблон
Console App (.NET Core)при создании проекта в Visual Studio)
(*) - Нужно понимать, что это всего лишь один из множества различных подходов. При разработке реальных продуктов, команды вольны договариваться о любом подходящем для них соглашении. Строгих отраслевых стандартов в этой области не существует.