Как стать автором
Обновить
1
0
Роман Казаков @rkazakov

Менеджер по продуктам

Отправить сообщение

Управление памятью в Python

Время на прочтение 10 мин
Количество просмотров 14K
Всем привет! Вот и закончились длинные мартовские выходные. Первую послепраздничную публикацию мы хотим посвятить полюбившемуся многим курсу — «Разработчик Python», который стартует менее, чем через 2 недели. Поехали.

Содержание

  1. Память – пустая книга
  2. Управление памятью: от оборудования к программному обеспечению
  3. Базовая реализация Python
  4. Концепция глобальной блокировки интерпретатора (Global Interpreter Lock, GIL)
  5. Сборщик мусора
  6. Управление памятью в CPython:
    • Пулы
    • Блоки
    • Арены
  7. Заключение



Вы когда-нибудь задумывались как Python за кулисами обрабатывает ваши данные? Как ваши переменные хранятся в памяти? В какой момент они удаляются?
В этой статье мы углубимся во внутреннее устройство Python, чтобы понять, как происходит управление памятью.

Прочитав эту статью, вы:

  • Узнаете больше о низкоуровневых операциях, особенно касательно памяти.
  • Поймете, как Python абстрагирует низкоуровневые операции.
  • Узнаете об алгоритмах управления памятью в Python.

Знание внутреннего устройства Python даст лучшее понимание о принципах его поведении. Надеюсь, вы сможете взглянуть на Python с новой стороны. За кулисами происходит великое множество логических операций, чтобы ваша программа работала надлежащим образом.
Читать дальше →
Всего голосов 26: ↑21 и ↓5 +16
Комментарии 5

Итераторы в Python для самых маленьких

Время на прочтение 11 мин
Количество просмотров 48K

«Напиши, пожалуйста, кастомный итератор,» — такое задание довольно часто дают на собеседованиях, и я раз за разом вижу обреченные глаза кандидата, когда он сталкивается с подобной просьбой. Опыт участия в собеседованиях показал мне, что большинство начинающих разработчиков бегут от этой темы, потому что она кажется слишком запутанной и непонятной. А ведь ничего сложного в ней нет, если подобраться к ней правильным образом — в чём я и постараюсь помочь дорогим читателям.

Наше путешествие мы начнем с того, что вообще такое итератор. Итератор — это некий объект, который в себе реализует интерфейс перебора чего-либо. А говоря рабоче-крестьянским языком — это такая штука, которая в себе описывает правило, по которому мы будем перебирать содержимое той или иной коробки.

Читать далее
Всего голосов 39: ↑38 и ↓1 +37
Комментарии 7

Оптимизируем использование памяти в приложениях Python

Время на прочтение 10 мин
Количество просмотров 8.9K
Когда дело доходит до оптимизации производительности, чаще всего особое внимание уделяется скорости и активности использования ЦП. Гораздо реже кто-либо задумывается о потреблении памяти, конечно, пока не будут израсходованы мощности RAM. Есть много причин, по которым предпринимаются попытки лимитировать использование памяти – не только стремление избежать отказа приложения из-за ошибок, связанных с её исчерпанием.

В этой статье будет исследовано, как находить в ваших приложениях на Python такие участки, где возникает перерасход памяти, проанализировано, по каким причинам это происходит. Наконец, мы научимся снижать использование памяти и сокращать отпечаток программы в памяти, пользуясь простыми приёмами и эффективными структурами данных.
Читать дальше →
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 0

Уроки Python от компании Google

Время на прочтение 1 мин
Количество просмотров 120K
Отличный способ освоить Python — учебный класс Python в Google Code University. Уроки для этого класса написал Ник Парланте из Стэнфорда, и прошедшие курс люди отмечают не просто высокое, а фантастически высокое качество уроков.

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

Есть ещё скачиваемые задачки. Они довольно простые и созданы специально для начинающих. Курс идеально подходит для изучения Python программистами, имеющими опыт работы с другими языками программирования.
Всего голосов 159: ↑148 и ↓11 +137
Комментарии 77

Middle или Senior: какой ваш уровень в аналитике?

Время на прочтение 4 мин
Количество просмотров 13K

Скорее всего, вы и так его знаете. Но в этой статье мы хотим поделиться нашими критериями оценки кандидатов на должности Middle- и Senior-аналитиков. Если вы хотели прийти к нам работать — то сможете проанализировать свой опыт и понять, какому уровню вы соответствуете. А ещё подготовитесь к интервью.

Ну а если не хотели — всё равно заходите оценить свои компетенции :)

Читать далее
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 0

Как устроены продуктовые процессы в Циан

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.9K

Рассказываем о внутренних процессах и корпоративной культуре Циан.

Как держать всех в контексте и не скатиться в бюрократию? Почему неудобные вопросы – залог эффективности? Что такое командообразование, и зачем оно нужно? В этой статье расскажем, как работает Циан изнутри. И почему именно так, а не как-то по-другому.

