SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Непрерывная
инспекция кода
В режимах мультиязычной разработки микросервисов и микропродуктов
Авторский контекст
CTO SilverBulleters
https://github.com/allustin
Это история
Про бейджики
И про автоботов
И не совсем про статический
анализ кода
Обычно говорят о проблемах
Code
Review
это очень
дорого
В деньгах
4 часа в неделю на ревью
изменений
8 часов в неделю на чтение
патернов и книг
«Бесконечное количество»
обсуждений
В итоге
12 * 52 = ?
50$ в час =
???
Почему так
Языков
десятки
Требований к
коду тысячи
Ресурсы
всегда
ограничены
Люди любят
один
(максимум)
два языка
А еще все любят поговорить
А заказчик хочет «странного»
Микросервис на
PHP (YII)
Приложение на
TypeScript
Требования
могут
формироваться
на Gherkin
Интеграционные
адаптеры – на
Java
Дополнительные
компоненты – на
C#/Mono
Алексей Лустин. Непрерывная проверка качества кода.
В 2014 году мы решили
Чтобы кодировать будем
командой
Нам в целом не важно на
каком языке кодировать
Главное чтобы был один
лидер по языку
Проверять код будем
автоматически
7 смертных грехов программиста
Я не буду
переводить
стандартную
статью от
SonarQube.com
SonarQube как «платформа»
Инструмент для имплементации инженерной практики под называнием
@ContiniousInspection
Содержит
• Сервис анализа Кода с большой буквы К
• Сервис хранения и расчета метрик
• Сервис отображения метрик
Через плагины
• Поддерживает автоматический CodeReview
• Поддерживает более 20 языков программирования
• Автоматическое назначение задачи на исправление
4 новых понятия
«Путь архитектора» (дорога цветов)
Порог качества продукта
Технический долг продукта
Правила кодирования
Даже на DEVELOP ветке
Алексей Лустин. Непрерывная проверка качества кода.
Pipeline
Разрабатывать в режиме множества парралельных
проектов и сервисов невозможно без CI-CD
Автоматическое тестирование и сборка обязательна
Автоматическое развертывание (хотя бы на UAT)
контуре предпочтительна
Алексей Лустин. Непрерывная проверка качества кода.
Pipeline
Стандартный pipeline позволяет
• Dev – Test – Uat
Мы добавляем
• Dev – Lint – Test - UAT
При старте любого проекта
• GIT – SonarQube
• Еще раньше CI-CD
На любую ветку
• И на каждый commit
Даже внутри команды !!!
Бот подключается всегда
Каждый коммит ?
Да именно каждый
commit
Сборка считается
упавшей
• Если в master или develop
порог качества превышен
Остальное подключается
через SonarLint
• Чтобы исключить проблемы
раньше master и develop
«Linters» как возможность
показать себя ведущим
программистом
Hooks
«Linters» как возможность
показать себя ведущим
программистом
Hooks
Правила
Если в develop оказались
• Баги выше красного, включая
безопасность
Это означается что мы
• Слишком быстро кодим
• Даже не проверяем свой код после
написания
Не согласен ? Отключи
Срабатывание,
но не правило
Правило
отключает
• Архитектор
Автоботы
«На тебе !!! Чтобы ты
подавился !!!»
• Commit to open merge request
Не забудьте отключить
SMTP в большом
проекте
В итоге наш стандарт
IDE + SonarLint
• VStudio, Eclipse, IDEA+, VSCode
DCVS (git)
CI server (Jenkins + VSTS + travis + AppVeyor + etc)
SonarQube
• SCM
• PHP, TypeScript, JS, CSS, HTML, Gherkin, Java, C#
• Russian
Как исследовали и
включали
Результаты
Я забыл когда ревьюил код вручную
• По моему раз в месяц
Большую часть времени у меня уходит
• На проектирование архитектуры, которую пока автоматически ревьюить можно,
но дорого ;-)
Команда
• Забыла когда допускала базовые ошибки или были серьезные баги в
продуктиве, в основном сложные «плавающие» проблемы связанные с
производительностью – но это уже другая история Continuous Performance Load.
Моя цель
Чтобы члены команды больше не использовали
отговорку в виде «Я не очень умею на <LangName>»
• Подключи Sonar – он проверит
Донести до вас, что SonarQube должен быть встроен
в процесс создания продукта раньше Jenkins Tests ;-)
• Потом не будет времени
Архитектура SB
ВОПРОСЫ
???
Спасибо за внимание

