SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Почему нужно читать
исходный код
инструментов
Малиновский Дмитрий
Студент 5 курса ОмГУ, ИМИТ
DevOps Engineer в Thumbtack
Идеальный код?

•  Проектирование
•  Документирование (sphinx, readthedocs)
•  Статические анализаторы (flake8)
•  Анализаторы цикломатической сложности (radon)
•  Автоматические проверки (git hooks, :w, etc.)
•  Тестирование (unittest, doctest, etc.)
•  Continuous Integration (Travis, Jenkins, etc.)
Анатомия инструментов
Внутренняя
кухня
_RSAobj
LocalClient
ListServers

• 
• 
• 

Магия
Магия
Магия

Внешний интерфейс
RSA.new
salt * test.ping
couchbase-cli server-list

• 
• 
• 
Анатомия инструментов, v2
Примеры:

•  server-add myserver # OK
•  server-remove myserver # FAIL: ‘myserver’ is not
• 
• 

a valid IPv4 address
salt v0.17.2: pkgrepo.managed # OK
salt v0.17.4: pkgrepo.managed # FAIL
1. Чтение исходного кода
2. ???
3. Profit!
Опыт
●  Существуют причины, по которым это сделано
так, а не иначе
●  Разработчики не могли предусмотреть всё
●  Pull request
Опыт
Pull request:
Not merged - недостаточно опыта/понимания
Merged - удовлетворение, признание
●  Contribution

• 
• 
Понимание

•  Реализует все контракты
• 
• 

o  raise NotImplementedError
Движется в нужном направлении
o  интеграция с puppet при сломанном yum api
o  преждевременная монетизация
Production-ready?
Реализация

•  Покрыто ли тестами?
•  Качество тестов
•  Соблюдение DRY/KISS/etc
•  Как следствие,
• 

o  простота
o  расширяемость
Соответствие [де-факто] стандартам
Комментарии

•  long john; // silver
•  // Я посвящаю весь свой код,

• 

// всю работу своей жене Дарлин, которой
// придётся содержать меня,
// наших троих детей и собаку, когда
// это пойдет в паблик.
long long ago; /* in a galaxy far far away */
Как выбираются инструменты
Как выбираются инструменты
“Первая ссылка в гугле”, обзор фич
Как выбираются инструменты
Сравнение фич
Как выбираются инструменты
Наличие удобного GUI
Как выбираются инструменты
Наличие удобного CLI
Как выбираются инструменты
Наличие удобного API
urllib2
urllib2.HTTPPasswordMgrWithDefaultRealm
urllib2.HTTPDigestAuthHandler
urllib2.AbstractBasicAuthHandler
Подводные камни
1. Обзор фич - маркетинг
2. Сравнение фич - платные, поверхностные обзоры
3. Удобный GUI - возможно, единственный
грамотно написанный компонент
4. Удобный CLI - неконсистентный ввод/вывод,
опции (--verbose vs --log verbose)
5. Удобный API - отсутствие высокоуровневых
абстракций, отсутствие логики взаимодействия
Вопросы, которые нужно задать
Могу ли я пользоваться инструментом, который:
не реализует маркетинговые обещания?
не имеет внутренней логики?
не имеет тестов?
имеет мало тестов?
имеет бессмысленные тесты?
развивается от “левой пятки”?

• 
• 
• 
• 
• 
• 
Не реализует обещания
Значит вместо

можно увидеть
Не имеет внутренней логики
Значит код придется писать так
Имеет проблемы с тестами
Значит что-то где-то упадет
Развивается от левой пятки
Значит, придется тратить ресурсы на
реализацию необходимых фич и костыли
Читайте исходный код и
помните, что баги
библиотек, которыми вы
пользуетесь, становятся
багами вашего проекта
Вопросы?

Más contenido relacionado

La actualidad más candente

C&C for coffee'n'code
C&C for coffee'n'codeC&C for coffee'n'code
C&C for coffee'n'code
Ivan Mosiev
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
Sergey Ryabenko
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Mail.ru Group
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Mail.ru Group
 
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Ontico
 
евгения фирсова нерелизное тестирование
евгения фирсова   нерелизное тестированиеевгения фирсова   нерелизное тестирование
евгения фирсова нерелизное тестирование
Alexei Lupan
 
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
DevDay
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
automated-testing.info
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest
 

La actualidad más candente (20)

C&C for coffee'n'code
C&C for coffee'n'codeC&C for coffee'n'code
C&C for coffee'n'code
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
 
Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?Что такое проект по автоматизации тестирования ПО?
Что такое проект по автоматизации тестирования ПО?
 
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
Наталья Чуфырина, Mail.Ru Group, «Как создать команду по автоматизации тестир...
 
Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"Владислав Грязнов "Многозадачность в PHP"
Владислав Грязнов "Многозадачность в PHP"
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
Алексей Петров, Mail.Ru Group, "Организация конвейера автоматизации тестирова...
 
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
Алексей Халайджи, Mail.Ru Group, «Как мы автоматизируем UI-тестирование в iOS...
 
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
 
Seamy side of autotests
Seamy side of autotestsSeamy side of autotests
Seamy side of autotests
 
евгения фирсова нерелизное тестирование
евгения фирсова   нерелизное тестированиеевгения фирсова   нерелизное тестирование
евгения фирсова нерелизное тестирование
 
