SlideShare a Scribd company logo
Обо мне
• Первую строчку JS написал в 1998 году

• Nodejs только вышел - делал R&D применимости. Верил в JS, когда еще никто не верил 

• Свой аналог GraphQL сделал в 2009 

• Верил в то, что фронт займет большую долю, чем слайдеры на JQuery

• Поэтому сделал фреймворк, где запросы к бизнес логике можно было делать из JS, из
микросервисов
Изучая и применяя
GraphQL,
чего вы хотите?
GraphQL. А в чем суть?
• Values? Декларируемые

• Экономия на байтах? 

• понимание

• cost function

• N+1? Удобно? Кому?

• Выгодополучатели / Бенефициары?
«каждый кто скажет про не получать поля,
которые не запрашивал и он не работает в
Facebook, просто случайно попал в айти»
Выгоды простыми словами
Фронт +1 Бек -2 (не мои проблемы)
Реальный результат для average бизнеса -1
если у него нет бабла, чтобы это покрыть, я пойду работать к тем, у кого есть
почему кроме мира 

js/mongodb не все
побежали делать graphql?
Важны ли вообще аргументы
бекендеров?
(GraphQL is a NIGHTMARE или просто ад)
+1 -2 = -1
А кто считал цену и ценность
этой технологии? Вот реально
взял калькулятор и посчитал?
да, да, неудобные вопросы
Бек и фронт
• а что его определяет? А что если все приложение в
SPA? Где бек? 

• nodejs на беке 

• ts, elm на фронте
Две культуры
разработки
не важно где бизнес логика - в беке или на фронте
Всегда ли бек и
фронт равны? 
Оба ли могут быть важнее другого в части проектов? 

Приложений, где море бизнес логики на беке и сотня
экранов на фронте в SPA - единицы.
Профессиональные отношения
• С кого бизнес спрашивает за ошибки в логике? 

• Хочется делать мутации с фронта? А если это деньги,
документы, юридическая информация? Есть
готовность за это финансово отвечать? (Ой)

• Есть зрелые практики работы - покрытие тестами
всего кода? TS вместо JS хотя бы?
Зрелые практики
возможны и с JS
Но это скучно, не молодежно, не хайпово
Кросс функциональная
команда
Разделение вместо сотрудничества
Личные отношения
• Разные ценности личные 

• Разная ментальность 

• Разные критерии успеха с позиции бизнеса 

• Кейс с аплодисментами

• УВАЖАЙТЕ ДРУГ ДРУГА
АРХИТЕКТУРА И
БАБЛО
Prisma raises $4.5M to
build the GraphQL data
layer for all databases
The upcoming Prisma 2.0 seems to combine Prisma Client and Prisma Server
and add an Admin UI feature. Making it a direct Hasura equivalent/competitor.
Hasura. The company
got $1.6 million in seed
funding in April. 
“Our focus from the beginning has been making the
application development super fast.”
that’s the way that
business works
сила темной стороны огромна
А ты с какой
стороны денег?
А мы покупаем или продаем? 

Измеримое влияние на TCO? 

Какие бизнес преимущества?

«у меня все хорошо, мой дом в сайдбаре»
MVP круд приложенек
для инвестора? 
• А что если то же самое можно получить проще? Что
если даже клиент об этом знает, а разработчики нет?

• Внезапно - Oracle APEX, XYZ?

• Low code! Цель не кодить, цель быстро получить
решение, ведь graphql про скорость разработки?
1ая, 2ая и 3я космические
скорости
• Скорость выхода MV(!!!)P проекта на рынок

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

• Скорость карьерного роста разработчика
Любая технология важна не сама по
себе. Сколько не ускоряй часть работы,
никого не интересует только часть.
+1 - 2 = -1
Бизнес устает от
разделения и no value
added code
Крупный бизнес делит (ради эффективности и там не забалуешь),
средний хочет фулстек (Lean, Kanban, Scrum - каждый по своему)
Карьерный рост
быстро
В компании никто не отрубает твоих недостатков.
Много требуют? Идешь туда, где требуют меньше,
а платят больше. 

Не мешают расти карьерно. 

Непрофессионалы сами.

