2. Сергей Бурма
Python-разработчик
Полтора года с Python на фрилансе.
Год до этого - как любитель.
Люблю:
● Django;
● Tornado;
● Redis;
● Черную магию (Gevent, ФП);
● Инди-игры;
● Хорошо приготовленный кофе:)
6. The Zen of Python
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one - and preferably only one - obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea - let's do more of those!
10. ●
●
●
●
PEP8;
функция должна вмещаться в экран;
одна операция на строку;
правильные задачи.
Неправильно:
reduce(lambda x, y: x * y, xrange(1, x+1))
Правильно:
def multiply(x, y):
return x * y
def factorial(x):
numbers = xrange(1, x + 1)
result = reduce(multiply, numbers)
return result
11. Возможности
● На самом деле, как писать код говорит вам только
совесть - язык мультипарадигменный.
● ООП реализовано ненавязчиво, хоть все и говорят,
что так не тру.
● Очень приятная реализация механизма исключений.
● Продуманная система типов и структур данных. Того
что есть хватит надолго, работает все к тому же
быстро.
● Продвинутые неизменяемые типы, такие как string,
tuple, frozen set, которые можно использовать,
например, как хеши в словаре.
● Продвинутая работа с функциями, но от этого
страдает простота кода, так что не рекомендуется.
13. ● Огромное количество библиотек еще не
портировано.
● Большинство относится скептически.
Но:
● Версия 2.7.5 уже больше года не развивается.
● В 3.3 есть много новых интересных решений.
● Есть библиотеки для автоматического
портирования. Работают не везде.
15. ●
●
●
●
●
●
●
●
●
●
PEP8;
Global Interpreter Lock;
динамическая типизация;
куча интересных идей с асинхронностью;
очень крутая реализация REPL;
быстрая реализация и исполнение КОРРЕКТНЫХ
задач;
батарейки, очень много батареек, сразу;
огромное сообщество с пожизненным диктатором во
главе;
очень подробная документация, касающаяся всего;
PyPi.
17. ●
●
●
●
●
●
●
●
●
●
PEP8;
Global Interpreter Lock;
динамическая типизация;
куча интересных идей с асинхронностью;
очень крутая реализация REPL;
быстрая реализация и исполнение КОРРЕКТНЫХ
задач;
батарейки, очень много батареек, сразу;
огромное сообщество с пожизненным диктатором во
главе;
очень подробная документация, касающаяся всего;
PyPi.
19. ● Web-сайты, серверные приложения;
● парсеры;
● нетребовательные к вычислениям десктопные
приложения;
● системные скрипты;
● мобильные приложения;
● игры, в особенности рогалики;
● разного рода прототипы, от идей до программ.
26. На что стоит посмотреть?
(субъективное мнение докладчика, которое может не совпадать с
реальностью)
27. ● крутая IDE в стиле IntelliJ IDEA;
● продвинутая поддержка очень многих важных и
интересных решений;
● интеграция всего, о чем вы даже не мечтали;
● Community Edition.
Но:
● неисправляемые от версии к версии баги, к счастью,
таких немного;
● требовательность к ресурсам, настроение
разработчика будет зависеть от их количества.
28. ● The Web framework for perfectionists (with deadlines)
● Models Views Templates
● Просто делай, как тебе говорят, и у тебя будет
отличный код.
● Множество батареек, встроенных тоже хватит
надолго.
Но:
● Кое-какие моменты могут стать сюрпризом.
● Очень прагматичное сообщество, да и сам django.
● Тормознутость на сложных проектах, тут лучше
взять что-то другое или разбить на несколько.
29. kivy
● Чудо. Вообще не представляю, как такое кому-то
пришло в голову.
● Родные приложения под Windows, Linux, Mac OS X,
Android, iOS. Но со встроенным Python’ом.
● Пиши-раз-компилируй-под-что-угодно. Почти
правда.
● Куча готовых компонентов.
Но:
● Новые компоненты нужно писать с учетом всех
поддерживаемых систем.
● Сторонних библиотек мало.
30. gevent
● Просто черная магия.
Но:
● Есть шанс, что использовав раз, после смерти
можно попасть в ад.
31. ● Микрофреймворк, но с асинхронностью.
● А еще веб-сервер и просто хорошая библиотека.
● Можно прикрутить к django, чтобы тот мог думать не
только в пределах одного запроса.
● Очень элегантная замена колбэкам, которую, кстати,
хотят внести в стандартную библиотеку. В стиле:
result = yield db.read()
вместо:
db.read(onComplete)
Но:
● Мало асинхронных драйверов к базам данных. Есть
шанс упустить все плюсы.
32. Взгляните еще на эти проекты:
●
●
●
●
●
●
●
●
●
●
●
NumPy
lxml
requests
flask
bottle.py
Syte
django-tastypie
dajax
pygame
libtcod
cython