KEMBAR78
Чем Python плох для стартапа? | PPTX
Чем Python плох для стартапа?
Александр Сапронов:
a@sapronov.me
ru.linkedin.com/in/alexsapronov
Хто я такой?
- Пишу код за деньги в Welltory.com
- В основном на Python
- Делаю Python Дайджест
- Организую встречи PyNSK
- Делал конференцию
PyCon Siberia 2016
- Люблю делать всякую движуху 2
Очемэто Как живет проект в первый год
Почему в первый год не важен язык?
Почему Python подходит для бизнеса?
Почему менять стэк разработки больно?
Почему вы захотите поменять Python?
P.S. Доклад несерьезный 3
Доклад про Welltory
4
Что такое Welltory
● Стартап
● Активная разработка началась ~1 год назад
● Собираем данные о жизни пользователя
● Обрабатываем данные - чистим, сжимаем
● Анализируем - строим корреляции
● Строим рекомендации - сообщаем юзеру о проблемах здоровья
Welltory - персональный аналитик здоровья
5
6
Чух-чух
7
Почему Tornado
вам не надо?
Ситуация #1
Программист
Не знаю какие данные будем хранить,
Не знаю сколько юзеров ждем.
Не хочу переписывать много раз
А что если….
Не взять MongoDB и Tornado!?
Они же быстрые и масштабируются, их
используют в продакшене
9
MongoDB для стартапа
- Можно сваливать в БД
данные и не думать
- Не надо админа, чтобы
начать работать
- Легко масштабировать
- Модно, чо
- Нет хорошей системы
constraints. Загадите базу
- Аналитик знает SQL, но не
знает монгу
- Без JSON Schema вы
запутаетесь в коллекциях
+ -
10
Tornado для стартапа
- Работает быстро
- Гибкий
- Живой проект
- Асинхронщина
- Не популярен как Django
- Нет CRUDL админки
- Хочешь <что-то>? Пиши
сам
+ -
11
В итоге
- Но ни разу не масштабировали ее
- Писали валидацию данных руками
- Стали использовать JSON Schema,
потому что структура нужна же
- Использовали дополнительно
PostgreSQL и конвертировали
данные туда, потому что SAAS’ы
Выбрали MongoDB
- Но ни разу даже 10rps не было
- Пришлось писать Oauth2 с нуля
- Пришлось писать механизм сессий
самим
- Написали асинхронные клиенты для
популярных API
Выбрали Tornado
12
В итоге
Удалось переписать за 3 недели * 2 программиста
Скорость разработки увеличилась в 4 раза
На самом деле:
13
А вы верите в TypeError?
Ситуация #2
Типизация в Python
- Гибкость в разработке
- Скорость разработки
- Читаемые ошибки
- Легкая в освоении
- Вы ловите ошибки в продакшене
- Вы точно(!) сложите None и set
- Медленней чем C
- Без культуры разработки - вы
+ -
Динамическая сильная неявная
15
Не любите тесты?
А, значит любите ValueError?
Ситуация #3
Программист
У меня нет времени на тесты
Зачем тесты? Есть же тестировщики
Я не делаю ошибок
*лять, на дворе воскресенье, а я
правлю 100500-ую ошибку из Sentry
17
Тесты для стартапа
- Дешевое регресс
тестирование
- Меньше дурацких багов
- МОЖНО БОЛЬШЕ ФИЧ
- Где найти время?
- Где найти денег?
- НУЖНО БОЛЬШЕ ФИЧ
+ -
18
В итоге
- Тесты - часть разработки
- Тесты “проданы” бизнесу (бизнес одобряет)
- Пацан накодил - пацан протестил (видео)
- Баг - пишешь сначала тест
- Цепочка dev -> qa > dev -> qa -> dev…
сократилась в 3 раза
Results (95.02s):
1091 passed
19
А что он тормозит?
Давай перепишем на * ?
Ситуация #4
Команда маркетинга
Мы хотим нагнать дофигилиард юзеров,
мы не упадем?
Мы опять упали, программисты - *?№!
Почему так медленно
данные считаются?!
Сделайте что-нибудь, емае!
Мы не можем продавать.
21
Программист №1 Программист №2
Добавим кэш! И серверов
еще!
А давай... А давай...
Перепишем на * ?
22
В итоге
- Не переписали проект на другой язык
- Но мы:
- Добавили еще тестов
- Начали делать нагрузочные тесты
- Пересмотрели архитектуру системы
- Привлекли крутого админа для настройки
мониторингов
- Начали экспериментировать с языками на JVM
23
Чему же мы научились сегодня?
24
Python - язык, который позволяет
разрабатывать быстро и качественно.
Но сначала надо выстроить процессы.
25
a@sapronov.me
@sapronovalex92
ru.linkedin.com/in/alexsapronov
Питоны кончились…
Вопросы?
26

