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