- PVSM.RU - https://www.pvsm.ru -
Осенью я начала готовиться к будущему выходу из декретного отпуска, купив курс Яндекс.Практикума «Продвинутый Go-разработчик». Сейчас я еще в процессе прохождения курса и недавно сдала первый дипломный проект, но уже сейчас могу сказать, что разработка ПО вышла на другой уровень за время моего отпуска длиной почти в два года. В разработке ПО появилось много приятных фишек, которые мне нужно освоить. В данной статье я хочу описать то, какие изменения я уже заметила в разработке ПО и что я уже смогла почерпнуть из курса практикума.
Начать хочется с максимально актуальной темы — это использование нейронных сетей. Без них в современном мире разработки(и не только) теперь никуда. Когда я уходила в декретный отпуск, то только малая часть разработчиков активно использовала их, сейчас это повсеместно. Вот пару примеров того, как они уже облегчают нам жизнь:
Рутинные задачи можно переложить на генераторы кода, нужно только проверить, что все сгенерировано верно. Например, базовый CRUD по модели или написание тестов можно отправить точно туда.
Сократилось время поиска потенциальной ошибки. Раньше можно было потратить много времени ища ответы на форумах или в документации. Сейчас можно отдать ошибку и/или часть кода нейронке и вжух.. почти сразу готовое описание того, где ты был не прав, да еще и с несколькими вариантами решения.
Часть нейронок уже встроены IDE и позволяют разрабатывать код значительно быстрее, предлагаю возможные варианты оптимизации или готового решения.
Рефакторинг и оптимизация кода стали проходить мягче и легче. Например, в практикуме было интересное задание, когда нужно было добавить повторные обращения к базе при условии отвалившегося в процессе соединения. У меня было решение, которое казалось мне не идеальным, потому что слишком уж много действий нужно было сделать, чтобы его встроить в нуж��ые функции. Решила поискать совета у нейронки, загрузив свой код и попросив его оптимизировать. Новое решение меня приятно порадовало , оно удовлетворило все мои требования по минимизации действий по добавлению ретраев. Честно, тут я прям кайфанула от решения и быстренькой забрала к себе в проект :-)
И это еще малая часть их применения :-)
При работе с нейронными сетями важно уметь корректно задать промпт и если что, правильно скорректировать его — от этого зависит большая часть успеха. Кстати, я была приятно удивлена, когда покупая курс увидела отдельный дополнительный спринт по основам работы с ИИ в разработке. (Этот приятный бонус помог мне закрыть пробелы в этой области, без которой современная разработка не может уже существовать.)
Конечно, нейросети неидеальны, в них случаются так называемые «галлюцинации», например, когда она может выдумать несуществующую библиотеку с несуществующими методами. Поэтому голову включать при работе с нейронами все же нужно (тут как говориться — доверяй, но проверяй).
Второй момент, очевидный, конечно, за два года обновлений вышло достаточно много, а некоторые новые инструменты в целом заменили часть старых. На Go я еще достаточно мало разрабатываю, чтобы дать корректную оценку, а мой основной и пока любимый язык все еще Python, поэтому расскажу про изменения, которые произошли для сервисов, написанных на Python. За два года сервисы стали значительно быстрее. В частности я разрабатывала микросервисы с использованием фреймворка FastApi, который для валидации использует библиотеку Pydantic, — в июне 2023 года вышел Pydantic v2, который был переписан на Rust. В новой версии библиотеки скорость валидации выросла в разы. Еще хочется отметить появление мощного линтера ruff (тоже, кстати, на Rust написанного), который заменил flake8, isort, pydocstyle и кучу других линтеров. Нельзя не отметить быстрый пакетный менеджер uv, который советуют тоже интегрировать в свои проекты. Мне с ним пока еще не пришлось поработать. И последний топовый пример — это появление фреймворка для асинхронной обработки событий FastStream. Он предоставляет унифицированное API для работы с брокерами сообщений (Kafka, RabbitMQ, NATS) и при том у него тот же синтаксис, что у FastAPI. Этот фреймворк был создан для максимального упрощения разработки event-driven систем. Вот его мне точно еще предстоит затестить.
Третий пункт, который хочется отметить отдельно, это появление новых трендов в разработке сервисов. В частности хочу подсветить момент, что векторные БД вышли за это время на новый уровень и все чаще их теперь можно встретить в проекте, правда по большей части для бекенда, который работает с AI. До выхода в «отпуск» я как раз работала с распределенной версией векторной БД Clickhouse. Читая разные статьи о разработке, я все чаще натыкаюсь на использование расширения для PostgreSQL pgvector, оно добавляет поддержку векторных операций в привычную нам базу данных. Уже не терпится попробовать в деле это расширение, но пока не ясно, когда и для каких задач могла бы я это применить. А в целом векторные БД это отдельная и интересная тема для освещения.
Конечно, это лишь малая вершин�� айсберга изменений, которая произошла в разработке, но уже этого достаточно, чтобы понять, что работать нужно много и освоить придется тоже не мало. Но я уже на этом пути. «Дорогу осилит идущий», так что главное не останавливаться.
P.S. думаю, что после выхода на работу смогу дополнить эту небольшую статью, написав, что ещё нового для себя встретила в разработке спустя 2 года декретного отпуска.
Автор: Bessima
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/439912
Ссылки в тексте:
[1] Источник: https://habr.com/ru/articles/979698/?utm_source=habrahabr&utm_medium=rss&utm_campaign=979698
Нажмите здесь для печати.