Читать далее
Всего голосов 7: ↑3 и ↓4 -1
Комментарии 5

Книга «MySQL по максимуму. 4-е издание»

Время на прочтение 8 мин
Количество просмотров 5.9K
image Привет, Хаброжители!

Хотите выжать из MySQL максимум возможностей? Вам поможет уникальная книга, написанная экспертами для экспертов.

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

Это издание было обновлено и переработано с учетом последних достижений в области облачного и самостоятельного хостинга MySQL, производительности InnoDB, а также новых функций и инструментов. Вы сможете разработать платформу реляционных данных, которая будет масштабироваться вместе с вашим бизнесом, и узнаете о передовых методах обеспечения безопасности, производительности и стабильности баз данных.
Читать дальше →
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 5

Регулярки (regex) — основы для решения кейсов, про которые не пишут в статьях про основы

Время на прочтение 4 мин
Количество просмотров 25K

"Там просто регулярку написать" - говорили они...

Читать далее
Всего голосов 44: ↑39 и ↓5 +34
Комментарии 47

Настоящий Product Backlog Refinement: 4 этапа правильной работы над фичами

Время на прочтение 6 мин
Количество просмотров 16K

Привет, Хабр! Я Екатерина Колесникова, Agile Coach в inDriver. Когда я пришла в команду, заметила проблемы в процессе Product Backlog Refinement. Я предложила новый сценарий этой церемонии — и он сработал. В этой статье поделюсь опытом проведения PBR без скучной теории о «правильном» планировании. 

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 9

Продуктовые процессы в Авито

Время на прочтение 8 мин
Количество просмотров 22K

Привет, Хабр. Меня зовут Костя Шадрин, я ведущий менеджер продукта в Авито, отвечаю за юнит опыта работодателей. Юнит состоит их нескольких дискавери- и деливери-команд, чуть позже я поясню, чем они занимаются и отличаются.

В этом материале расскажу, как изнутри устроены продуктовые процессы и культура в Авито. Речь пойдёт об обязанностях продактов и используемых ими для повседневных задач фреймворках.

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 2

Как я перестроил почти с нуля отдел техподдержки хостинга за 4 года

Время на прочтение 11 мин
Количество просмотров 11K
Стратегическое решение было таким: поддержка не должна оставлять ощущение, что вы поговорили с безразличными тупыми уродами. Это как минимум. А в идеале должна быть помогающей и доброй, то есть — конкурентным преимуществом. 10 лет назад основатели отвечали на вопросы пользователей. Я этот период не застал.



Мы довольно быстро выросли от маленького хостинга до одного из лидеров рынка (сейчас с нашего хостинга открывается 12,7% сайтов Рунета). В середине этого процесса стало понятно, что надо либо забить на количество пропущенных звонков, либо что-то принципиально менять в организации работы. Были все шансы стать стереотипной поддержкой с типичной отбивкой «попробуйте перезагрузить» в ответ на подробное описание проблемы, то есть бездушными бюрократами, которым важно выполнить скрипт, а не решить проблему.

Но сначала надо было решить другую задачу: в 2017 году мы не отвечали на примерно каждый десятый звонок. То есть человек звонил-звонил, ждал 10-12 гудков, потом клал трубку. И если он не перезванивал, надеялись, что человек справился сам.

Хотелось, чтобы звонки не терялись. И ответы были нормальные человеческие.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Комментарии 23

40 релизов в неделю при разработке государственного Amazon или почему Agile is dead

Время на прочтение 22 мин
Количество просмотров 28K

Что бы вы сказали, если бы вам потребовалось срезать косты вашей команды разработки в два раза? А если бы пришел босс и потребовал делать в два раза больше той же командой? Обычно интуиция нас подводит и мы в ответ на эти вопросы делаем не то, что нужно - в итоге только ухудшаем ситуацию. Самое интересное, что значительно улучшить результаты можно потратив относительно небольшие усилия - что же это за бесплатный сыр такой? Как это связано с релизами? От какого важного элемента Agile мы заодно отказываемся? Ответы на эти вопросы я попробую дать в своей статье.

Читать далее
Всего голосов 131: ↑128 и ↓3 +125
Комментарии 36

История одного личного кабинета, который помог нам сделать 15 000 курьеров и сборщиков немного счастливее

Время на прочтение 6 мин
Количество просмотров 3.6K
Когда мы видим какой-то сервис, мы сразу же спешим оценить, насколько он удобен и полезен. В случае со СберМаркетом клиенту нужны понятный интерфейс, обширный каталог товаров, все подробности по доставке, разные системы оплаты и так далее. Так сервис выполняет свою функцию, а пользователь остается доволен услугой.

Проще всего смотреть на продукт именно так, то есть глазами клиента. Но у продукта всегда есть и обратная сторона: задачи бизнеса, сотрудников, партнеров.