Сами себе враги, а ты им в этом союзник
Профессиональный
рост быстро
все четко понимают твой уровень, на карьерный
рост еще пахать и пахать. Но помогают расти,
потому что более профессиональны.

От требования о повышении раньше, чем через 2
года в первый раз смеются, во второй увольняют
Анализ ценности GraphQL
с поэзии архитектуры
• functional correctness ? 

• performance, scalability (на фронт можно вынести
нагрузку, но слабый grahql бекенд бьет) - + 

• compatibility +

• usability ?
• reliability: - maturity - availability - fault
tolerance - recoverability - 

• security - 

• maintainability +
Темное прошлое
• МОСТЫ между беком и фронтом: 

• HTTP 

• AJAX 

• WebSocket 

• X Window - реверсная архитектура, когда gui - это
сервер, а бизнес логика в клиентах. 

• MVVM Binder. Declarative (1 Vendor, растаскали, нет
полной поддержки, MVC не пошатнулся) 
Rich фронт
Flash, Silverlight, jQuery слайдеры bells & whistles,
GMail (+ desktop notify), SPA (React etc)
Временно vs в нише
vs истинно
(широкая поддержка, переживет 10 лет)
• SOAP 

• XML 

• REST 

• OPENAPI 

• ODATA 

• OTHER (gRPC, Protobuf, who cares?) 

• Все это имело активный маркетинг и было идеальным (как GraphQL) решением для всех
проблем 

• Кто-то думает что GraphQL просуществует вечно или в такой же позиции сияния в рассветных
лучах? 

• Кто будет это legacy переписывать и как скоро? 

По каким часам живем? Если по часам JS мира, то скоро.
Светлое будущее
• Светлое будущее у RICH фронтенда, а не у JS. 

• AR интерфейсы, «как в кино» Так фронтенд это про JS
или про ФРОНТ - ЕНД и язык тут не при чем? 

• Unreal Engine, C++ / BluePrint (hardcode / no code)
Сумерки
Риски. webasm. Chrome = IE, Smth new 

(React VR - подстраховка)
Закат
Сначала важно быстро во что-то входить. Но отрасль становится
более зрелой и становится важна сумма опыта. А если все вчерашнее
отбрасывается, а не суммируется, то цена опыта - 0. 

Ваше место займут другие люди
Пока GraphQL только
выбирает данные, рассвет
безоблачный. Но мутации...
Software Architecture
GraphQL - хорошо,
больше нет кусков
логики во фронте
А правда больше нет? Ни одной?



«I want to believe»
"You could implement a Workflow
on the client side -- have the UI
orchestrate all the necessary
basic commands"
А в чем проблема
иметь логику на
фронте?
Есть взрослые дома?
• А на нее (бизнес логику) есть тесты? 

• Которые можно без браузера запустить? 

• Она в идеальном порядке? 

• Она не засунута в какой-то react компонент? 

• (который MVC сам по себе, а в модели с Rx, Redux он
часть замороченной системы) 

• Как вообще инициировать эту логику? Есть ли команда
или она по клику запускается?
Допустим…
• Есть страница и она показывает что решил сервер.
Может ли страница сама начать решать, что ей делать
и отправлять команды обратно на сервер? 

• CRUD - это команды или нет? CQRS - command !=
p.title = x, p.save

