• Почему все говорят что писать ботов это сложно?

    Vindicar
    @Vindicar
    RTFM!
    А сложность начинается, как только задачи, стоящие перед ботом, перерастают уровень примера в документации видеотуториале пятилетней давности.

    Нужно сделать несколько под-команд у команды. Напишу цепочку if-elif-else, делов то. Ой, а теперь простыня кода на пять экранов, в которой фиг чего найдёшь. Потому что нет привычки структурировать код.

    Нужно, чтобы несколько команд/событий формировали цепочку (сценарий). Например, пользователь отправил тре сообщения, первое с именем, второе с возрастом, третье с адресом. Ой, а как это сделать вообще? Не зная понятия "конечный автомат" (finite state machine, FSM), очень трудно догадаться, как тут поступить.

    Нужно, чтобы ботом могли пользоваться несколько человек. Ой, их данные перепутались! Потому что бот использует глобальные переменные.

    Нужно, чтобы бот выполнил длительную задачу, и написал сообщение, когда она выполнится. Не вопрос, напишу функцию, вызову её, а сразу после отправлю сообщение. Ой, а бот не отвечает! Потому что рабочий цикл asyncio занят этой длительной операцией и не может отреагировать на поступающие данные. Нужно иметь хорошее представление о том, как работает асинхронная программа.

    Нужно добавить боту графический интерфейс - админку. Ой, а работает или интерфейс, или сам бот! Потому что нужно представлять, как устроено большинство GUI-фреймворков, и как устроена асинхронное приложение. А заодно понимать многопоточность, вопросы синхронизации действий между двумя потоками, и особенности работы с asyncio в многопоточных приложениях. Потому что одним потоком тут обойтись будет очень непросто.

    Нужно хранить данные в БД. Ой, а почему у меня проблемы при записи в БД имени пользователя? А потому что погромист собирает SQL-запрос через форматирование строк. Надо было почитать доки, чтобы наткнуться на prepared statements, они же parameterized queries.

    Нужно хранить данные в БД. Вот только данные имеют связи многие-ко-многим. Я знаю! Я буду просто добавлять или удалять столбцы в таблицу! Потому что не освоены даже азы проектирования БД. Тут уже nuff said. И да, я такое видел на этом сайте.

    Незнание средств языка и основных приемов построения алгоритмов и структур данных приводит к диким велосипедам, которые создают больше проблем, чем пользы. Особенно если к этому добавляется нежелание находить и читать документацию на фреймворк, на котором построен бот.
    Ответ написан
    2 комментария
  • Как нынче получать деньги от зарубежных работодателей?

    @sv11
    Если работаете как самозанятый, можно через сервисы типа easystaff.io. Получаешь сразу рубли на любую карту (МИР в том числе). Вполне адекватная комиссия и поддержка на русском. Сам пробовал
    Ответ написан
    Комментировать
  • Как нынче получать деньги от зарубежных работодателей?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    payoner + tinkoff
    Ответ написан
    Комментировать
  • Как нынче получать деньги от зарубежных работодателей?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    SWIFT и крипта.
    Ответ написан
    Комментировать
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    @Borshevistiy
    Составляй планы на дни или делай какие то документы.
    Ответ написан
    Комментировать
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    Adamos
    @Adamos
    Может, немного пофантазировать на тему "как писать большие проекты в команде и не поубивать нахрен этих уродов, каждый из которых дергает меня, но делает по-своему?". Может полегчать...
    Ответ написан
    Комментировать
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    insighter
    @insighter
    -First time? - Huh? (C#, React, JS)
    Глянул на пэт-проект, который сейчас пишу - 5тыс строк + 1тыс тестов, и если честно, ощущение, что проект даже не начал ещё толком писать.

    Конечно архитектура - это ключевой вопрос. Не бойтесь рефакторить код в пользу хорошей архитектуры.
    Если надо будет выбрать одно - переписать неэффективный алгоритм или переделать структуру проекта, я всегда выберу второе. Плохая архитектура похоронит проект, а плохой алгоритм или плохую реализацию функционала всегда можно переделать потом пока совсем не прижмет.
    Конечно также нужны тесты хотя бы на ключевые штуки.

    Скажу банальщину, но когда начинаешь можно не предвидеть все нюансы архитектуры, особенно если проект выбивается из того что делал ранее.

    PS хотел бы ещё важное добавить, архитектурными делами надо заниматься не наскоками. Тут как back-end <-> front-end, мне например сложно перескакивать с одного на другое в течение дня, большие задачи делаю только одно, или back или front.
    С архитектурой также надо поступать. Потому, что сложно переключать мышление с глобальных абстракций на детали реализации.
    Ответ написан
    Комментировать
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    Grapeoff
    @Grapeoff
    В чём концепция...?
    Если вы шарите в архитектуре, то писать большие проекты вам будет в кайф
    Ответ написан
    2 комментария
  • Как научиться писать большие проекты в одиночку и не сойти с ума?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Декомпозиция
    Ответ написан
    Комментировать
  • Как исправить ошибку "TypeError: unsupported operand type(s) for /: 'coroutine' and 'int'"?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Где-то забыт await.
    Ответ написан
    Комментировать
  • Как организовать микро слипы в задаче celery?

    @marazmiki
    Укротитель питонов
    Вынесите в отдельную задачу отправку одного сообщения в один чат. А во второй задаче, внутри цикла, вызывайте эти задачи с указанием ETA
    Ответ написан
    Комментировать
  • Как определить, сколько памяти потребляет скрипт python (внутри самого скрипта)?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    pip install memory_profiler

    from memory_profiler import memory_usage
    memory_usage()
    Ответ написан
    Комментировать
  • Как исключить возможность запуска того же bat файла?

    @rPman
    Не делай контроль повторного запуска батником, будет неудобно, есть тема где это обсуждали там есть примеры

    Лучше пусть само приложение это делает, создавай lock файл (имя файла пусть будет в параметрах) с pid процесса, при запуске приложение должно проверить, существует ли процесс с таким pid как записан в файле (если он есть) если есть - выходить, если нет - перезаписывать файл своим pid и продолжать работу.
    Ответ написан
    5 комментариев
  • Как сделать из строки число?

    WolfInChains
    @WolfInChains
    import re
    
    price = "1 000₴"
    numbers = int(re.sub('\D', '', price))
    
    print(numbers)
    Ответ написан
    Комментировать
  • Как правильно написать bat скрипт для запуска exe собранного pyinstaller?

    wisgest
    @wisgest
    Не ИТ-специалист
    Существуют такие команды, позволяющие изменить рабочий каталог, как cd и pushd/popd. Кроме того сама команда start поддерживает для этого ключ /d. Возможно, сработает
    start /d "C:\Users\valinor\Desktop\hihi\dist\main" main.exe --dir='D:\ttt'

    (Cправку по командам можно получить, вызвав их сключом /? — «Ответ легко ищется поисковиком».)

    Если командный файл создаётся ради единственной команды, то можно просто создать ярлык, указав в его свойствах рабочий каталог.
    Ответ написан
    1 комментарий
  • Как найти в слово в сообщение ( Bot Telegram Python)?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    import telebot
    
    token = ''
    
    bot = telebot.TeleBot(token)
    
    @bot.message_handler(content_types=['text'])
    def repeat_all_message(message):
    
    	if 'хочет' in message.text:
    		bot.send_message(message.chat.id,'не хочет')
    
    if __name__ == '__main__':
        bot.polling(none_stop=True)

    Этому учат в первом классе.
    Ответ написан
    2 комментария
  • Как начать работать по часовой оплате?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Просто начните думать почасовыми ставками. Сейчас ваша ставка примерно 200 руб/час.
    На свой следующий проект назначьте 210 руб. в час и т.д. Постепенно дойдете до более менее приличной ставки.

    И конечно нужно пытаться рабоать на всех биржах куда есть доступ.
    Ответ написан
    Комментировать
  • Как начать работать по часовой оплате?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Тут принцип такой - если ты затянул время по своей вине (сам тупил жестко или взялся за то, что не умеешь делать), то такие часы не стоит логировать и не брать за них оплату. А если у этого была объективная причина - задача реально оказалась сложнее чем вы изначально рассчитывали, то такие вещи стоит рассказать заказчику, чтобы он понял причину увеличения сроков.
    В целом работа по часам гораздо проще и честнее для обеих сторон - сколько проработал, столько получил/заплатил. И не нужно супер точно оценивать работу заранее. Достаточно дать грубую оценку и дальше уже работать.

    По поводу Upwork - будь готов, что там очень жесткая конкуренция. Если ты новичок, то тебе будет сложно биться с армией таких же новичков и в случае неудачи возможен пожизненный бан. Если уверен в своих силах, то дерзай. Но 750р/час ($10) это ставка индусов на Upwork'е. Нормальный питонист должен брать от $20 и выше.
    Ответ написан
    8 комментариев
  • Изи вопрос для бота дискорд?

    Alexandre888
    @Alexandre888 Куратор тега Боты
    Javascript-разработчик
    https://stackoverflow.com/questions/43964328/how-d...

    P.S - не забывайте про знаки препинания, невозможно текст читать..
    Ответ написан
    Комментировать
  • Как ведёт себя код python встроенный в c#?

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    Delphi умеет работать с современным интерпретатором (3.9 последняя).
    Ответ написан
    4 комментария