Sly32

Рейтинг
391
Регистрация
29.03.2012
Должность
Software engineer
drDaemon:
А что касается памяти... например генераторы и списки.

Спасибо. Генераторы, итераторы - я не совсем это имел ввиду. В Питоне не приходится как в других языках заботится об очистке памяти. Он все сам)

А генераторы всякие - это нормальный инструмент) Что бы не держать в памяти все сразу а только указатель на итератор.

Парсерами тоже занимался несколько лет назад, с учетом ограниченности ресурсов тогда приходилось экономить на всем)

drDaemon:
В общем то я больше не про память думаю, а об алгоритме решения...

Вот именно! я про это и пытаюсь сказать.

drDaemon:
с 2008 года. Но последнее время мало его использую.

И как вы там думаете про память? у вас высоконагруженные приложения с бигдата?

Да, я сталкивался с тем, что приходилось отключать gc для ускорения и запускать его только когда нужно приложению, но в большинстве случаев хватает того как он работает по умолчанию. Поэтому мне сложно понять, как в в Питоне всегда думаете про память

LazyBadger:
Нет. Слай, ты же не умеешь Питон, как ты собираешься "оценивать" миддловость/сеньорность соискателя?
Поскольку в начальном примере if/else, то тут идет тернарный if (ну и функции в нем на оба ветвления)… я не умею питонить, просто писал в те годы, когда за вышеприведенные примеры (на любом АЯ) пороли нещадно на конюшне

Не неси бред. Я считал что ты в состоянии понять что я привожу и тебе не нужно весь код приводить. Ну и глянь исходный код для начала

---------- Добавлено 03.01.2020 в 15:33 ----------

drDaemon:
На самом деле всегда нужно думать про память.

Вы работаете с Питоном?

DenisVS:
true - четыре символа, а false - пять

*** ))) Я этот вариант сразу отмел как невероятный и начал тупить - а что же делает такой код)))) как бы в Питоне будет

if b:

# do something

Stek:
Как вижу, что вся асинхронность нужна в первую очередь агрегаторам, которые не имею сами информацию, а тянут ее с разных сервисов.
В остальном все спокойно решается uwsgi tasks/celery и подобными решениям.

У нас прогресс постоянно паблишится в другие серверы, да, с использованием селери/кафки, но есть и запросы которые могут подвиснуть в ожидании ответа, из и приходится асинхронить

LazyBadger:
Спасибо за 3 минуты здорового смеха. Не смешно то, что индусоарабы так и пишут, случается

Ну так этож пример индусокода))

Solmyr:
Например:

Код:
Boolean b = new Boolean( is_admin );
if( b.toString().length() == 4 ) {
// something...
}
// something
*

А можно расшифровать?

Вы создаете булеву переменную и передаете аргумент какой то is_admin? а потом конвертите в строку и проверяете длину? что-то делаете если тру а потом еще какие то действия?

Solmyr, а что в вашем понятии говнокод, можно поподробнее? Я с С или Джавой почти не имел опыта, а в последние три года плотной работы на Пайтон уже и совсем забыл что нужно что-то думать про память.

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

Ну и GC работает очень эффективно, тольков очень уж высоконагруженных проектах может появиться необходимость самому заниматься очисткой памяти

Solmyr:
Современные языки программирования отличаются исключительно по следующим критериям:

Полагаю, вы джавист или плюсовик)) Это не оскорбление ни в коем) Хорошие языки)

По вашим пунктам дополню просто на базе своего любимого питона

Solmyr:
Типизация данных явная/неявная

В Питоне динамическая (утиная типизация) - Как вы говорите, плохо для мозга? Используйте тайпхинты- заведены с 3.4 При этом сохраняется гибкость кода

Solmyr:
Аллоцирование памяти ручное/автоматическое

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

Solmyr:
Организация множественного наследования

Ну а куда без него) Но и тут все не так страшно. Есть MRO и алгоритм С3, который помогает разрешить проблемы с наследованием

Все вышеприведенное в принципе - тема одной лекции по питону на курсах. А вот в пхп я не встречал хорошей доки по этим темам, может просто тогда еще не интересовался.

Dreammaker:
Что вы имеете в виду под "ожидание ответа"? И почему это блокирующая операция?

https://habr.com/ru/post/337420/

Всего: 8319