SlideShare a Scribd company logo
Когда Технологий Много
Андрей Листочкин
Типичный проект
DBYour Tech
HTML
Нетипичный проект
HTML
API
Mobile
Your
Tech
Your
Tech
Third
Tech
Legacy
Tech
Other
Tech
Андрей Листочкин
@listochkin
github.com/listochkin
listochkin@outlook.com
Tech Lead, Grammarly
2007 Москва
2008 Осло
2011 Днепропетровск
2012 Киев
Зачем?
Интеграция
http://www.flickr.com/photos/nasamarshall/5622329726/
Необходимость
http://www.flickr.com/photos/blogography/6367777/
Deployment Constraints
http://www.flickr.com/photos/marine_corps/8443922013/
RDD
http://www.flickr.com/photos/pattoise/5897779740/
Use Right Tool for a Job
http://www.flickr.com/photos/nephiel/2089874718/
Выбираем инструмент под задачу
1. Специфичная задача
○ NLP - Common Lisp
○ Огромные изображения - VIPS
Выбираем инструмент под задачу
1. Специфичная задача
○ NLP - Common Lisp
○ Огромные изображения - VIPS
2. Каноничный сценарий
○ Веб-сайт - CMS
○ Веб-приложение - Ruby on Rails
○ Вебсоккеты - Node
Выбираем инструмент под задачу
1. Специфичная задача
○ NLP - Common Lisp
○ Огромные изображения - VIPS
2. Каноничный сценарий
○ Веб-сайт - CMS
○ Веб-приложение - Ruby on Rails
○ Вебсоккеты - Node
3. Экосистема
○ Системы сборки, развертывания, мониторинга
○ Сообщество
Выбираем инструмент под задачу
1. Специфичная задача
○ NLP - Common Lisp
○ Огромные изображения - VIPS
2. Каноничный сценарий
○ Веб-сайт - CMS
○ Веб-приложение - Ruby on Rails
○ Вебсоккеты - Node
3. Экосистема
○ Системы сборки, развертывания, мониторинга
○ Сообщество
4. Экспертиза
Экспертиза
Как выбрать то или иное решение?
Как найти людей?
Как удержать людей?
Как оценить задачу?
Что делать, когда что-то идет не так?
А как быть с легаси?
Переписывать? Да? Нет? На чем?
Альтернативы
http://www.flickr.com/photos/matthigh/2983549068/
Пример: JavaScript на сервере
Headhunter
http://www.flickr.com/photos/fouquier/8375009489/
Интересный стек может
как привлекать, так и
отпугивать
1. Середнячков
Отпугивает
1. Середнячков
2. Экспертов
Отпугивает
1. Середнячков
2. Экспертов
3. Работающих исключительно за деньги
Отпугивает
Привлекает
1. Резюместроителей
Привлекает
1. Резюместроителей
2. Новичков
Привлекает
1. Резюместроителей
2. Новичков
3. Самых продуктивных
Что искать?
1. Основы: patterns, HTTP, Unix, COM
Что искать?
1. Основы: patterns, HTTP, Unix, COM
2. Перифирийные знания:
JavaScript - < ??? > - SQL
Что искать?
1. Основы: patterns, HTTP, Unix, COM
2. Перифирийные знания:
JavaScript - < ??? > - SQL
3. Мультиплатформенный опыт
Что искать?
1. Основы: patterns, HTTP, Unix, COM
2. Перифирийные знания:
JavaScript - < ??? > - SQL
3. Мультиплатформенный опыт
4. Тяга к Computer Science, Math
Мультилингвальность
http://www.flickr.com/photos/jurvetson/21470089/
Что искать?
5. Мультилингвальность
Инженер с 5ю годами опыта должен
уверенно вести разработку на 2-3 языках,
не считая JavaScript
6. Smart, and Gets Things Done
7. Done, and Gets Things Smart
Как работать?
1. Test Integration Points
Клиент на C#
Сервис на Java
Тесты для сервис на JavaScript
Как работать?
1. Test Integration Points
Клиент на C#
Сервис на Java
Тесты для сервис на JavaScript
2. Распределяйте действия, а не сценарии
Как работать?
1. Test Integration Points
Клиент на C#
Сервис на Java
Тесты для сервис на JavaScript
2. Распределяйте действия, а не сценарии
3. Небольшие компоненты
Как работать?
4. Обмен опытом, ротация людей в задачах
5. "Песочница"
a. One-off scripts
b. Тесты
c. Второстепенные подсистемы
d. Микропроекты
Компромис
http://www.flickr.com/photos/funkypancake/477244177/
1. Оценки времени выполнения часто
придется делать "вслепую"
2. Отдельные инженеры будут предпочитать
отдельные технологии
3. Некоторые языки не будет знать никто из
доступных вам в данный момент людей
Компромисы
CSS
http://www.flickr.com/photos/geirarne/110995239/
Rewrite?
http://www.flickr.com/photos/theamarand/3886238194/
Good Tech
Осторожно!
http://www.flickr.com/photos/jennberry/1290467361/
Аккуратность не помешает
Взаимное взросление технологий
http://www.flickr.com/photos/evilpeacock/6202240628/
Взаимное взросление:
Play!
http://www.flickr.com/photos/conorkeller/3728886184/

