HelWorld, заказчик на фрилансе не ждёт, что вы на нём учиться будете, он ожидает, что его заказ качественно выполнят. И хоть так может и не казаться в начале карьерного пути, но сделать это можно только понимая нюансы разработки, с которыми сталкиваешься только отработав больше года на реальном коммерческом проекте в команде профессионалов, о которых не рассказывают на курсах и не пишут в учебниках. Поэтому без опыта работа на фрилансе в большинстве случаев начинается и заканчивается по одному и тому же сценарию: неопытный новичок очень долго пытается получиться первый заказ, потом его запарывает, получает негативную оценку и больше не может взять ни одного заказа. Поэтому сначала надо устроиться в офис джуном, отработать там пару-тройку лет. а уж потом соваться на фриланс.
Shandy, P.S. ваша попытка сделать функцию, которая может работать как синхронно, так и асинхронно - это старая академическая проблема разноцветных функций. Если её кратко резюмировать, то не надо так делать.
Shandy, грубо говоря да. В идеале вся программа должна быть написана в асинхронном стиле от и до. Желательно при старте создавать цикл событий, добавлять в него корневую сопрограмму, с которой будет начинаться вся инфраструктурная и прикладная логика, распределённая по асинхронным функциям. В общем-то всё это достаточно подробно описано в документации.
Shandy, просто добавление функции квалификатора async не делает её бысрее, а просто позволяет отдавать управление на операциях ввода/вывода. Чтобы программа стала быстрее, нужно правильно организовать кооперативную многозадачность множества асинхронных функций в одном цикле событий.
PaaS может быть лучше, если уметь под этот platfrom писать код. Для обычного кода, не учитывающего особенности платформы, он часто становится проблемой.
Nikita, курсор стоит открывать перед каждым запросом и закрывать сразу после, он не предназначен для повторного использования. А соединение, если оно не управляется пулом, не должно передаваться за пределы контекста выполнения, оно непотокобезопасно. Проблемы могут быть связаны с этими фактами.