Contenu connexe

Tendances

О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Ontico
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016Roman Ivliev
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущееBadoo Development
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработкеMagneta AI
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосноватьMaksym Bezuglyi
 
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думатьАлексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думатьScrumTrek
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoBadoo Development
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай КрапивныйCodeFest
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППPavel Gabriel
 
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.ScrumTrek
 
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Ontico
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)Ontico
 
Александр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentАлександр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentScrumTrek
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruBadoo Development
 
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметилДенис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметилDenis Tuchin
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессовNikita Filippov
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?CEE-SEC(R)
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooBadoo Development
 
Александр Корольков. LeSS Huge
Александр Корольков. LeSS HugeАлександр Корольков. LeSS Huge
Александр Корольков. LeSS HugeScrumTrek
 

Tendances (20)

О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)Алексей Рыбак (Badoo)
Алексей Рыбак (Badoo)
 
Всему своё время Highload Junior 2016
Всему своё время   Highload Junior  2016Всему своё время   Highload Junior  2016
Всему своё время Highload Junior 2016
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
 
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думатьАлексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думать
 
TechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, ErlyvideoTechLeads meetup: Макс Лапшин, Erlyvideo
TechLeads meetup: Макс Лапшин, Erlyvideo
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Обязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ПППОбязательные практики Agile-проекта и правило ППП
Обязательные практики Agile-проекта и правило ППП
 
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.
Владимир Завертайлов. Выравнивание нагрузки в IT-компании: впихнуть невпихуемое.
 
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
Как сделать свой SDK и первые 50 расширений от подпольных технологий к интегр...
 
О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)О фреймворках / Роман Ивлиев (Банки.ру)
О фреймворках / Роман Ивлиев (Банки.ру)
 
Александр Андронов, Engineering Assessment
Александр Андронов, Engineering AssessmentАлександр Андронов, Engineering Assessment
Александр Андронов, Engineering Assessment
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметилДенис Тучин - Как внедрить Agile, чтобы никто не заметил
Денис Тучин - Как внедрить Agile, чтобы никто не заметил
 
Обзор Agile - эволюция процессов
Обзор Agile - эволюция процессовОбзор Agile - эволюция процессов
Обзор Agile - эволюция процессов
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
TechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, BadooTechLeads meetup: Алексей Рыбак, Badoo
TechLeads meetup: Алексей Рыбак, Badoo
 
Александр Корольков. LeSS Huge
Александр Корольков. LeSS HugeАлександр Корольков. LeSS Huge
Александр Корольков. LeSS Huge
 

En vedette

Анзор Кардан. Agile-трансформация UFS.travel.
Анзор Кардан. Agile-трансформация UFS.travel.Анзор Кардан. Agile-трансформация UFS.travel.
Анзор Кардан. Agile-трансформация UFS.travel.ScrumTrek
 
Егор Бугаенко. Избавляйтесь от экспертов!
Егор Бугаенко. Избавляйтесь от экспертов!Егор Бугаенко. Избавляйтесь от экспертов!
Егор Бугаенко. Избавляйтесь от экспертов!ScrumTrek
 
Вячеслав Пресняков. Тестирование в эпоху Agile.
Вячеслав Пресняков. Тестирование в эпоху Agile.Вячеслав Пресняков. Тестирование в эпоху Agile.
Вячеслав Пресняков. Тестирование в эпоху Agile.ScrumTrek
 
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...ScrumTrek
 
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.ScrumTrek
 
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.ScrumTrek
 
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?ScrumTrek
 
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...ScrumTrek
 
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.ScrumTrek
 
