14446
Вопросы про Python для чайников. Cпам и троллинг неприемлем. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Правила группы: https://t.me/ru_python_beginners/1649981
Я когда-то давно был подписан на python-ideas
Читать полностью…
потому что здесь нет какого-то очевидного варианта который чем-то лучше других, лучше сразу получить ошибку чем спотыкаться о неочевидный выбор
Читать полностью…
абсолютно выдуманные сценарии которые на практике скорее вредны
Читать полностью…
длина строки это фейк, итерация по строке это фейк
Читать полностью…
стд покрывает относительно высокоуровневый сценарий взаимодействия, где ос строки это пути к файлам, аргументы командной строки итд
если ты пишешь что-то более низкоуровневое то тебе надо писать разный код под разные платформы и там естественно использовать разные конкретные типы
То есть если мне надо взаимодействовать с ОС мне нахуй не упал OSStr?
Читать полностью…
вот я всё хотел latin-1 заменить на cp1251, чтобы наши, русские программы занимали меньше оперативки, но там в unicodeobject.c прям много завязано на то, что оно latin-1
Ну вот тут и будет инвалидация по стейту, когда товар в кеше отличается от фактически существующего товара
Читать полностью…
это как раз не проблема. Проблема - что делать если юзер пришел, увидел "популярный товар, много на складе", а на складе его нет.
Читать полностью…
я имею в виду, что нельзя напрямую сделать for mystery_object in string. Нужно указывать, по чему итерируешься (байты, кодпойнты, графемы)
да да, сейчас начнут трясти своими графем-кластерами
Читать полностью…
В расте тоже так, len() выдаёт длину UTF-8 байтов. Чтобы посчитать кодпойнты, нужно сделать str.chars().count(), что O(N)
(правда, в расте нельзя по строке напрямую итерироваться)
Вообще длина строки в кодпойнтах — не такая полезная операция, как кажется на первый взгляд. Обычно есть что-то лучше.
питон обещает O(1) для some_str[i], от того и использует их
я если честно не понимаю зачем использовать утф16 и тем более утф32
Читать полностью…
А, в гошке длина строки != Количество итераций при обходе её
Читать полностью…
Ну, допустим есть такой кейс:
Есть онлайн магазин, там есть селлеры, у них есть товары. У товаров есть обычное описание и AI описание
AI описание само генерируется исходя из карточки товара, отзывов, количества оставшихся штук товара итд
В идеальном мире мы будем каждый раз генерить это описание, но вообще имеет смысл кешировать ответ, пока заказ не поменялся (описание, отзывы, количество оставшихся штук, etc). Делается вообще тривиально: кладёшь в редиску стейт товара из которого генерируется ai description + сам ai description. Ну и если стейт не совпал, надо обновить
Как тут решить проблему, если два запроса одновременно решили прочитать этот кеш, увидели что он невалидный, и пошли его обновлять? Вопрос хороший
Я бы просто лок брал на время обновления + какой-нибудь version_id, чтобы смотреть, что ты точно обновляешь новой инфой, а не старой