Github Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестированияGithub Flow. Тестировщики против тестирования
Github Flow. Тестировщики против тестирования
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
 
Grail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестовGrail: шаги для ваших Python-тестов
Grail: шаги для ваших Python-тестов
 
Automated tests ci
Automated tests ci Automated tests ci
Automated tests ci
 
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
«Agile-тестирование по версии API 2ГИС» — Анастасия Огаркова, 2ГИС
 
Быстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием PythonБыстрое расширение Robot Framework под свои нужды с использованием Python
Быстрое расширение Robot Framework под свои нужды с использованием Python
 
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
CodeFest 2010. Жемчужникова М., Овчарова О. —Принципы выбора ПО для группы те...
 
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментовНепрерывная интеграция и автотесты. Сравнительный анализ инструментов
Непрерывная интеграция и автотесты. Сравнительный анализ инструментов
 
Разработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScriptРазработка веб-приложений с помощью TypeScript
Разработка веб-приложений с помощью TypeScript
 

Destacado

2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
Омские ИТ-субботники
 
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
Омские ИТ-субботники
 
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
Омские ИТ-субботники
 
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
Омские ИТ-субботники
 
2013-02-02 00 Тарасенко. ИТ-конференции России
2013-02-02 00 Тарасенко. ИТ-конференции России2013-02-02 00 Тарасенко. ИТ-конференции России
2013-02-02 00 Тарасенко. ИТ-конференции России
Омские ИТ-субботники
 

Destacado (7)

2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
2012-01-05 02 Юлия Миттова. Автоматизированное тестирование под Android
 
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
2014-03-01 02 Евгений Тюменцев. Почему буксует тайм-менеджмент
 
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
2013-05-04 03 Дмитрий Барсуков. Удаленная работа - мечта или реальность?
 
2014-09-06 02 Евгений Тюменцев. Экономика аутсорсинговой компании
2014-09-06 02 Евгений Тюменцев. Экономика аутсорсинговой компании2014-09-06 02 Евгений Тюменцев. Экономика аутсорсинговой компании
2014-09-06 02 Евгений Тюменцев. Экономика аутсорсинговой компании
 
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
2013-10-05 02 Алексей Родионов. Как сделать свой Travis CI - Vagrant + KVM
 
2013-02-02 00 Тарасенко. ИТ-конференции России
2013-02-02 00 Тарасенко. ИТ-конференции России2013-02-02 00 Тарасенко. ИТ-конференции России
2013-02-02 00 Тарасенко. ИТ-конференции России
 
2014-11-01 01 Денис Нелюбин. О сортах кофе
2014-11-01 01 Денис Нелюбин. О сортах кофе2014-11-01 01 Денис Нелюбин. О сортах кофе
2014-11-01 01 Денис Нелюбин. О сортах кофе
 

Similar a 2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инструментов

Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
Gleb Rybalko
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
GoIT
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
Andrey Listochkin
 

Similar a 2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инструментов (20)

Sivko
SivkoSivko
Sivko
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?Как построить свой фреймворк для автотестов?
Как построить свой фреймворк для автотестов?
 
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNGДмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
Дмитрий Лукьяненко: Первый фреймворк на Selenium + TestNG
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Automation from the trenches
Automation from the trenchesAutomation from the trenches
Automation from the trenches
 
Introduction to Automation Testing
Introduction to Automation TestingIntroduction to Automation Testing
Introduction to Automation Testing
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
BlackBox testing
BlackBox testingBlackBox testing
BlackBox testing
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Enter: testing
Enter: testingEnter: testing
Enter: testing
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp VaultКак перестать хранить секреты в git и начать использовать Hashicorp Vault
Как перестать хранить секреты в git и начать использовать Hashicorp Vault
 
DevOps guide for awesome quality assurance
DevOps guide for awesome quality assuranceDevOps guide for awesome quality assurance
DevOps guide for awesome quality assurance
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Когда технологий много - iForum 2013
Когда технологий много - iForum 2013Когда технологий много - iForum 2013
Когда технологий много - iForum 2013
 
Ошибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений КонцевойОшибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений Концевой
 

Más de Омские ИТ-субботники

2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
Омские ИТ-субботники
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
Омские ИТ-субботники
 

Más de Омские ИТ-субботники (20)

2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!2017-08-12 01 Алексей Коровянский. Привет, ARKit!
2017-08-12 01 Алексей Коровянский. Привет, ARKit!
 
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
2017-08-12 02 Антон Ковалев. Texture a.k.a AsyncDisplayKit
 
2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?2017-05-06 02 Илья Сиганов. Зачем учить машины?
2017-05-06 02 Илья Сиганов. Зачем учить машины?
 
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
2017 04-08 03 Максим Верзаков. Docker — жизнь, вселенная и все остальное
 
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
2017-04-08 01 Евгений Оськин. Video streaming: от идеи до нагруженной системы
 
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
2017-03-11 02 Денис Нелюбин. Docker & Ansible - лучшие друзья DevOps
 
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
2017-03-11 01 Игорь Родионов. Docker swarm vs Kubernetes
 
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
 
2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
 
2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC
 

2014-02-01 02 Дмитрий Малиновский. Почему нужно читать исходный код инструментов