до 80 900 ₽
Майские скидки до 80 900 ₽
Главная | Все статьи | Дневник студента

Python: Второй проект. Мысли и впечатления.

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

Проект - крут! Было сложно. Иногда очень сложно. Порой был ступор на 3-4 дня, когда не знал как подступиться к задаче. При этом принципиально было найти решение самостоятельно, не подсматривая аналогичные решения где либо еще. (Однажды я подсмотрел решение учителя в одной из практик, и потом очень долго себя корил за это). В противном случае, это сильно бы подкосило уверенность в своих силах - значит я "не смог". В реальной работе, наверно, так делать не стоит - нужно будет советоваться и искать помощи со стороны, чтобы не срывать сроки. Второй проект по срокам я итак очень сильно затянул, даже с учетом поправки на новогодние праздники.Наверно, я могу это назвать своей "маленькой победой". Уж чего я точно не ожидал - так это, что проект сдам со второй попытки. Когда сдавал в первый раз, думал, что придется переделывать почти всю логику построения диффа. Мне казалось, что она не очень качественно сделана. И я был удивлен, что основная часть замечаний была не про самой логике формирования диффа, а различные "шероховатости" в типа функций в виде констант, опечаток а-ля "tAmplate", строках в услових etc. Многие из этих вещей остались без должного внимания, потому что весь фокус был на вот этих всех рекурсиях и "ифах".Когда отправлял проект на повторную проверку уже была некоторая надежда, на "вдруг прокатит" ))

Проект дал многое. Когда то в ВУЗе мы немного учили С. С тех пор некоторые базовые вещи из программирования типа переменных, циклов и рекурсии в памяти отложились достаточно хорошо. Булева алгебра и теория множеств немножко тоже. На теоретические вопросы, вероятно, я сейчас не смог бы ответить хорошо. Но понимание, чем отличается пересечение множеств от разницы множеств есть. Это то, что помогло в этом проекте. Но есть штуки, которые для меня новы и которые еще не отложилсь в голове как само разумеющиеся вещи. Например то, что функции можно возвращать из функций так же, как переменные, массивы и т.д. Я не знаю, можно ли так было в С. Для меня всегда существовали данные отдельно, функции отдельно. В некоторых случаях это прямо "вау"-эффект на меня производило. "А так можно было?" :) С этим нужно еще свыкнуться, чтобы это новое знание вытеснило старое.

Второй момент (на самом деле - первый по важности!) - это ТЕСТЫ! Это реально круто. Да, вначале нужно потратить некоторое время на их написание. Частенько нужно было фикстуры "подшлифовать" (там пробел лишний, там запятую забыл). Добиться сначала, чтобы тесты падали с AssertionError. Зато потом!! Рефакторинг при тестах становится ну просто сильно проще! Это реально открытие для меня.

И третий пункт (как следствие второго) - нужно помнить про "corner cases". Совершенно случайно перед сдачей проекта я решил запустить программу на своих собственных тестовых данных и тесты попадали. В JSON встречался 0 в значениях , который трактовался программой как False. Тогда же я выявил и проблему с null и булевыми значениями в JSON. Пришлось переписывать и дописывать код.

Ну и последнее - этот проект очень близок к тому пет-проекту, который я держу в голове в котором также нужно будет отбирать данные из различных форматов (прайсы в XML, CSV, GoogleSheets) в единый файл и отслеживать изменение исходных данных с заданой периодичностью. В этом ключе второй проект Хекслета прямо вот точно доктор прописал!

И да, это было круто! Спасибо.

Аватар пользователя Artem Stepanenko
Artem Stepanenko 03 февраля 2020
9
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 9 мая
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 9 мая
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 9 мая
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 9 мая
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 9 мая
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 9 мая
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 9 мая
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 9 мая
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 9 мая
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 9 мая
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время