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

26
Чем Python плох для стартапа? Александр Сапронов: [email protected] ru.linkedin.com/in/ alexsapronov

Upload: pynsk

Post on 15-Apr-2017

195 views

Category:

Software


0 download

TRANSCRIPT

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

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

Александр Сапронов:

[email protected]

ru.linkedin.com/in/alexsapronov

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

Хто я такой?

- Пишу код за деньги в Welltory.com

- В основном на Python

- Делаю Python Дайджест

- Организую встречи PyNSK

- Делал конференцию PyCon Siberia 2016

- Люблю делать всякую движуху 2

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

О ч

ем э

то Как живет проект в первый год

Почему в первый год не важен язык?

Почему Python подходит для бизнеса?

Почему менять стэк разработки больно?

Почему вы захотите поменять Python?

P.S. Доклад несерьезный 3

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

Доклад про Welltory

4

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

Что такое Welltory

● Стартап

● Активная разработка началась ~1 год назад

● Собираем данные о жизни пользователя

● Обрабатываем данные - чистим, сжимаем

● Анализируем - строим корреляции

● Строим рекомендации - сообщаем юзеру о проблемах здоровья

● Рисуем красивые дашбоарды с данными юзера

● Делаем автоматическую рекомендательную систему

Welltory - персональный аналитик здоровья

5

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

6

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

Чух-чух

7

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

Почему Tornado вам не надо?

Ситуация #1

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

Программист

Не знаю какие данные будем хранить, Не знаю сколько юзеров ждем.

Не хочу переписывать много раз

А что если….

Не взять MongoDB и Tornado!?Они же быстрые и масштабируются, их

используют в продакшене

9

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

MongoDB для стартапа

- Можно сваливать в БД данные и не думать

- Не надо админа, чтобы начать работать

- Легко масштабировать

- Модно, чо

- Нет хорошей системы constraints. Загадите базу

- Аналитик знает SQL, но не знает монгу

- Без JSON Schema вы запутаетесь в коллекциях

+ -

10

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

Tornado для стартапа

- Работает быстро

- Гибкий

- Живой проект

- Асинхронщина

- Не популярен как Django

- Нет CRUDL админки

- Хочешь <что-то>? Пиши сам

+ -

11

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

В итоге

- Но ни разу не масштабировали ее

- Писали валидацию данных руками

- Стали использовать JSON Schema, потому что структура нужна же

- Использовали дополнительно PostgreSQL и конвертировали данные туда, потому что SAAS’ы требовали SQL баз

Выбрали MongoDB

- Но ни разу даже 10rps не было

- Пришлось писать Oauth2 с нуля

- Пришлось писать механизм сессий самим

- Написали асинхронные клиенты для популярных API

- Потратили тьму времени, но не писали бизнес логику

Выбрали Tornado

12

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

В итоге

Удалось переписать за 3 недели * 2 программистаСкорость разработки увеличилась в 4 раза

На самом деле:

13

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

А вы верите в TypeError?

Ситуация #2

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

Типизация в Python

- Гибкость в разработке

- Скорость разработки

- Читаемые ошибки

- Легкая в освоении

- Вы ловите ошибки в продакшене

- Вы точно(!) сложите None и set

- Медленней чем C

- Без культуры разработки - вы сразу пишите legacy код

+ -Динамическая сильная неявная

15

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

Не любите тесты?А, значит любите ValueError?

Ситуация #3

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

Программист

У меня нет времени на тесты

Зачем тесты? Есть же тестировщики

Я не делаю ошибок

*лять, на дворе воскресенье, а я правлю 100500-ую ошибку из Sentry

17

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

Тесты для стартапа

- Дешевое регресс тестирование

- Меньше дурацких багов

- МОЖНО БОЛЬШЕ ФИЧ

- Где найти время?

- Где найти денег?

- НУЖНО БОЛЬШЕ ФИЧ

+ -

18

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

В итоге

- Тесты - часть разработки

- Тесты “проданы” бизнесу (бизнес одобряет)

- Пацан накодил - пацан протестил (видео)

- Баг - пишешь сначала тест

- Цепочка dev -> qa > dev -> qa -> dev… сократилась в 3 раза

Results (95.02s): 1091 passed

19

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

А что он тормозит?Давай перепишем на * ?

Ситуация #4

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

Команда маркетинга

Мы хотим нагнать дофигилиард юзеров, мы не упадем?

Мы опять упали, программисты - *?№!

Почему так медленно данные считаются?!

Сделайте что-нибудь, емае!Мы не можем продавать.

21

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

Программист №1 Программист №2

Добавим кэш! И серверов еще!

А давай... А давай...

Перепишем на * ?

22

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

В итоге

- Не переписали проект на другой язык

- Но мы:

- Добавили еще тестов

- Начали делать нагрузочные тесты

- Пересмотрели архитектуру системы

- Привлекли крутого админа для настройки мониторингов

- Начали экспериментировать с языками на JVM

- Начали пилить монолит

23

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

Чему же мы научились сегодня?

24

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

Python - язык, который позволяет разрабатывать быстро и качественно.Но сначала надо выстроить процессы.

25

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

[email protected]

@sapronovalex92

ru.linkedin.com/in/alexsapronov

Питоны кончились…Вопросы?

26