Вопросы для Python-собеседования

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

more ...

Дублирующийся код и clonedigger

Так сложилось, что в проекте, над которым я сейчас работаю, существует репозиторий-помойка. Он содержит в себе вспомогательные скрипты на Python, которые писались в разное время разными людьми, которых объединяло одно - наплевательское отношению к происходящему. Практически все скрипты делают одно и то же: импортируют откуда-то данные, каким-то образом их преобразуют и ...

more ...

Как не нужно писать на Python, часть 2

Продолжение статьи об идеоматичных конструкциях в Python.

На самом деле, многое из описанного ниже есть в любом более-менее толковом учебнике, но только разбавленное n-ным количеством воды. Я же постараюсь дать только самое основное: примеры и, самое главное, краткое заключение. Мне эта идея кажется удачной, т.к примеры должны лучше объяснить ...

more ...

pyrasite - подключение к работающему Python-приложению

Меня давно привлекали возможности Erlang'а и языков Lisp-семейства по интроспекции и горячему обновлению кода работающего приложения. И я уже давно искал инструмент, который бы позволял делать что-то подобное и для Python - и такой инструмент я наконец нашел в виде крутой обертки над gdb - Pyrasite.

Зачем он нужен? Я вижу ...

more ...

Несколько слов о virtualenvwrapper

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

more ...

Настройка логирования в сторонних модулях

В некоторых внешних библиотеках для Python уже встроено логирование через logging из коробки, но не всегда эти записи нужны в общих логах (или вообще нужны). В частности, встроенное логирование есть и в модной библиотеке asyncio, которая недавно стала стандартной (с некоторыми ограничениями). Поскольку явное лучше неявного, это самое неявное логирование ...

more ...

Использование Pylint для Python2 и Python3 одновременно

Сегодня речь пойдет об известном противостоянии Python 2.x и Python 3.x, но с доселе неизведанной стороны. Недавно я начал новый домашний проектик на Python 3.4, в то время как рабочие проекты и pet project'ы я пишу на старой доброй второй ветке. Беда подкралась откуда не ждали ...

more ...

Как не нужно писать на Python, часть 1

Хотя одним из постулатов Python way является фраза "There should be one - and preferably only one - obvious way to do it" - в действительности это не совсем так. В языке достаточно много способов сделать что-то очевидным для новичка способом, но выглядящим ужасно для опытного питониста (и наоборот). Самое ужасное, что, несмотря ...

more ...

Реализация игры Жизнь на Python

Меня уже давно интересовала конвеевская игра "Жизнь", и вот наконец-то у меня дошли руки попробовать реализовать ее наиболее простым и элегантным способом. Если кто-не знает, что это за игра - на русской Википедии есть хорошее описание. Для тех, кто знает, но забыл, я постараюсь напомнить классические правила:

  • Время дискретно.
  • Игровое поле ...
more ...

Несколько слов о Python

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

more ...