Файл: Реферат по дисциплине мдк 03. 01 студент 170 группы по специальности Информационные системы и программирование.docx
Добавлен: 09.01.2024
Просмотров: 84
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Департамент образования и науки
Ханты-мансийского автономного округа-Югры
БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ХАНТЫ-МАНСИЙСКОГО АВТОНОМНОГО ОКРУГА-ЮГРЫ
«ИГРИМСКИЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ»
Утилиты для Review обзор. Предпроцессинг кода. Интеграция в IDE
Реферат по дисциплине МДК 03.01
Выполнил: студент 170 группы по специальности Информационные системы и программирование
Дмитриев Максим
Исполнитель: Дмитриев Максим Евгеньевич
Руководитель: Рустам Пирали-оглы Алимов
Работа представлена
« _____» _____________ 2023 г.
Оценка ____________
Преподаватель _______________
Игрим 2023
СОДЕРЖАНИЕ
ГЛАВА 1. Что такое code review…………………………………… | 3 |
ГЛАВА 2. Как проводить review……………………………………… | 4 |
ГЛАВА 3. как проводить design, code, pre-commit…………………. | 5 |
ГЛАВА 4. результаты review………………………………………… | 6 |
ГЛАВА 5. что нужно знать об ide и редакторах кода?………… | 7 |
ГЛАВА 6. Какие ide и редакторы кода существуют сегодня?..... | 8 |
ГЛАВА 7. препроцессинг кода…………………………………………. | 11 |
| |
Библиографический список……………………………………………. | 12 |
1.ЧТО ТАКОЕ CODE REVIEW
Code review - инженерная практика в терминах гибкой методологии разработки. Это анализ (инспекция) кода с целью выявить ошибки, недочеты, расхождения в стиле написания кода, в соответствии написанного кода и поставленной задачи.
К очевидным плюсам этой практики можно отнести:
-
Улучшается качество кода -
Находятся «глупые» ошибки (опечатки) в реализации -
Повышается степень совместного владения кодом -
Код приводится к единому стилю написания -
Хорошо подходит для обучения «новичков», быстро набирается навык, происходит выравнивание опыта, обмен знаниями.
Что можно инспектировать?
Для ревью подходит любой код. Однако, review обязательно должно проводиться для критических мест в приложении (например: механизмы аутентификации, авторизации, передачи и обработки важной информации — обработка денежных транзакций и пр.).
Также для review подходят и юнит тесты, так как юнит тесты — это тот же самый код, который подвержен ошибкам, его нужно инспектировать также тщательно как и весь остальной код, потому что, неправильный тест может стоить очень дорого.
2.КАК ПРОВОДИТЬ REVIEW
Вообще, ревью кода должен проводиться в совокупности с другими гибкими инженерными практиками: парное программирование, TDD, CI. В этом случае достигается максимальная эффективность ревью. Если используется гибкая методология разработки, то этап code review можно внести в Definition of Done фичи.
Из чего состоит review?
Сначала design review — анализ будущего дизайна (архитектуры). Данный этап очень важен, так как без него ревью кода будет менее полезным или вообще бесполезным (если программист написал код, но этот код полностью неверен — не решает поставленную задачу, не удовлетворяет требованиям по памяти, времени). Пример: программисту поставили задачу написать алгоритм сортировки массива. Программист реализовал алгоритм bogo-sort, причем с точки зрения качества кода — не придраться (стиль написания, проверка на ошибки), но этот алгоритм совершенно не подходит по времени работы. Поэтому ревью в данном случае бесполезно (конечно — это утрированный пример, но я думаю, суть ясна), здесь необходимо полностью переписывать алгоритм.
Собственно, сам code review — анализ написанного кода. На данном этапе автору кода отправляются замечания, пожелания по написанному коду.
Также очень важно определиться, за кем будет последнее слово в принятии финального решения в случае возникновения спора. Обычно, приоритет отдается тому, кто будет реализовывать код (как в scrum при проведении planning poker), либо специальному человеку, который отвечает за этот код (как в google — code owner).
3.КАКПРОВОДИТЬ DESIGN, CODE, PRE-COMMIT, POST-COMMIT
Design review можно проводить за столом, в кругу коллег, у маркерной доски, в корпоративной wiki. На design review тот, кто будет писать код, расскажет о выбранной стратегии (примерный алгоритм, требуемые инструменты, библиотеки) решения поставленной задачи. Вся прелесть этого этапа заключается в том, что ошибка проектирования будет стоить 1-2 часа времени (и будет устранена сразу на review).
Можно проводить code review разными способами — дистанционно, когда каждый разработчик сидит за своим рабочим местом, и совместно — сидя перед монитором одного из коллег, либо в специально выделенным для этого месте, например meeting room. В принципе существует много способов (можно даже распечатать исходный код и вносить изменения на бумаге).
Данный вид pre-commit review проводится перед внесением изменений в VCS. Этот подход позволяет содержать в репозитории только проверенный код. В microsoft используется этот подход: всем участникам review рассылаются патчи с изменениями. После того как собран и обработан фидбэк, процесс повторяется до тех пор, пока все ревьюверы не согласятся с изменениями.
Данный вид post-commit review проводится после внесения изменений в VCS. При этом можно коммитить как в основную ветвь, так и во временную ветку (а в основную ветку вливать уже проверенные изменения).
4.РЕЗУЛЬТАТЫ REVIEW
Самое главное при проведении review — это использование полученного результата. В результате review могут появиться следующие артефакты:
-
Описание способа решения задачи (design review) -
UML диаграммы (design review) -
Комментарии к стилю кода (code review) -
Более правильный вариант (быстрый, легко читаемый) реализации (design review, code review) -
Указание на ошибки в коде (забытое условие в switch, и т.д.) (code review) -
Юниттесты (design review, code review)
При этом очень важно, чтобы все результаты не пропали, и были внесены в VCS, wiki. Этому могут препятствовать:
-
Сроки проекта. -
Лень, забывчивость разработчиков -
Отсутствие удобного механизма внесения изменений review, а также контроль внесения этих изменений.
Для преодоления этих проблем частично может помочь:
pre-commit hook в VCS
-
Создание ветви в VCS, из которой изменения вливаются в основную ветвь только после review -
Запрет сборки дистрибутива на CI сервере без проведения review. Например, при сборке дистрибутива проверять специальные свойства (svn: properties), либо специальный файл с результатами review. И отказывать в сборке дистрибутива, если не все ревьюверы одобрили (approve) код.
5.ЧТО НУЖНО ЗНАТЬ ОБ IDE И РЕДАКТОРАХ КОДА?
IDE (Integrated Development Environment) и редактор кода – это виды программного обеспечения, предназначенные для работы над приложениями, их разработки и тестирования. Возможности этих инструментов отличаются.
Редактор кода является программой, работающей как текстовый редактор, только более подходящий для написания кода.
IDE – это ПО, которое объединяет инструменты для разработки приложений и их тестирования в едином интерфейсе. Может делать все то, что и текстовый редактор, и даже больше. В принципе этим IDE и отличается от него, она предоставляет более расширенные функции. Среды разработки дают возможность создавать крупные проекты, а также подключать Git. Как правило, IDE состоит из:
-
самого текстового редактора для написания и редактирования кода; -
компилятора – инструмента, позволяющего перевести текст, написанный на языке программирования, в набор машинных кодов; -
отладчика, проверяющего код и устраняющего в нем ошибки; -
инструментов для автоматизации сборки кода, ускоряющих процесс разработки.
Многие IDE позволяют настраивать дополнительные фреймворки и библиотеки для расширения возможностей разработки.
6. КАКИЕ IDE И РЕДАКТОРЫ КОДА СУЩЕСТВУЮТ СЕГОДНЯ?
При выборе подходящей среды разработчики ориентируются на различные факторы, поддерживает ли IDE необходимые языки программирования, есть ли возможность совместной разработки для командной работы, какие дополнительные фичи доступны, можно ли устанавливать дополнительные расширения, нужна ли подписка или можно обойтись бесплатной версией. В статье даны описание и основные преимущества и недостатки инструментов, чтобы можно было понять, какой инструмент подходит больше под ваши задачи.
Microsoft Visual Studio
Рисунок 1. Microsoft Visual Studio
IDE от Microsoft дает возможность разрабатывать как консольные приложения, так и ПО с поддержкой графического интерфейса для ПК и мобильных устройств. Подходит для специалистов, работающих с несколькими языками программирования. VS является мультиязычной средой, поддерживающей Python, PHP, JavaScript, JSON, HTML, C++, и другие. Тестировщики же могут проверять приложение на всех возможных устройствах и браузерах. С помощью дополнительных модулей есть возможность расширить возможности среды под конкретные задачи.
Преимущества:
-
постоянно расширяющийся магазин дополнений, предоставляющий надстройки для расширения возможностей взаимодействия с IDE; -
встроенная технология автозавершения кода IntelliSense; -
возможности для командной работы: управление доступами к проекту, полностью настраиваемые параметры редактора;
Недостатки:
-
отсутствие возможности работы на Linux ОС; -
это достаточно тяжеловесная среда. Если у вас нет необходимости разрабатывать консольные приложения, то можно рассмотреть более подходящий редактор кода.
PyCharm
Рисунок 2. PyCharm
PyCharm – среда для работы с Python. Разработчики из компании JetBrains создали серию IDE с ориентированием на разные языки: PyCharm, PHPStorm, CLion, IntelliJ IDEA. К сожалению, компания-разработчик этого и другого ПО, ушли с российского рынка, и оплата платных подписок сейчас недоступна. Однако PyCharm обладает бесплатной опенсорсной версией – Community, которая предоставляет инструменты для программирования на Python.
Преимущества:
-
автозавершение кода, автопоиск и исправление ошибок в коде; -
поддержка сред для веб-разработки Django, Flask, Google App Engine, Pyramid и web2py; -
интеграция с системами контроля версий; -
интеграция с Jupyter Notebook, Anaconda и другими библиотеками; -
отладчик, профилировщик Python, встроенные терминал и инструменты баз данных.
Недостатки:
-
версия Community не поддерживает многие инструменты, нет профилировщика Python и поддержки баз данных; -
отсутствует возможность оплаты Professional версии в России.
7.ПРЕПРОЦЕССИНГ КОДА
Препроцессинг — предварительная обработка исходного файла перед передачей его компилятору. Чаще всего препроцессор вводит расширенный синтаксис, чтобы упростить или оптимизировать какие-то задачи, а на выходе генерирует код, понятный компилятору.
Если вы имели дело с фронтенд-разработкой, должно быть слышали о coffee, babel, sass, less, postcss — всем этом многообразии. Еще препроцессор в явном виде есть в C — он обеспечивает работу таких штук, как include, define, ifdef.
Надеюсь, у нас такие инструменты до масштабов современного фронтенда не дойдут. Однако, идея достойна внимания. Можно бесконечно расширять язык, вводить шорткаты и DSL на уровне приложения, причем совершенно прозрачно. Забавы ради я попробовал добавить в python простой аналог сишной директивы define.