Скидки до 20% + 2-ая профессия бесплатно и подарки на 50 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
Похожие статьи
Рекомендуемые программы
профессия
Верстка на HTML5 и CSS3, Программирование на JavaScript в браузере, разработка клиентских приложений используя React
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Python, Разработка веб-приложений и сервисов используя Django, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Тестирование веб-приложений, чек-листы и тест-кейсы, этапы тестирования, DevTools, Postman, SQL, Git, HTTP/HTTPS, API
4 месяца
с нуля
Старт 26 декабря
профессия
Программирование на Java, Разработка веб-приложений и микросервисов используя Spring Boot, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Google таблицы, SQL, Python, Superset, Tableau, Pandas, визуализация данных, Anaconda, Jupyter Notebook, A/B-тесты, ROI
9 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на PHP, Разработка веб-приложений и сервисов используя Laravel, проектирование и реализация REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на Ruby, Разработка веб-приложений и сервисов используя Rails, проектирование и реализация REST API
5 месяцев
c опытом
Старт 26 декабря
профессия
Программирование на JavaScript в браузере и на сервере (Node.js), разработка бекендов на Fastify и фронтенда на React
16 месяцев
с нуля
Старт 26 декабря
профессия
Программирование на JavaScript, разработка веб-приложений, bff и сервисов используя Fastify, проектирование REST API
10 месяцев
с нуля
Старт 26 декабря
профессия
новый
Git, JavaScript, Playwright, бэкенд-тесты, юнит-тесты, API-тесты, UI-тесты, Github Actions, HTTP/HTTPS, API, Docker, SQL
8 месяцев
c опытом
Старт 26 декабря