#вашивопросы
Мне лично, было бы интересно почитать, о том, какие решения и инструменты вы используется чаще всего, как будущему программисту, насколько с вашей точки зрения актуальны те или иные платформы. Я понимаю, что в интернете тоже полно такой информации, но иногда надо разбираться на сколько она устаревшая например, плюс лишнее ИМХО никогда не повредит, что бы понять, что перевесит в итоге. А вообще с Джанго работали?
Я работаю преимущественно с бэкендом и еще пишу микросервисы (и не микро-) - всё это в основном на Python, поэтому речь в этом посте будет про него и его экосреду.
1. Django - довольно тяжеловесный, но очень распространённый веб-фреймворк, используется повсеместно. Создавался для быстрой разработки шаблонных, однотипных сайтов. Вначале потребует некоторого времени на освоение. Для создания сервисов с REST API часто используется в связке с django rest api framework.
2. Более минималистические и легкие в освоении веб-фреймворки: Flask, Pyramids.
3. Асинхронщина. Для тех, кто в танке для начала расскажу, что такое асинхронность.
Например, вы завариваете чай. Ставите чайник, стоите рядом и просто ждёте, пока он закипит. Потом только достаёте чашку и наливаете в неё кипяток. Так работает синхронный код (то есть обычный). В случае с программой это выглядит, например, так: программа скачивает большой файл из Интернета, и пока он скачивается она просто «висит» и ждёт окончания этой операции, и только потом делает что-то ещё.
Асинхронность же - это когда вы ставите чайник, и пока он закипает, переключаетесь на другую задачу - например, накладываете себе макароны. В случае с программой, она не просто ждёт, пока скачается файл, а выполняет какие-нибудь вычисления, или, например, принимает данные от пользователя.
На словах звучит так, что асинхронность - это всегда хорошо, быстро, эффективно. Но проблема в питоне в том, что он изначально не был приспособлен к асинхронности, а некоторое время назад её начали в него добавлять. Асинхронный код пишут не так, как синхронный, он несовместим со многими обычными модулями, его сложно отлаживать и неудобно тестировать. Так что есть мнение, и не только моё, что лучше писать на синхронном Python, а если нужна асинхронность - писать такие программы на Go.
Тем не менее, асинхронные фреймворки и библиотеки в моде, и высок шанс с ними столкнуться. Есть, например, Sanic - это асинхронный аналог Flask-a - имхо, самое симпатичное решение среди прочих. Есть еще веб-фреймворк и веб-сервер Tornado ну и aiohttp.
4. Базы данных. Я работаю с PostgreSQL, поэтому основная «базовая» библиотека тут - это psycopg2, есть еще универсальное решение - SQLAlchemy (не люблю ORM, но куда от них денешься?).
5. Очереди. Для работы с RabbitMQ использую либу kombu, она удобнее, чем pika.
6. Тестирование - фреймворк pytest очень облегчает написание тестов.
Из всего этого зоопарка специально и заранее я изучала только Django, остальное пришло само с опытом, когда сталкивалась с этими технологиями на работе.
Бот для ваших вопросов: @hum_it_bot
Мне лично, было бы интересно почитать, о том, какие решения и инструменты вы используется чаще всего, как будущему программисту, насколько с вашей точки зрения актуальны те или иные платформы. Я понимаю, что в интернете тоже полно такой информации, но иногда надо разбираться на сколько она устаревшая например, плюс лишнее ИМХО никогда не повредит, что бы понять, что перевесит в итоге. А вообще с Джанго работали?
Я работаю преимущественно с бэкендом и еще пишу микросервисы (и не микро-) - всё это в основном на Python, поэтому речь в этом посте будет про него и его экосреду.
1. Django - довольно тяжеловесный, но очень распространённый веб-фреймворк, используется повсеместно. Создавался для быстрой разработки шаблонных, однотипных сайтов. Вначале потребует некоторого времени на освоение. Для создания сервисов с REST API часто используется в связке с django rest api framework.
2. Более минималистические и легкие в освоении веб-фреймворки: Flask, Pyramids.
3. Асинхронщина. Для тех, кто в танке для начала расскажу, что такое асинхронность.
Например, вы завариваете чай. Ставите чайник, стоите рядом и просто ждёте, пока он закипит. Потом только достаёте чашку и наливаете в неё кипяток. Так работает синхронный код (то есть обычный). В случае с программой это выглядит, например, так: программа скачивает большой файл из Интернета, и пока он скачивается она просто «висит» и ждёт окончания этой операции, и только потом делает что-то ещё.
Асинхронность же - это когда вы ставите чайник, и пока он закипает, переключаетесь на другую задачу - например, накладываете себе макароны. В случае с программой, она не просто ждёт, пока скачается файл, а выполняет какие-нибудь вычисления, или, например, принимает данные от пользователя.
На словах звучит так, что асинхронность - это всегда хорошо, быстро, эффективно. Но проблема в питоне в том, что он изначально не был приспособлен к асинхронности, а некоторое время назад её начали в него добавлять. Асинхронный код пишут не так, как синхронный, он несовместим со многими обычными модулями, его сложно отлаживать и неудобно тестировать. Так что есть мнение, и не только моё, что лучше писать на синхронном Python, а если нужна асинхронность - писать такие программы на Go.
Тем не менее, асинхронные фреймворки и библиотеки в моде, и высок шанс с ними столкнуться. Есть, например, Sanic - это асинхронный аналог Flask-a - имхо, самое симпатичное решение среди прочих. Есть еще веб-фреймворк и веб-сервер Tornado ну и aiohttp.
4. Базы данных. Я работаю с PostgreSQL, поэтому основная «базовая» библиотека тут - это psycopg2, есть еще универсальное решение - SQLAlchemy (не люблю ORM, но куда от них денешься?).
5. Очереди. Для работы с RabbitMQ использую либу kombu, она удобнее, чем pika.
6. Тестирование - фреймворк pytest очень облегчает написание тестов.
Из всего этого зоопарка специально и заранее я изучала только Django, остальное пришло само с опытом, когда сталкивалась с этими технологиями на работе.
Бот для ваших вопросов: @hum_it_bot