Асхат Уразбаев. Как сохранить гибкость бизнеса.
Асхат Уразбаев. Как сохранить гибкость бизнеса.Асхат Уразбаев. Как сохранить гибкость бизнеса.
Асхат Уразбаев. Как сохранить гибкость бизнеса.ScrumTrek
 
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.ScrumTrek
 
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.ScrumTrek
 
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.ScrumTrek
 
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...ScrumTrek
 
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...ScrumTrek
 
Olav Maassen. Making better decisions with option theory.
Olav Maassen. Making better decisions with option theory.Olav Maassen. Making better decisions with option theory.
Olav Maassen. Making better decisions with option theory.ScrumTrek
 
Юрий Агеев. У меня не получится.
Юрий Агеев. У меня не получится.Юрий Агеев. У меня не получится.
Юрий Агеев. У меня не получится.ScrumTrek
 
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...ScrumTrek
 
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.ScrumTrek
 
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.ScrumTrek
 

En vedette (20)

Анзор Кардан. Agile-трансформация UFS.travel.
Анзор Кардан. Agile-трансформация UFS.travel.Анзор Кардан. Agile-трансформация UFS.travel.
Анзор Кардан. Agile-трансформация UFS.travel.
 
Егор Бугаенко. Избавляйтесь от экспертов!
Егор Бугаенко. Избавляйтесь от экспертов!Егор Бугаенко. Избавляйтесь от экспертов!
Егор Бугаенко. Избавляйтесь от экспертов!
 
Вячеслав Пресняков. Тестирование в эпоху Agile.
Вячеслав Пресняков. Тестирование в эпоху Agile.Вячеслав Пресняков. Тестирование в эпоху Agile.
Вячеслав Пресняков. Тестирование в эпоху Agile.
 
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...
Михаил Трутнев. Практическая гибкость от Ultimate Guitar: про работу до 15, о...
 
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.
Максим Цепков. Agile — ответ на вызовы третьей промышленной революции.
 
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.
Александр Бындю. Бизнес-гибкость через микросервисную архитектуру.
 
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
Алексей Ионов. Agile в масштабе корпорации: как не создать хаос?
 
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...
Сергей Карач. Agile в страховой компании: практический опыт трех лет трансфор...
 
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.
Дмитрий Лобасев. Подготовка корпоративной культуры к внедрению Agile.
 
Асхат Уразбаев. Как сохранить гибкость бизнеса.
Асхат Уразбаев. Как сохранить гибкость бизнеса.Асхат Уразбаев. Как сохранить гибкость бизнеса.
Асхат Уразбаев. Как сохранить гибкость бизнеса.
 
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.
Николай Кныш; Сергей Щербинин. Continuous Fail как способ внедрения Agile.
 
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.
Андрей Шапиро. Работа с UX-долгами в заказной и in-house-разработке.
 
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.
Максим Быстров. Трансформация IT - Быстрее, Лучше, Дешевле.
 
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...
Ольга Николаева. Экономика для Agile-команды и прозрачность стоимости для биз...
 
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...
Иван Спресов; Екатерина Макаревич. Agile и Scalability для традиционных индус...
 
Olav Maassen. Making better decisions with option theory.
Olav Maassen. Making better decisions with option theory.Olav Maassen. Making better decisions with option theory.
Olav Maassen. Making better decisions with option theory.
 
Юрий Агеев. У меня не получится.
Юрий Агеев. У меня не получится.Юрий Агеев. У меня не получится.
Юрий Агеев. У меня не получится.
 
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...
Антон Зотин. Почему у нас не выходит Agile? Правильные акценты при трансформа...
 
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.
Андрей Гриднев; Алексей Дерюшкин. Nexus Framework в Сбербанке.
 
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.
Игорь Филипьев. Эволюция Канбан-системы. Опыт Альфа-Лаборатории.
 

Similaire à Алексей Лустин. Непрерывная проверка качества кода.

Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кодаКирилл Борисов
 
Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайнеПрофсоUX
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiAlexander Makarov
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...HappyDev
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла0leGG
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Yandex
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Yandex
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаAleksandr Makhomet
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...it-people
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Ontico
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияSQALab
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникSQALab
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Sergey Ryabenko
 

