До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

Главная | Все статьи | Дневник студента

Мой первый проект на Hexlet в профессии Python-программист

Время чтения статьи ~3 минуты
Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Мой первый проект на Hexlet в профессии Python-программист главное изображение

Всем привет! В этой статье я хочу поделиться своими впечатлениями о первом проекте в профессии Python-программист. Если вы проходите эту профессию и сомневаетесь "нужно ли проходить проекты", для экономии времени можете прочитать мои впечатления, которые опишу в конце.

Предыстория

Перед покупкой проекта я колебался: нужно ли тратить 97$ на написание приложения, которое заставит пользователя отвечать на вопросы в духе "Делится ли 21 на 2", "Сколько будет 12+51". Кажется, что это слишком простая задача, такой скрипт можно накидать за 5 минут, подобные программы обычно пишут на старте изучения языка. По программе курса это действительно так, но я начал выполнять этот проект когда уже прошел почти все курсы, остались только SQL и ООП. Проекты в итоге я приобрел целой пачкой, когда увидел новость о повышении цен. Я до конца не верил, что Игры разума принесут мне какую-то пользу, но выполнение этого проекта (на момент написания статьи я его еще не закончил) помогло открыть глаза на то, как нужно писать приложения на Python правильно. Я на практике реализую то, что знал только в теории (речь идет в основном о DRY).

Сложности на старте

Это будет самая короткая секция, потому что сложности возникли только с установкой Poetry т.к. по умолчанию он работает с Python 2.7. В этой статье Алексей описал установку Poetry для работы с Python 3.x, все в порядке, работаем :)

Начало работы

Установка Poetry это только первый шаг, но он занял достаточно времени. Далее нужно было собрать приложение, настроить конфиг, повторить уроки по модулям и пакетам, подключить линтер. Описание процесса заняло пару предложений, но по времени это длилось около шести часов из-за моей неуверенной работе в Ubuntu, один раз даже её пришлось переустановить. Наконец-то добрался до логики. В описании мне намекали, что скрипты отвечают только за запуск приложения, сама логика должна быть реализована в другом месте. В одном из следующих шагов мне еще раз повторили, что при добавлении новых модулей некоторый код может повторяться, и его лучше также вынести в отдельный модуль, к тому же еще codeclimat ругается (его также нужно было подключить по ходу выполнения шагов). В процессе я переписывал свое приложение, вынося повторяющиеся функции в отдельный модуль, и я был просто в восторге когда осознал, что могу добавить новые функции всего несколькими строками, которые после передам в "главный" модуль. Я осознанно описываю весь процесс в общих чертах чтобы не спойлерить тем, кто соберется проходить проект, но вся эта работа помогла понять как правильно создавать приложения на Python. Об этом я расскажу далее.

Мои первые впечатления

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

  1. Создание минимальной архитектуры приложения
  2. Разбиение функционала по модулям
  3. Анализ кода (codeclimat, flake8), вынесение повторяющихся функций в отдельные модули (см. DRY).

  4. Сборка и публикация пакета в репозиторий.

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

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

Аватар пользователя Дмитрий Семенко
Дмитрий Семенко 02 марта 2020
18
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 28 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 28 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 28 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 28 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 28 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 28 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 28 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 28 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 28 ноября