Чем Python плох для стартапа?

  • 1.
    Чем Python плохдля стартапа? Александр Сапронов: a@sapronov.me ru.linkedin.com/in/alexsapronov
  • 2.
    Хто я такой? -Пишу код за деньги в Welltory.com - В основном на Python - Делаю Python Дайджест - Организую встречи PyNSK - Делал конференцию PyCon Siberia 2016 - Люблю делать всякую движуху 2
  • 3.
    Очемэто Как живетпроект в первый год Почему в первый год не важен язык? Почему Python подходит для бизнеса? Почему менять стэк разработки больно? Почему вы захотите поменять Python? P.S. Доклад несерьезный 3
  • 4.
  • 5.
    Что такое Welltory ●Стартап ● Активная разработка началась ~1 год назад ● Собираем данные о жизни пользователя ● Обрабатываем данные - чистим, сжимаем ● Анализируем - строим корреляции ● Строим рекомендации - сообщаем юзеру о проблемах здоровья Welltory - персональный аналитик здоровья 5
  • 6.
  • 7.
  • 8.
    Почему Tornado вам ненадо? Ситуация #1
  • 9.
    Программист Не знаю какиеданные будем хранить, Не знаю сколько юзеров ждем. Не хочу переписывать много раз А что если…. Не взять MongoDB и Tornado!? Они же быстрые и масштабируются, их используют в продакшене 9
  • 10.
    MongoDB для стартапа -Можно сваливать в БД данные и не думать - Не надо админа, чтобы начать работать - Легко масштабировать - Модно, чо - Нет хорошей системы constraints. Загадите базу - Аналитик знает SQL, но не знает монгу - Без JSON Schema вы запутаетесь в коллекциях + - 10
  • 11.
    Tornado для стартапа -Работает быстро - Гибкий - Живой проект - Асинхронщина - Не популярен как Django - Нет CRUDL админки - Хочешь <что-то>? Пиши сам + - 11
  • 12.
    В итоге - Нони разу не масштабировали ее - Писали валидацию данных руками - Стали использовать JSON Schema, потому что структура нужна же - Использовали дополнительно PostgreSQL и конвертировали данные туда, потому что SAAS’ы Выбрали MongoDB - Но ни разу даже 10rps не было - Пришлось писать Oauth2 с нуля - Пришлось писать механизм сессий самим - Написали асинхронные клиенты для популярных API Выбрали Tornado 12
  • 13.
    В итоге Удалось переписатьза 3 недели * 2 программиста Скорость разработки увеличилась в 4 раза На самом деле: 13
  • 14.
    А вы веритев TypeError? Ситуация #2
  • 15.
    Типизация в Python -Гибкость в разработке - Скорость разработки - Читаемые ошибки - Легкая в освоении - Вы ловите ошибки в продакшене - Вы точно(!) сложите None и set - Медленней чем C - Без культуры разработки - вы + - Динамическая сильная неявная 15
  • 16.
    Не любите тесты? А,значит любите ValueError? Ситуация #3
  • 17.
    Программист У меня нетвремени на тесты Зачем тесты? Есть же тестировщики Я не делаю ошибок *лять, на дворе воскресенье, а я правлю 100500-ую ошибку из Sentry 17
  • 18.
    Тесты для стартапа -Дешевое регресс тестирование - Меньше дурацких багов - МОЖНО БОЛЬШЕ ФИЧ - Где найти время? - Где найти денег? - НУЖНО БОЛЬШЕ ФИЧ + - 18
  • 19.
    В итоге - Тесты- часть разработки - Тесты “проданы” бизнесу (бизнес одобряет) - Пацан накодил - пацан протестил (видео) - Баг - пишешь сначала тест - Цепочка dev -> qa > dev -> qa -> dev… сократилась в 3 раза Results (95.02s): 1091 passed 19
  • 20.
    А что онтормозит? Давай перепишем на * ? Ситуация #4
  • 21.
    Команда маркетинга Мы хотимнагнать дофигилиард юзеров, мы не упадем? Мы опять упали, программисты - *?№! Почему так медленно данные считаются?! Сделайте что-нибудь, емае! Мы не можем продавать. 21
  • 22.
    Программист №1 Программист№2 Добавим кэш! И серверов еще! А давай... А давай... Перепишем на * ? 22
  • 23.
    В итоге - Непереписали проект на другой язык - Но мы: - Добавили еще тестов - Начали делать нагрузочные тесты - Пересмотрели архитектуру системы - Привлекли крутого админа для настройки мониторингов - Начали экспериментировать с языками на JVM 23
  • 24.
    Чему же мынаучились сегодня? 24
  • 25.
    Python - язык,который позволяет разрабатывать быстро и качественно. Но сначала надо выстроить процессы. 25
  • 26.