Similaire à Алексей Лустин. Непрерывная проверка качества кода. (20)

Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практике
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
 
Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайне
 
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк YiiDevconf 2011 - PHP - Как разрабатывается фреймворк Yii
Devconf 2011 - PHP - Как разрабатывается фреймворк Yii
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла
 
Как разраба
Как разрабаКак разраба
Как разраба
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
 
Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"Юрий Василевский "Автоматизация в XCode"
Юрий Василевский "Автоматизация в XCode"
 
Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»Юрий Василевский «Автоматизация в XCode»
Юрий Василевский «Автоматизация в XCode»
 
CodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается YiiCodeFest 2011. Макаров А. — Как разрабатывается Yii
CodeFest 2011. Макаров А. — Как разрабатывается Yii
 
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
SECON'2016. Парамонов Сергей, Автоматизируй это! Как не погрязнуть в рутине п...
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кодаПовышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
Как развивать библиотеку компонентов, не ломая ее / Артур Удалов (Mail.Ru Group)
 
Code review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспеченияCode review как средство обеспечения качества программного обеспечения
Code review как средство обеспечения качества программного обеспечения
 
Sivko
SivkoSivko
Sivko
 
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в ТитаникПодводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
Подводная часть айсберга: что делать, чтобы автотесты не превратились в Титаник
 
Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.Юнит тестирование в Web. Как получать пользу и удовольствие.
Юнит тестирование в Web. Как получать пользу и удовольствие.
 

Plus de ScrumTrek

Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...ScrumTrek
 
Светлана Байгалиева (MindGym). Встань за штурвал
Светлана Байгалиева (MindGym). Встань за штурвалСветлана Байгалиева (MindGym). Встань за штурвал
Светлана Байгалиева (MindGym). Встань за штурвалScrumTrek
 
Александр Тупиков. Введение в Scrum
Александр Тупиков. Введение в ScrumАлександр Тупиков. Введение в Scrum
Александр Тупиков. Введение в ScrumScrumTrek
 
Сергей Чирва. Как Scrum превращает завод в IT-компанию
Сергей Чирва. Как Scrum превращает завод в IT-компаниюСергей Чирва. Как Scrum превращает завод в IT-компанию
Сергей Чирва. Как Scrum превращает завод в IT-компаниюScrumTrek
 
Юрий Соболев. Проблемы и решения Scrum на практике
Юрий Соболев. Проблемы и решения Scrum на практикеЮрий Соболев. Проблемы и решения Scrum на практике
Юрий Соболев. Проблемы и решения Scrum на практикеScrumTrek
 
Анна Обухова. Scrum и сила воли
Анна Обухова. Scrum и сила волиАнна Обухова. Scrum и сила воли
Анна Обухова. Scrum и сила волиScrumTrek
 
TealTeam. Главный критерий при выборе нового члена команды
TealTeam. Главный критерий при выборе нового члена командыTealTeam. Главный критерий при выборе нового члена команды
TealTeam. Главный критерий при выборе нового члена командыScrumTrek
 
Анастасия Мизитова. Компетенции для Agile HR
Анастасия Мизитова. Компетенции для Agile HRАнастасия Мизитова. Компетенции для Agile HR
Анастасия Мизитова. Компетенции для Agile HRScrumTrek
 
Марина Львова. Изменение роли HR в Agile-компании
Марина Львова. Изменение роли HR в Agile-компанииМарина Львова. Изменение роли HR в Agile-компании
Марина Львова. Изменение роли HR в Agile-компанииScrumTrek
 
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коучаАсхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коучаScrumTrek
 
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктовScrumTrek
 
Сергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsСергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsScrumTrek
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMScrumTrek
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсScrumTrek
 
Евгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsЕвгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsScrumTrek
 
Асхат Уразбаев. Крутые организации, счастливые сотрудники
Асхат Уразбаев. Крутые организации, счастливые сотрудникиАсхат Уразбаев. Крутые организации, счастливые сотрудники
Асхат Уразбаев. Крутые организации, счастливые сотрудникиScrumTrek
 
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" AgileОлег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" AgileScrumTrek
 
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?ScrumTrek
 