• Ну, бывает… Dashboard - как и GraphQL - крути в
любой комбинации заданные элементы.
GraphQL - еще один rest,
openapi, больше свободы в
разработке, но ничего нового в
результате
Sorry, friends :(
Другой способ -
синхронизация данных
Например, CouchDB
Кто принимал решение
осознанно и взвесив
все альтернативы?
У кого хватало опыта для такого решения?

А кому мы верим?

КОМУ ВЫГОДНО?
недоCQRS
Anemic, через данные, а не через смыслы
Жизненный цикл
До релиза не трогаем бекенда

А после релиза?
Persisted query
а мы кажется начинали с другого? Перепутали
ЦА или интрумент?
Сложность задачи и
ценность инструмента
Кривые не сходятся

В начале не выгодно в разработке, потом
GraphQL - это взятие на себя
ответсвенности за бизнес
процессы, те и за бекенд
Лень и откладывание
проектирования на
потом
А мы покупаем или продаем?
Почему мы здесь
оказались?
Слишком много людей делает код, который не
доживает до продакшена
МЫ ПОКУПАЕМ
ИЛИ ПРОДАЕМ?
Есть два пути
Спасибо
Давайте уважать тех, кто покупает и кто за это все платит

More Related Content

What's hot

пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрамMagneta AI
 
Experience report: внедрение Scrum на чужбине
Experience report: внедрение Scrum на чужбинеExperience report: внедрение Scrum на чужбине
Experience report: внедрение Scrum на чужбинеReturn on Intelligence
 
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной моделиДенис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
ScrumTrek
 
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессеКак учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
MIkhail Neverov
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
Alexey Deryushkin
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработкеMagneta AI
 
Экспресс-метод определения биологического возраста человека
Экспресс-метод определения биологического возраста человекаЭкспресс-метод определения биологического возраста человека
Экспресс-метод определения биологического возраста человека
Danila Medvedev
 
Как тестировщику выжить в стартапе
Как тестировщику выжить в стартапе Как тестировщику выжить в стартапе
Как тестировщику выжить в стартапе
SQALab
 
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
ScrumTrek
 
Тестировщик в стартапе. Зачем и как
Тестировщик в стартапе. Зачем и какТестировщик в стартапе. Зачем и как
Тестировщик в стартапе. Зачем и как
SQALab
 
Дизайн в хаосе
Дизайн в хаосеДизайн в хаосе
Дизайн в хаосе
Artur Kasimov
 
Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
Pavel Veinik
 
Business games for Agile Requirements
Business games for Agile RequirementsBusiness games for Agile Requirements
Business games for Agile Requirements
Nikita Filippov
 
Scrum Wars
Scrum WarsScrum Wars
BHSD MAIL.RU UI/UX 2016 Restrictions
BHSD MAIL.RU UI/UX 2016 RestrictionsBHSD MAIL.RU UI/UX 2016 Restrictions
BHSD MAIL.RU UI/UX 2016 Restrictions
Tema Gladkov
 
Преемственность продуктов
Преемственность продуктовПреемственность продуктов
Преемственность продуктов
2ГИС Технологии
 
«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»
DataArt
 
Платформа SmartActors
Платформа SmartActorsПлатформа SmartActors
Платформа SmartActors
etyumentcev
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвыMagneta AI
 

What's hot (20)

пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
 
Experience report: внедрение Scrum на чужбине
Experience report: внедрение Scrum на чужбинеExperience report: внедрение Scrum на чужбине
Experience report: внедрение Scrum на чужбине
 
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной моделиДенис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
Денис Тучин, Проверка гипотез Kanban Method с помощью имитационной модели
 
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессеКак учиться в вузе, заниматься предпринимательством и не умереть в процессе
Как учиться в вузе, заниматься предпринимательством и не умереть в процессе
 
Agile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в РайффайзенбанкеAgile Vector - внедрение agile разработки в Райффайзенбанке
Agile Vector - внедрение agile разработки в Райффайзенбанке
 
Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
Экспресс-метод определения биологического возраста человека
Экспресс-метод определения биологического возраста человекаЭкспресс-метод определения биологического возраста человека
Экспресс-метод определения биологического возраста человека
 
Как тестировщику выжить в стартапе
Как тестировщику выжить в стартапе Как тестировщику выжить в стартапе
Как тестировщику выжить в стартапе
 
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
Дмитрий Павлов. Бытовые трудности и анти-паттерны Agile-команд.
 
Тестировщик в стартапе. Зачем и как
Тестировщик в стартапе. Зачем и какТестировщик в стартапе. Зачем и как
Тестировщик в стартапе. Зачем и как
 
Дизайн в хаосе
Дизайн в хаосеДизайн в хаосе
Дизайн в хаосе
 
Software craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellenceSoftware craftsmanship meetup 22. engineering excellence
Software craftsmanship meetup 22. engineering excellence
 
Business games for Agile Requirements
Business games for Agile RequirementsBusiness games for Agile Requirements
Business games for Agile Requirements
 
Scrum Wars
Scrum WarsScrum Wars
Scrum Wars
 
BHSD MAIL.RU UI/UX 2016 Restrictions
BHSD MAIL.RU UI/UX 2016 RestrictionsBHSD MAIL.RU UI/UX 2016 Restrictions
BHSD MAIL.RU UI/UX 2016 Restrictions
 
Преемственность продуктов
Преемственность продуктовПреемственность продуктов
Преемственность продуктов
 
«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»«Особенности Agile-разработки интернет-проектов»
«Особенности Agile-разработки интернет-проектов»
 
Платформа SmartActors
Платформа SmartActorsПлатформа SmartActors
Платформа SmartActors
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвы
 

Similar to От заката до рассвета | Максим Безуглый | Zlit Tech

Пишем вакансии для Job сайтов
Пишем вакансии для Job сайтовПишем вакансии для Job сайтов
Пишем вакансии для Job сайтов
Olga Kotova
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.
Anna Tarasenko
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
Olexandra Dmytrenko
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинOntico
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
Омские ИТ-субботники
 
Гибкий подход (Agile,scrum)
Гибкий подход (Agile,scrum)Гибкий подход (Agile,scrum)
Гибкий подход (Agile,scrum)
Irina Chernikova
 
Разработка корпоративных (бизнес) приложений (лекция 1)
Разработка корпоративных (бизнес) приложений (лекция 1)Разработка корпоративных (бизнес) приложений (лекция 1)
Разработка корпоративных (бизнес) приложений (лекция 1)
Alexander Gornik
 
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
OdessaFrontend
 
Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#
geekfamilyrussia
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковAlex Tumanoff
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
Pavel Veinik
 
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
Dev2Dev
 
School IT recruiting
School IT recruiting School IT recruiting
School IT recruiting
Olga Kotova
 
Apalon
ApalonApalon
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Alexey Zinoviev
 
Agile Project Grows
Agile Project GrowsAgile Project Grows
Agile Project Grows
Return on Intelligence
 
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2DiggersIT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
DataArt
 
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
Heads&Hands
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
SPB SQA Group
 

Similar to От заката до рассвета | Максим Безуглый | Zlit Tech (20)

Пишем вакансии для Job сайтов
Пишем вакансии для Job сайтовПишем вакансии для Job сайтов
Пишем вакансии для Job сайтов
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.Geek week 2015. Создание полезных приложений в оговоренный срок.
Geek week 2015. Создание полезных приложений в оговоренный срок.
 
Собеседование на позицию Java Developer
Собеседование на позицию Java DeveloperСобеседование на позицию Java Developer
Собеседование на позицию Java Developer
 
История проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей ШетухинИстория проекта, который никогда не падает / Андрей Шетухин
История проекта, который никогда не падает / Андрей Шетухин
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Гибкий подход (Agile,scrum)
Гибкий подход (Agile,scrum)Гибкий подход (Agile,scrum)
Гибкий подход (Agile,scrum)
 
Разработка корпоративных (бизнес) приложений (лекция 1)
Разработка корпоративных (бизнес) приложений (лекция 1)Разработка корпоративных (бизнес) приложений (лекция 1)
Разработка корпоративных (бизнес) приложений (лекция 1)
 
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
ThemeForest: Как пробиться и стоит ли игра свеч? | Odessa Frontend Meetup #9
 
Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#Как попасть на следующий уровень карьеры и зарплаты в C#
Как попасть на следующий уровень карьеры и зарплаты в C#
 
Какой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис ЦыплаковКакой фреймворк нам нужен для Web? Денис Цыплаков
Какой фреймворк нам нужен для Web? Денис Цыплаков
 
Career day 2019
Career day 2019Career day 2019
Career day 2019
 
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
Принцип YAGNI в управлении проектами - Анна Тарасенко Dev2Dev v2.0 30.05.2015
 
School IT recruiting
School IT recruiting School IT recruiting
School IT recruiting
 
Apalon
ApalonApalon
Apalon
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Agile Project Grows
Agile Project GrowsAgile Project Grows
Agile Project Grows
 
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2DiggersIT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
IT talk Spb #34 «Performance Based Hiring» Саша Зверев, сооснователь 2Diggers
 
5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда 5 правил успешной разработки приложений для бренда
5 правил успешной разработки приложений для бренда
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
 

От заката до рассвета | Максим Безуглый | Zlit Tech

  • 1.
  • 2. Обо мне • Первую строчку JS написал в 1998 году • Nodejs только вышел - делал R&D применимости. Верил в JS, когда еще никто не верил • Свой аналог GraphQL сделал в 2009 • Верил в то, что фронт займет большую долю, чем слайдеры на JQuery • Поэтому сделал фреймворк, где запросы к бизнес логике можно было делать из JS, из микросервисов
  • 4. GraphQL. А в чем суть? • Values? Декларируемые • Экономия на байтах? • понимание • cost function • N+1? Удобно? Кому? • Выгодополучатели / Бенефициары?
  • 5. «каждый кто скажет про не получать поля, которые не запрашивал и он не работает в Facebook, просто случайно попал в айти»
  • 6. Выгоды простыми словами Фронт +1 Бек -2 (не мои проблемы) Реальный результат для average бизнеса -1 если у него нет бабла, чтобы это покрыть, я пойду работать к тем, у кого есть
  • 7. почему кроме мира 
 js/mongodb не все побежали делать graphql?
  • 8. Важны ли вообще аргументы бекендеров? (GraphQL is a NIGHTMARE или просто ад) +1 -2 = -1
  • 9. А кто считал цену и ценность этой технологии? Вот реально взял калькулятор и посчитал? да, да, неудобные вопросы
  • 10. Бек и фронт • а что его определяет? А что если все приложение в SPA? Где бек? • nodejs на беке • ts, elm на фронте
  • 11. Две культуры разработки не важно где бизнес логика - в беке или на фронте
  • 12. Всегда ли бек и фронт равны?  Оба ли могут быть важнее другого в части проектов? Приложений, где море бизнес логики на беке и сотня экранов на фронте в SPA - единицы.
  • 13. Профессиональные отношения • С кого бизнес спрашивает за ошибки в логике? • Хочется делать мутации с фронта? А если это деньги, документы, юридическая информация? Есть готовность за это финансово отвечать? (Ой) • Есть зрелые практики работы - покрытие тестами всего кода? TS вместо JS хотя бы?
  • 14. Зрелые практики возможны и с JS Но это скучно, не молодежно, не хайпово
  • 16. Личные отношения • Разные ценности личные • Разная ментальность • Разные критерии успеха с позиции бизнеса • Кейс с аплодисментами • УВАЖАЙТЕ ДРУГ ДРУГА
  • 18. Prisma raises $4.5M to build the GraphQL data layer for all databases The upcoming Prisma 2.0 seems to combine Prisma Client and Prisma Server and add an Admin UI feature. Making it a direct Hasura equivalent/competitor.
  • 19.
  • 20. Hasura. The company got $1.6 million in seed funding in April.  “Our focus from the beginning has been making the application development super fast.”
  • 21. that’s the way that business works сила темной стороны огромна
  • 22. А ты с какой стороны денег? А мы покупаем или продаем? Измеримое влияние на TCO? Какие бизнес преимущества? «у меня все хорошо, мой дом в сайдбаре»
  • 23. MVP круд приложенек для инвестора?  • А что если то же самое можно получить проще? Что если даже клиент об этом знает, а разработчики нет? • Внезапно - Oracle APEX, XYZ? • Low code! Цель не кодить, цель быстро получить решение, ведь graphql про скорость разработки?
  • 24. 1ая, 2ая и 3я космические скорости • Скорость выхода MV(!!!)P проекта на рынок • Скорость разработки • Скорость карьерного роста разработчика
  • 25. Любая технология важна не сама по себе. Сколько не ускоряй часть работы, никого не интересует только часть. +1 - 2 = -1
  • 26. Бизнес устает от разделения и no value added code Крупный бизнес делит (ради эффективности и там не забалуешь), средний хочет фулстек (Lean, Kanban, Scrum - каждый по своему)
  • 27. Карьерный рост быстро В компании никто не отрубает твоих недостатков. Много требуют? Идешь туда, где требуют меньше, а платят больше. 
 Не мешают расти карьерно. Непрофессионалы сами. Сами себе враги, а ты им в этом союзник
  • 28. Профессиональный рост быстро все четко понимают твой уровень, на карьерный рост еще пахать и пахать. Но помогают расти, потому что более профессиональны. От требования о повышении раньше, чем через 2 года в первый раз смеются, во второй увольняют
  • 29. Анализ ценности GraphQL с поэзии архитектуры • functional correctness ? • performance, scalability (на фронт можно вынести нагрузку, но слабый grahql бекенд бьет) - + • compatibility + • usability ? • reliability: - maturity - availability - fault tolerance - recoverability - • security - • maintainability +
  • 30. Темное прошлое • МОСТЫ между беком и фронтом: • HTTP • AJAX • WebSocket • X Window - реверсная архитектура, когда gui - это сервер, а бизнес логика в клиентах. • MVVM Binder. Declarative (1 Vendor, растаскали, нет полной поддержки, MVC не пошатнулся) 
  • 31. Rich фронт Flash, Silverlight, jQuery слайдеры bells & whistles, GMail (+ desktop notify), SPA (React etc)
  • 32. Временно vs в нише vs истинно (широкая поддержка, переживет 10 лет)
  • 33. • SOAP • XML • REST • OPENAPI • ODATA • OTHER (gRPC, Protobuf, who cares?) • Все это имело активный маркетинг и было идеальным (как GraphQL) решением для всех проблем • Кто-то думает что GraphQL просуществует вечно или в такой же позиции сияния в рассветных лучах? • Кто будет это legacy переписывать и как скоро? 
 По каким часам живем? Если по часам JS мира, то скоро.
  • 34. Светлое будущее • Светлое будущее у RICH фронтенда, а не у JS. • AR интерфейсы, «как в кино» Так фронтенд это про JS или про ФРОНТ - ЕНД и язык тут не при чем? • Unreal Engine, C++ / BluePrint (hardcode / no code)
  • 35. Сумерки Риски. webasm. Chrome = IE, Smth new 
 (React VR - подстраховка)
  • 36. Закат Сначала важно быстро во что-то входить. Но отрасль становится более зрелой и становится важна сумма опыта. А если все вчерашнее отбрасывается, а не суммируется, то цена опыта - 0. 
 Ваше место займут другие люди
  • 37. Пока GraphQL только выбирает данные, рассвет безоблачный. Но мутации... Software Architecture
  • 38. GraphQL - хорошо, больше нет кусков логики во фронте А правда больше нет? Ни одной?
 
 «I want to believe»
  • 39. "You could implement a Workflow on the client side -- have the UI orchestrate all the necessary basic commands"
  • 40. А в чем проблема иметь логику на фронте?
  • 41. Есть взрослые дома? • А на нее (бизнес логику) есть тесты? • Которые можно без браузера запустить? • Она в идеальном порядке? • Она не засунута в какой-то react компонент? • (который MVC сам по себе, а в модели с Rx, Redux он часть замороченной системы) • Как вообще инициировать эту логику? Есть ли команда или она по клику запускается?
  • 42. Допустим… • Есть страница и она показывает что решил сервер. Может ли страница сама начать решать, что ей делать и отправлять команды обратно на сервер? • CRUD - это команды или нет? CQRS - command != p.title = x, p.save • Ну, бывает… Dashboard - как и GraphQL - крути в любой комбинации заданные элементы.
  • 43. GraphQL - еще один rest, openapi, больше свободы в разработке, но ничего нового в результате Sorry, friends :(
  • 44. Другой способ - синхронизация данных Например, CouchDB
  • 45. Кто принимал решение осознанно и взвесив все альтернативы? У кого хватало опыта для такого решения? А кому мы верим? КОМУ ВЫГОДНО?
  • 46. недоCQRS Anemic, через данные, а не через смыслы
  • 47. Жизненный цикл До релиза не трогаем бекенда А после релиза?
  • 48. Persisted query а мы кажется начинали с другого? Перепутали ЦА или интрумент?
  • 49. Сложность задачи и ценность инструмента Кривые не сходятся В начале не выгодно в разработке, потом
  • 50. GraphQL - это взятие на себя ответсвенности за бизнес процессы, те и за бекенд
  • 51. Лень и откладывание проектирования на потом А мы покупаем или продаем?
  • 52. Почему мы здесь оказались? Слишком много людей делает код, который не доживает до продакшена
  • 55. Спасибо Давайте уважать тех, кто покупает и кто за это все платит