More Related Content

What's hot

Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradleEvgeny Borisov
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
SQALab
 
RailsClub Meetup #2 React On Rails
RailsClub Meetup #2 React On RailsRailsClub Meetup #2 React On Rails
RailsClub Meetup #2 React On Rails
Zakhar Day
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
Aleksandr Makhomet
 
Разработка через ADD
Разработка через ADDРазработка через ADD
Разработка через ADD
Sergey Staroletov
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
Positive Hack Days
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
Олег Стрекаловский
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом Enterprise
Alexander Granin
 
Serhii Ruskykh "Can be code quality measured via 'testability'?"
Serhii Ruskykh "Can be code quality measured via 'testability'?"Serhii Ruskykh "Can be code quality measured via 'testability'?"
Serhii Ruskykh "Can be code quality measured via 'testability'?"
OdessaPyConference
 
низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
COMAQA.BY
 

What's hot (10)

Javaone 2013 moscow gradle
Javaone 2013 moscow gradleJavaone 2013 moscow gradle
Javaone 2013 moscow gradle
 
Robot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатораRobot Framework: универсальный инструмент автоматизатора
Robot Framework: универсальный инструмент автоматизатора
 
RailsClub Meetup #2 React On Rails
RailsClub Meetup #2 React On RailsRailsClub Meetup #2 React On Rails
RailsClub Meetup #2 React On Rails
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
 
Разработка через ADD
Разработка через ADDРазработка через ADD
Разработка через ADD
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Когда код «убивает», или зачем нам тестировать наши продукты
Когда код «убивает», или зачем  нам тестировать наши продуктыКогда код «убивает», или зачем  нам тестировать наши продукты
Когда код «убивает», или зачем нам тестировать наши продукты
 
Профессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом EnterpriseПрофессиональная разработка в суровом Enterprise
Профессиональная разработка в суровом Enterprise
 
Serhii Ruskykh "Can be code quality measured via 'testability'?"
Serhii Ruskykh "Can be code quality measured via 'testability'?"Serhii Ruskykh "Can be code quality measured via 'testability'?"
Serhii Ruskykh "Can be code quality measured via 'testability'?"
 
низкоуровневое программирование сегодня новые стандарты с++, программирован...
низкоуровневое программирование сегодня   новые стандарты с++, программирован...низкоуровневое программирование сегодня   новые стандарты с++, программирован...
низкоуровневое программирование сегодня новые стандарты с++, программирован...
 

Viewers also liked

развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)guest40e031
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo
 
Фронтенд для рубиста
Фронтенд для рубистаФронтенд для рубиста
Фронтенд для рубиста
Kir Shatrov
 
I18n ruby-приложений
I18n ruby-приложенийI18n ruby-приложений
I18n ruby-приложений
Andrey Sitnik
 
10 reasons I love RubyOnRails
10 reasons I love RubyOnRails10 reasons I love RubyOnRails
10 reasons I love RubyOnRails
Pavel Gabriel
 
Ruby on Rails for noobs
Ruby on Rails for noobsRuby on Rails for noobs
Ruby on Rails for noobs
Vitalii Tytskyi
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on Rails
Yaroslav Markin
 
R18n
R18nR18n
Призма24 - Маркетплейсы.
Призма24 - Маркетплейсы.Призма24 - Маркетплейсы.
Призма24 - Маркетплейсы.
Vitalii Tytskyi
 
RSpec. Part 1
RSpec. Part 1RSpec. Part 1
RSpec. Part 1
Vladimir Dementyev
 
Debbug Rails Application For Dummies
Debbug Rails Application For DummiesDebbug Rails Application For Dummies
Debbug Rails Application For DummiesAndrey Subbota
 
RSpec. Part 3
RSpec. Part 3RSpec. Part 3
RSpec. Part 3
Vladimir Dementyev
 
Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016
zykin-ilya
 
Rails Concerns
Rails ConcernsRails Concerns
Rails Concerns
Vladimir Dementyev
 
Александр Тищенко - "Антикризисная презентация"
Александр Тищенко - "Антикризисная презентация"Александр Тищенко - "Антикризисная презентация"
Александр Тищенко - "Антикризисная презентация"
railsclub
 
RSpec. Part 2
RSpec. Part 2RSpec. Part 2
RSpec. Part 2
Vladimir Dementyev
 
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...Alexander Dymo
 