Иван Дубровин. Почему государство должно быть Agile?
Иван Дубровин. Почему государство должно быть Agile?Иван Дубровин. Почему государство должно быть Agile?
Иван Дубровин. Почему государство должно быть Agile?ScrumTrek
 
Алексей Воронин. Business Agility
Алексей Воронин. Business AgilityАлексей Воронин. Business Agility
Алексей Воронин. Business AgilityScrumTrek
 

Plus de ScrumTrek (20)

Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
Александра Баптизманская, Никита Романов. Хочешь Agile в маркетинге - спроси ...
 
Светлана Байгалиева (MindGym). Встань за штурвал
Светлана Байгалиева (MindGym). Встань за штурвалСветлана Байгалиева (MindGym). Встань за штурвал
Светлана Байгалиева (MindGym). Встань за штурвал
 
Александр Тупиков. Введение в Scrum
Александр Тупиков. Введение в ScrumАлександр Тупиков. Введение в Scrum
Александр Тупиков. Введение в Scrum
 
Сергей Чирва. Как Scrum превращает завод в IT-компанию
Сергей Чирва. Как Scrum превращает завод в IT-компаниюСергей Чирва. Как Scrum превращает завод в IT-компанию
Сергей Чирва. Как Scrum превращает завод в IT-компанию
 
Юрий Соболев. Проблемы и решения Scrum на практике
Юрий Соболев. Проблемы и решения Scrum на практикеЮрий Соболев. Проблемы и решения Scrum на практике
Юрий Соболев. Проблемы и решения Scrum на практике
 
Анна Обухова. Scrum и сила воли
Анна Обухова. Scrum и сила волиАнна Обухова. Scrum и сила воли
Анна Обухова. Scrum и сила воли
 
TealTeam. Главный критерий при выборе нового члена команды
TealTeam. Главный критерий при выборе нового члена командыTealTeam. Главный критерий при выборе нового члена команды
TealTeam. Главный критерий при выборе нового члена команды
 
Анастасия Мизитова. Компетенции для Agile HR
Анастасия Мизитова. Компетенции для Agile HRАнастасия Мизитова. Компетенции для Agile HR
Анастасия Мизитова. Компетенции для Agile HR
 
Марина Львова. Изменение роли HR в Agile-компании
Марина Львова. Изменение роли HR в Agile-компанииМарина Львова. Изменение роли HR в Agile-компании
Марина Львова. Изменение роли HR в Agile-компании
 
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коучаАсхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
Асхат Уразбаев. Три вопроса к HR службе от аджайл-коуча
 
DevOps для Legacy-продуктов
DevOps для Legacy-продуктовDevOps для Legacy-продуктов
DevOps для Legacy-продуктов
 
Сергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOpsСергей Баранов. Enterprise DevOps
Сергей Баранов. Enterprise DevOps
 
Петр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRMПетр Клименко. DevOps Трансформация для SIEBEL CRM
Петр Клименко. DevOps Трансформация для SIEBEL CRM
 
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопсКирилл Толкачев. Микросервисы: огонь, вода и девопс
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
 
Евгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOpsЕвгений Кривошеев. Beyond DevOps
Евгений Кривошеев. Beyond DevOps
 
Асхат Уразбаев. Крутые организации, счастливые сотрудники
Асхат Уразбаев. Крутые организации, счастливые сотрудникиАсхат Уразбаев. Крутые организации, счастливые сотрудники
Асхат Уразбаев. Крутые организации, счастливые сотрудники
 
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" AgileОлег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
Олег Бахмутов, Михаил Плотников, Илья Емельянов. 3 "кита" Agile
 
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
Алексей Ионов. Agile-трансформация: что делать, чтобы потом не искать виноватых?
 
Иван Дубровин. Почему государство должно быть Agile?
Иван Дубровин. Почему государство должно быть Agile?Иван Дубровин. Почему государство должно быть Agile?
Иван Дубровин. Почему государство должно быть Agile?
 
Алексей Воронин. Business Agility
Алексей Воронин. Business AgilityАлексей Воронин. Business Agility
Алексей Воронин. Business Agility
 

