Центр дистанционного обучения МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА - Российский технологический университет» РТУ МИРЭА МАТЕРИАЛЫ ПРАКТИЧЕСКИХ РАБОТ Технологии и методы программирования (наименование дисциплины (модуля) в соответствии с учебным планом) Уровень бакалавриат, специалитет (бакалавриат, магистратура, специалитет) очная Форма обучения (очная, очно-заочная, заочная) 10.03.01, 10.05.03, 10.05.04 Направление (спец.) (код (-ы) и наименование (-я)) Институт Кибербезопасности и цифровых технологий (ИКБ) (краткое и полное наименование) Кафедра Кафедра КБ-2 «Прикладные информационные технологии» (полное и краткое наименование кафедры, реализующей дисциплину (модуль)) Русаков Алексей Михайлович Лектор (сокращенно – ученая степень, ученое звание; полностью ФИО) Используются в данной редакции с учебного года 2023/2024 (учебный год цифрами) Проверено и согласовано «___» _________ 2023 г. Бакаев А.А. (подпись директора Института/Филиала с расшифровкой) Москва 2023 г. 1 МИНИСТЕРСТ • «МИРЭА online.mirea.ru Центр дистанционного обучения Технологии и методы программирования Практика №1 ФИО преподавателя: Русаков Алексей Михайлович e-mail: rusakov_a@mirea.ru Online-edu.mirea.ru online.mirea.ru Центр дистанционного обучения Список литературы • Руководство по языку программирования Python https://metanit.com/python/tutorial/ • Руководство по JavaScript https://metanit.com/web/javascript/ • Руководство по HTML5 и CSS3 https://metanit.com/web/html5/ • Язык программирования Python 3 для начинающих и чайников https://pythonworld.ru/ • Образовательная платформа по Python https://pythonist.ru/ • MDN Web Docs (mozilla.org) online.mirea.ru 3 https://developer.mozilla.org/ru/ Центр дистанционного обучения Список дополнительной литературы по программированию https://stepik.org/course/91715/ Пишем свой мессенджер на основе современных технологий (основы) https://www.sololearn.com/ 4 online.mirea.ru Центр дистанционного обучения Способ обмена исходными кодами OpenSource сообщество (один из вариантов) https://github.com/RusAl84 5 online.mirea.ru Центр дистанционного обучения Знакомство методологией разработки ПО GitFlow Система управления версиями (Version Control System) позволяет упорядоченно хранить несколько версий одного и того же файла, объединять изменения в файле, сделанные несколькими разработчиками, просматривать историю изменений, возвращаться обратно к предыдущим версиям и др. 6 online.mirea.ru Центр дистанционного обучения системы управления версиями распределенные централизованные CVS 7 online.mirea.ru Центр дистанционного обучения Методология разработки GitFlow 8 online.mirea.ru Центр дистанционного обучения 9 online.mirea.ru Центр дистанционного обучения 10 online.mirea.ru Центр дистанционного обучения Предполагается, что при разработке используются следующие типы веток: • master branch • develop branch • release branches • hot fix branches • feature branches 11 online.mirea.ru Центр дистанционного обучения Основные ветви Ветвь master создаётся при инициализации репозитория. Параллельно ей также мы создаём ветку для разработки под названием develop. Ветка origin/master считается главной. То есть, исходный код в ней должен находиться в состоянии production-ready в любой произвольный момент времени. 12 online.mirea.ru Центр дистанционного обучения Настройка файла .gitignore # комментарий — эта строка игнорируется # не обрабатывать файлы, имя которых заканчивается на .a *.a # НО отслеживать файл lib.a, несмотря на то, что мы игнорируем все #.a файлы с помощью предыдущего правила !lib.a # игнорировать только файл TODO находящийся в корневом каталоге, не # относится к файлам вида subdir/TODO /TODO # игнорировать все файлы в каталоге build/ build/ # игнорировать doc/notes.txt, но не doc/server/arch.txt doc/*.txt # игнорировать все .txt файлы в каталоге doc/ doc/**/*.txt 13 online.mirea.ru Центр дистанционного обучения 14 online.mirea.ru Центр дистанционного обучения refactoring.guru 15 online.mirea.ru Центр дистанционного обучения 16 online.mirea.ru Центр дистанционного обучения 17 online.mirea.ru Центр дистанционного обучения 18 online.mirea.ru Центр дистанционного обучения 19 online.mirea.ru Центр дистанционного обучения online.mirea.ru 20 Центр дистанционного обучения 21 online.mirea.ru Центр дистанционного обучения 22 online.mirea.ru Центр дистанционного обучения 23 online.mirea.ru Центр дистанционного обучения 24 online.mirea.ru Центр дистанционного обучения 25 online.mirea.ru Центр дистанционного обучения 26 online.mirea.ru Центр дистанционного обучения 27 online.mirea.ru Центр дистанционного обучения 28 online.mirea.ru Центр дистанционного обучения 29 online.mirea.ru Центр дистанционного обучения 30 online.mirea.ru Центр дистанционного обучения 31 online.mirea.ru Центр дистанционного обучения 32 online.mirea.ru Центр дистанционного обучения 33 online.mirea.ru Центр дистанционного обучения 34 online.mirea.ru Центр дистанционного обучения 35 online.mirea.ru Центр дистанционного обучения 36 online.mirea.ru Центр дистанционного обучения 37 online.mirea.ru Центр дистанционного обучения 38 online.mirea.ru Центр дистанционного обучения Примеры готовых структур данных для современных языков программирования 39 online.mirea.ru Центр дистанционного обучения Последовательные контейнеры С++ • vector: массив переменного размера. Поддерживает произвольный доступ к любому элементу в контейнере. Обеспечивает добавление и удаление элементов из любого места контейнера. • deque: двусторонняя очередь. Поддерживает произвольный доступ к любому элементу в контейнере. Обеспечивает удаление и добавление элементов в начале и в конце контейнера. • list: двухсвязный список Поддерживает только последовательный двухнаправленный доступ к элементам. Обеспечивает удаление и добавление элементов в начале и в конце контейнера. • forward_list: односвязный список. Поддерживает только однонаправленный последовательный доступ к элементам. Обеспечивает удаление и добавление элементов в начале и в конце контейнера. • array: массив фиксированного размера. Поддерживает произвольный доступ к любому элементу в контейнере. Добавлять или удалять элементы из контейнера нельзя. • 40 online.mirea.ru string: представляет контейнер, аналогичный вектору, который состоит из символов, то есть строку Центр дистанционного обучения collections — Типы данных контейнеров Python Этот модуль реализует специализированные типы данных контейнеров, предоставляя альтернативы встроенным контейнерам общего назначения Python, dict, list, set, и tuple. namedtuple() заводская функция для создания подклассов кортежей с именованными полями deque контейнер, похожий на список, с быстрым добавлением и всплывающими окнами на обоих концах ChainMap подобный dict класс для создания единого представления нескольких сопоставлений Counter подкласс dict для подсчета хешируемых объектов OrderedDict добавлен подкласс dict, который запоминает записи порядка defaultdict подкласс dict, который вызывает заводскую функцию для предоставления отсутствующих значений UserDict обертка вокруг объектов словаря для упрощения создания подклассов dict UserList обертка вокруг объектов списка для упрощения создания подклассов списка UserString обертка вокруг строковых объектов для упрощения создания подклассов строк 41 online.mirea.ru Центр дистанционного обучения Типы данных JavaScript • Методы примитивов • Числа • Строки • Массивы • Методы массивов • Перебираемые объекты • Map и Set • WeakMap и WeakSet learn.javascript.ru/data-types • Object.keys, values, entries • Деструктурирующее присваивание • Дата и время online.mirea.ru 42 • Формат JSON, метод toJSON Центр дистанционного обучения Спасибо за внимание! online.mirea.ru