Why does code style matter?
Why does code style matter?Why does code style matter?
Why does code style matter?
Vladimir Dementyev
 
Секретный доклад о React Router - OdessaJS 2014
Секретный доклад о React Router - OdessaJS 2014Секретный доклад о React Router - OdessaJS 2014
Секретный доклад о React Router - OdessaJS 2014Andrey Listochkin
 

Viewers also liked (20)

развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
 
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The BeastAlexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
Alexander Dymo - IT Jam 2009 - Ruby: Beaty Or The Beast
 
Assets Pipeline
Assets PipelineAssets Pipeline
Assets Pipeline
 
Фронтенд для рубиста
Фронтенд для рубистаФронтенд для рубиста
Фронтенд для рубиста
 
I18n ruby-приложений
I18n ruby-приложенийI18n ruby-приложений
I18n ruby-приложений
 
10 reasons I love RubyOnRails
10 reasons I love RubyOnRails10 reasons I love RubyOnRails
10 reasons I love RubyOnRails
 
Ruby on Rails for noobs
Ruby on Rails for noobsRuby on Rails for noobs
Ruby on Rails for noobs
 
Как сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on RailsКак сделать контрибут в Ruby on Rails
Как сделать контрибут в Ruby on Rails
 
R18n
R18nR18n
R18n
 
Призма24 - Маркетплейсы.
Призма24 - Маркетплейсы.Призма24 - Маркетплейсы.
Призма24 - Маркетплейсы.
 
RSpec. Part 1
RSpec. Part 1RSpec. Part 1
RSpec. Part 1
 
Debbug Rails Application For Dummies
Debbug Rails Application For DummiesDebbug Rails Application For Dummies
Debbug Rails Application For Dummies
 
RSpec. Part 3
RSpec. Part 3RSpec. Part 3
RSpec. Part 3
 
Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016Deploy.rb, Ilya Zykin, Rails club2016
Deploy.rb, Ilya Zykin, Rails club2016
 
Rails Concerns
Rails ConcernsRails Concerns
Rails Concerns
 
Александр Тищенко - "Антикризисная презентация"
Александр Тищенко - "Антикризисная презентация"Александр Тищенко - "Антикризисная презентация"
Александр Тищенко - "Антикризисная презентация"
 
RSpec. Part 2
RSpec. Part 2RSpec. Part 2
RSpec. Part 2
 
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
Alexander Dymo - RubyConf 2014 - Ruby Performance Secrets and How to Uncover ...
 
Why does code style matter?
Why does code style matter?Why does code style matter?
Why does code style matter?
 
Секретный доклад о React Router - OdessaJS 2014
Секретный доклад о React Router - OdessaJS 2014Секретный доклад о React Router - OdessaJS 2014
Секретный доклад о React Router - OdessaJS 2014
 

Similar to Когда технологий много - iForum 2013

Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
GoIT
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
Fwdays
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
Alexander Lisachenko
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...Омские ИТ-субботники
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Andrew Mayorov
 
Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.
Nikolaj Sarry
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
GlobalLogic Ukraine
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
Kirill Danilov
 
Modern IT- technologies
Modern IT- technologiesModern IT- technologies
Modern IT- technologies
Alena Volchek(Yurkevich)
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenchesGleb Rybalko
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
SQALab
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON
 
Почему стоит выбрать PHP
Почему стоит выбрать PHPПочему стоит выбрать PHP
Почему стоит выбрать PHP
Maxim Sivokon
 
Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python? Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python?
Mykhailo Poliarush
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
Alexey Lustin
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
Dev2Dev
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границsqadays8
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
Stanislav Sidristy
 
DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.
mikhaelsmirnov
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 

Similar to Когда технологий много - iForum 2013 (20)

Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"Serghei Iakovlev "Chaos engineering in action"
Serghei Iakovlev "Chaos engineering in action"
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инстру...
 
Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.Синяя Борода. История одного проекта.
Синяя Борода. История одного проекта.
 
Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Secr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.jsSecr15 разработка кросс платформенных десктоп приложений nw.js
Secr15 разработка кросс платформенных десктоп приложений nw.js
 
Modern IT- technologies
Modern IT- technologiesModern IT- technologies
Modern IT- technologies
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
SECON'2016. Тюменцев Евгений, Разработка надежных параллельных, распределенны...
 
Почему стоит выбрать PHP
Почему стоит выбрать PHPПочему стоит выбрать PHP
Почему стоит выбрать PHP
 
Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python? Как расширять Robot Framework под свои нужны с помощью Python?
Как расширять Robot Framework под свои нужны с помощью Python?
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"D2D Pizza JS Илья Беда "Куда мы все катимся?"
D2D Pizza JS Илья Беда "Куда мы все катимся?"
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границ
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
 
DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 

Когда технологий много - iForum 2013