В сентябре 2020-го мы собрали кроссфункциональную команду из разработчиков, аналитиков, дизайнеров, бухгалтеров и операционного отдела и сосредоточились на невидимой для пользователя стороне СберМаркета: личном кабинете для курьеров и сборщиков заказов. Мы сделали его с нуля за 3 месяца.

Рассказываю, какие продуктовые подходы использовали в разработке, чем нам помог личный кабинет и как хорошее приложение может сделать 15 тысяч операционных работников счастливее (даже без повышения вознаграждений).


Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 1

Переход на Swift UI и React Native: как за 3 месяца мы запустили новое приложение, быстро набравшее популярность

Время на прочтение 7 мин
Количество просмотров 7.2K

Всем привет!

На связи Дима Бобылев, CTO СберМаркета. В своей первой статье я рассказывал про взрывной рост нашего сервиса и какие неприятности с нами случились. ​​Знайте, мы не только выжили, но и продолжаем расти дальше и берем новые вызовы. 

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

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

— Разве вы не испытывали удовольствия?

— Иногда. В промежутках между припадками ужаса.

(с) «Сами Боги»‎, Айзек Азимов

Под катом рассказываю, как мы это сделали и что получилось в итоге.  

Читать далее
Всего голосов 11: ↑8 и ↓3 +5
Комментарии 16

Материалы митапа для аналитиков: кейс с A/B-тестами и продвижение Доставки

Время на прочтение 2 мин
Количество просмотров 2.3K

На нашем последнем митапе для аналитиков спикеры рассказали, как избегать ошибок в экспериментах, в чём польза Доставки и как мы продвигали её на Авито, а также как мы сделали рекомендации для менеджеров по продажам в Salesforce. Собрали для вас видеозаписи выступлений с таймкодами. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Комментарии 0

Как мы в Авито обучаем UX-редакторов

Время на прочтение 11 мин
Количество просмотров 7.7K

Привет! Меня зовут Лиза Архангельская, я старший редактор в Авито. Наша команда пишет интерфейсы, рассылки, лендинги и многое другое. 

За полтора года мы наняли троих новичков в профессии и принялись их обучать: один из младших редакторов уже стал мидлом, а стажёр — младшим редактором. Эта статья расскажет, как проходит обучение и чего от него ожидать. Опытным редакторам она поможет понять, нужен ли вам подопечный и как можно организовать процессы.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Комментарии 14

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 1

Время на прочтение 29 мин
Количество просмотров 56K

Всем привет! Я Дмитрий Лунин, работаю аналитиком в команде ценообразования Авито. Наш юнит отвечает за все платные услуги площадки. Наша основная задача — сделать цены на них оптимальными. 

Мы не только пытаемся максимизировать выручку Авито, но и думаем про счастье пользователей. Если установить слишком большие цены, то пользователи возмутятся и начнут уходить с площадки, а если сделать цены слишком маленькими, то мы недополучим часть оптимальной выручки. Низкие цены также увеличивают количество «спамовых» объявлений, которые портят поисковую выдачу пользователям. Поэтому нам очень важно уметь принимать математически обоснованные решения — любая наша ошибка напрямую отразится на выручке и имидже компании. 

Одним из инструментов для решения наших задач является A/B-тестирование.

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Комментарии 15

Как улучшить ваши A/B-тесты: лайфхаки аналитиков Авито. Часть 2

Время на прочтение 27 мин
Количество просмотров 40K

Это вторая часть статьи о том, как улучшить A/B-тесты. Здесь я подробно остановлюсь на методах увеличения мощности: поговорим про CUPED, бутстрап-критерии, стратификацию и парную стратификацию.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 2

Как мы строили работу с техническими инцидентами на уровне компании

Время на прочтение 9 мин
Количество просмотров 6.3K

Пока вы маленький старпап, команда легко справляется со всеми ошибками и сбоями сама. Если вы развиваетесь, и делаете это быстро, неизбежно приходит время, когда разработчиков становится больше, компания — крупнее, а проблемы перестают быть локальными и требуют участия смежных команд для их решения. Так и Skyeng прошел путь от маленького стартапа до известной онлайн-школы. Сейчас на платформе десятки тысяч учеников, 40 распределенных команд разработки и сотни сервисов, взаимодействующих друг с другом. 

Конечно, в какой-то момент инциденты вышли за пределы наших команд, и мы задумались о едином подходе работы с ними. Ответственным за процесс организации оказался я — Дима Кузнецов, один из юнит-лидов в Skyeng. Так в декабре 2019 года мы создали MVP этого проекта, и к TechLead Conf 2020 получили первые результаты, о чем я и рассказал на конференции. Сегодня я опишу, каким был процесс и что мы получили в результате.

Читать далее
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 2

Как принимать платежи в Telegram | API Yoomoney Python

Время на прочтение 4 мин
Количество просмотров 56K

Как принимать платежи используя YooMoney API и Python

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 8

Информация

В рейтинге
Не участвует
Работает в
Дата рождения
Зарегистрирован
Активность