Алексей Лустин. Непрерывная проверка качества кода.

  • 1. Непрерывная инспекция кода В режимах мультиязычной разработки микросервисов и микропродуктов
  • 3. Это история Про бейджики И про автоботов И не совсем про статический анализ кода
  • 4. Обычно говорят о проблемах Code Review это очень дорого
  • 5. В деньгах 4 часа в неделю на ревью изменений 8 часов в неделю на чтение патернов и книг «Бесконечное количество» обсуждений
  • 6. В итоге 12 * 52 = ? 50$ в час = ???
  • 7. Почему так Языков десятки Требований к коду тысячи Ресурсы всегда ограничены Люди любят один (максимум) два языка
  • 8. А еще все любят поговорить
  • 9. А заказчик хочет «странного» Микросервис на PHP (YII) Приложение на TypeScript Требования могут формироваться на Gherkin Интеграционные адаптеры – на Java Дополнительные компоненты – на C#/Mono
  • 11. В 2014 году мы решили Чтобы кодировать будем командой Нам в целом не важно на каком языке кодировать Главное чтобы был один лидер по языку Проверять код будем автоматически
  • 12. 7 смертных грехов программиста Я не буду переводить стандартную статью от SonarQube.com
  • 13. SonarQube как «платформа» Инструмент для имплементации инженерной практики под называнием @ContiniousInspection Содержит • Сервис анализа Кода с большой буквы К • Сервис хранения и расчета метрик • Сервис отображения метрик Через плагины • Поддерживает автоматический CodeReview • Поддерживает более 20 языков программирования • Автоматическое назначение задачи на исправление
  • 14. 4 новых понятия «Путь архитектора» (дорога цветов) Порог качества продукта Технический долг продукта Правила кодирования
  • 15. Даже на DEVELOP ветке
  • 17. Pipeline Разрабатывать в режиме множества парралельных проектов и сервисов невозможно без CI-CD Автоматическое тестирование и сборка обязательна Автоматическое развертывание (хотя бы на UAT) контуре предпочтительна
  • 19. Pipeline Стандартный pipeline позволяет • Dev – Test – Uat Мы добавляем • Dev – Lint – Test - UAT При старте любого проекта • GIT – SonarQube • Еще раньше CI-CD На любую ветку • И на каждый commit
  • 22. Каждый коммит ? Да именно каждый commit Сборка считается упавшей • Если в master или develop порог качества превышен Остальное подключается через SonarLint • Чтобы исключить проблемы раньше master и develop
  • 23. «Linters» как возможность показать себя ведущим программистом Hooks
  • 24. «Linters» как возможность показать себя ведущим программистом Hooks
  • 25. Правила Если в develop оказались • Баги выше красного, включая безопасность Это означается что мы • Слишком быстро кодим • Даже не проверяем свой код после написания
  • 26. Не согласен ? Отключи Срабатывание, но не правило Правило отключает • Архитектор
  • 27. Автоботы «На тебе !!! Чтобы ты подавился !!!» • Commit to open merge request Не забудьте отключить SMTP в большом проекте
  • 28. В итоге наш стандарт IDE + SonarLint • VStudio, Eclipse, IDEA+, VSCode DCVS (git) CI server (Jenkins + VSTS + travis + AppVeyor + etc) SonarQube • SCM • PHP, TypeScript, JS, CSS, HTML, Gherkin, Java, C# • Russian
  • 30. Результаты Я забыл когда ревьюил код вручную • По моему раз в месяц Большую часть времени у меня уходит • На проектирование архитектуры, которую пока автоматически ревьюить можно, но дорого ;-) Команда • Забыла когда допускала базовые ошибки или были серьезные баги в продуктиве, в основном сложные «плавающие» проблемы связанные с производительностью – но это уже другая история Continuous Performance Load.
  • 31. Моя цель Чтобы члены команды больше не использовали отговорку в виде «Я не очень умею на <LangName>» • Подключи Sonar – он проверит Донести до вас, что SonarQube должен быть встроен в процесс создания продукта раньше Jenkins Tests ;-) • Потом не будет времени