Файл: М инистерство образования кузбасса.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 78

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Рисунок 3.6 – Создана фиксация всего

Шаг 3: Создание ветки

1. Нажмите на Git сверху и выберите "Создать ветвь". (Рисунок 3.7)



3.7 – Выбор создания ветви

2. Введите имя ветки и нажмите "Создать". (Рисунок 3.8)



Рисунок 3.8 – Создание новой ветви

Шаг 4: Добавление коммитов в ветку

1. Переключитесь на созданную ветку, нажав на нее в окне "Контроль версий". (Рисунок 3.9)



3.9 – Переключение на новую ветвь

2. Внесите изменения в код и фиксируйте их в контроле версий, как описано в шаге 2. (3.10)



Рисунок 3.10 Создание новой фиксации

Шаг 5: Переключение между ветками

1. В правом окне, где происходит фиксация измений, нужно нажать на окошко рядом с кнопкой "отправить" (3.11)



Рисунок 3.11 – Окно переключения между ветвями

2. Выберите ветку, на которую хотите переключиться. (Рисунок 3.12)



Рисунок 3.12 – Переключаемся между ветками

Шаг 6: Добавление коммитов в основную ветку

1. Переключитесь на основную ветку, нажав на нее в окне "Контроль версий". (Рисунок .3.13)



Рисунок 3.13 – Переключение на другую ветку в окне «Контроль версий»

2. Внесите изменения в код и фиксируйте их в контроле версий, как описано в шаге 2. (Рисунок 3.14)



Рисунок 3.14 – Внесения изменения в код и его фиксация

Шаг 7: Слияние веток

1. Нажмите правой кнопкой мыши на основной ветке в окне "Контроль версий" и выберите "Слить ветки". (3.15)




Рисунок 3.15 – Выбираем слияния веток

2. Выберите ветку, которую вы хотите слить с основной, и нажмите "Слить". (Рисунок 3.16)



Рисунок 3.16 – Слияние веток

3. Разрешите конфликты, если они возникнут, и сохраните изменения. (Рисунок 3.17)



Рисунок 3.17 – Слияние сохранено

4. Выполнение оптимизации программного кода с использованием специализированных программных средств.


Цель: изучить возможности по оптимизации кода

Задание: описать задачи и способы оптимизации программного кода и поиск узких мест при помощи профилирования

1.Задачи оптимизации программного кода:

1.1 Улучшение производительности: Одна из главных задач оптимизации кода - повышение производительности программы. Это может включать уменьшение времени выполнения, сокращение использования памяти или улучшение реакции на ввод-вывод данных.

1.2 Снижение сложности: Оптимизация кода может помочь уменьшить сложность программы, сделать ее более понятной и легкой в поддержке. Это может включать устранение дублирования кода, упрощение алгоритмов или рефакторинг кода.

1.3 Улучшение надежности: Оптимизация кода может помочь устранить ошибки, повысить стабильность и надежность программы. Это может включать проверку наличия утечек памяти, обработку исключений и улучшение обработки ошибок.

2. Способы оптимизации программного кода:

2.1 Использование эффективных алгоритмов: Выбор правильного алгоритма может существенно повлиять на производительность программы. Поэтому важно исследовать и выбрать наиболее эффективный алгоритм для решения задачи.

2.2 Оптимизация циклов: Особенно важно обратить внимание на циклы, так как они часто занимают значительную часть времени выполнения программы. Можно улучшить производительность, уменьшив количество итераций, использовать операции над массивами или распараллелить выполнение циклов.

2.3 Уменьшение накладных расходов: Накладные расходы могут включать ненужные операции, лишние вызовы функций, копирование данных и т. д. Оптимизация кода может включать устранение накладных расходов и упрощение логики программы.

2.4 Использование подходящих структур данных: Выбор правильной структуры данных может значительно улучшить производительность программы. Например, использование хэш-таблицы вместо поиска в списке может значительно сократить время выполнения.


3.Профилирование и поиск узких мест:

Профилирование - это процесс измерения производительности программы с целью определения узких мест, т.е. частей кода, которые занимают большую часть времени выполнения программы. Вот некоторые способы профилирования и поиска узких мест:

3.1 Инструменты профилирования: Существует множество инструментов для профилирования кода, которые помогают определить, какие участки кода требуют больше времени выполнения. Примеры таких инструментов включают профилировщики, такие как Intel VTune, GNU gprof, Python cProfile и многие другие.

3.2 Анализ времени выполнения: Можно измерить время выполнения различных участков кода и сравнить их результаты. Это позволяет определить, какие части кода занимают больше всего времени и требуют оптимизации.

3.3 Использование бенчмарков: Создание тестовых сценариев или бенчмарков для проверки производительности кода позволяет определить, какие участки кода выполняются медленно. Бенчмарки позволяют сравнивать различные реализации и измерять их производительность.

3.4 Профилирование памяти: В дополнение к профилированию производительности, также можно профилировать использование памяти. Это позволяет выявить утечки памяти или большое потребление памяти в определенных участках кода.

После определения узких мест и профилирования кода можно приступить к оптимизации, применяя различные техники, такие как реорганизация кода, использование более эффективных алгоритмов или внедрение параллельных вычислений.

5. Планирование и проведение ревьюирования программных продуктов.


Цель:

Задание: выполнить ревью кода ниже и исправить ошибки и неточности

Ревьюирование кода (Рисунок 4.1)



Рисунок 4.1 – Ревью кода

6. Оформление результатов ревьюирования программных продуктов.


Цель:

Задание: написать отчет по проведенному ревью, перечисляющий найденные ошибки, неточности, и указать возможные пути исправления

6.1 Нахождение переменной находила не в массиве из-за этого в консоли выводилось одно значение из массива


6.2 Перенесения переменной в цикл чтобы обновлялось значение

6.3 Было добавлено try и catch, т.к. если пользователь введет не число или введет пустое значение, то будет выведенной сообщение об ошибке, сообщение ошибки будет задействовать цикл while.

6.4 Переменные подверглись изменению, т.к. они были некорректно поставлены.