Просто мои мысли как Middle-Python'иста. Что такое паттерны и как правильно подбирать стратегию обучения
часто, я, как любитель-разработчик на Python, встречался с такой проблемой - если ты любитель, то тебе не предложат коммерческую программу обучения - следственно, ты не будешь знать что брать и откуда брать.
в мире программирования (обычно разветвления идут на разные ЯП (Языки программирования), но есть и общие. я говорю, в частности, про Python) есть такая прекрасная система - называется паттерны (от англ. Pattern - шаблон). что это такое? это быстрый материал (как "Ctrl + c +++ Ctrl + v"), который "заделывает" определенную функцию в коде, которая требует постоянного решения.
так вот: классический паттерн для такой ситуации это JIT (Just-in-time, т.е =- чисто в срок). в чем его прелесть - тебе не нужно брать академический паттерн JIC (Just-in-case, т.е = "на всякий случай") и "забивать" голову лишними знаниями. если тебе нужно сделать не костыльную либу (библиотеку) для логгирования, ты просто вбиваешь в Google "либа для логгера пайтон" - и все, тебе Gemini (AI встроенное в Chrome, которая, по твоему запросу, первой в списке выдает ответ (да, она умная и ищет нужную инфу в интернете)) (или другие материалы) покажут список удобных библиотек.
Классические библиотеки (либы) для использования и изучения:
logger (встроенная в python) или же loguru (более удобная версия logger) - для логгинга в файл/print'а, а также гибких настроек. лучше для настройки - logger, для быстрого использования (и просто) - loguru.
SQLAlchemy или же SQLModel. SQLAlchemy - это буквально "комбайн": он содержит в себе очень большую универсальность, но достаточно сырой в плане простоты использования, а также требует дополнительного подключения валидаторов по типу Pydantic (т.е: валютирование на уровне создания класса SQL модели не встроено). SQLModel же - это ВСТРОЕННАЯ, РОДНАЯ ДЛЯ FASTAPI библиотека (либа) для работы с БД. Туда буквально можно передать данные как в pydantic и валидировать точно также, прям в классе описания - оно само все сделает (еще лучший вариант - интегрировать pydantic классы моделей с Enum'ом для жесткой фиксации).
тут предоставлена лишь часть от того, что может быть изучено для базы.
честно, меня очень настораживает от метода "JIC" (Just-in-case: изучение всего "на всякий случай"). как разработчик-любитель достигнувшего Middle-уровня чисто на опыте я могу сказать: это полнейшая хуитень, и никогда таким заниматься я бы не посоветовал. ты можешь изучать месяц litestar, а потом узнаешь, что FastAPI гибче, более открытый и лучше поддерживаемый, а потом еще месяца 2 изучать и его.
лучший мой совет для базового изучения: пиши проект. сложности, которая выше твоей, того, чего ты не знаешь, но не запредельного (если ты на уровне Junior- (print, переменные, типы данных, работа с типами данных, простейший with open), то ты не должен пойти и изучать WinAPI, cryptography hazmat, лучше повремени, брат). просто берешь, забиваешь в Gemini (поисковая строка Google Chrome'а), что хочешь поучить, а потом действуешь по формуле 80/20, где 80 процентов времени обучения новой технологии ты тратишь на практику, а лишь 20 - на теорию (буквально "пока тепленькое": как только узнал про новый метод, пиши его в тестовую функцию и практикуй его использование).
всем спасибо, кто дочитал. да, я понимаю, что данный текст может по структуре напоминать что-то по типу "бильярд на котором шашки, карты Uno, учебники и 1 лист металла", но я просто написал что было у меня в голове.
Автор: https://vk.com/lessro