SlideShare a Scribd company logo
JavaScript. Качество
кода.
Андрей Кучеренко, EPAM Systems
JavaScript. Code Quality.
JavaScript. Code Quality.
Признаки качественного кода
★ Читаемость
JavaScript Patterns, Stoyan Stefanov
“...the few man-hours spent writing the
code initially end up in man-weeks spent
reading it...”
Признаки качественного кода
★ Читаемость
○ Стиль написания кода
○ Документация
○ Стандарты кодирования
Признаки качественного кода
★ Читаемость
★ Производительность
Признаки качественного кода
★ Читаемость
★ Производительность
○ DOM
○ Память (переменные, замыкания)
○ ...
Признаки качественного кода
★ Читаемость
★ Производительность
★ Соответствие требованиям
Признаки качественного кода
★ Читаемость
★ Производительность
★ Соответствие требованиям
○ Процесс разработки
○ Непрерывная интеграция
Процесс разработки
★ TDD
TODO list (navigation map)
Test first
Assert first
Fail first
Процесс разработки
★ TDD
★ Парное программирование
Процесс разработки
★ TDD
★ Парное программирование
★ Baby steps
Непрерывная интеграция
Инструменты
★ TDD
○ mocha + chai + sinonjs
○ jasmine
○ mutant, mutandis
○ protractor
○ cucumber-js
mocha + chai + sinonjs
mocha + chai + sinonjs
jasmine
Покрытие кода тестами
Мутационное тестирование
Реальный код
https://github.com/magnusstubman/mutant
Мутанты
Мутационное тестирование
Мутационное тестирование
➢ https://github.com/magnusstubman/mutant
➢ https://github.com/saltlab/mutandis/
➢ http://pitest.org/ (Java - not JavaScript)
protractor
cucumber-js
cucumber-js
Инструменты
★ TDD
★ Стили, стандарты, дубликаты, анализ
кода
○ jshint, jslint
○ plato
○ codepainter, esprima, jscpd
JavaScript. Code Quality.
Plato
Plato
Plato
codepainter
Esprima
Esprima + Escodegen
Инструменты
★ TDD
★ Документация
○ jsdoc
○ docco
○ doxx
code docs smells
Инструменты
★ TDD
★ Документация
★ Производительность
○ chrome-developer-tools
○ firebug
○ spy-js
Чеклист
❏ Соответствие требованиям
❏ TDD
❏ TODO list (navigation map)
❏ Test first
❏ Assert first
❏ Fail first
❏ E2e тесты
❏ Поддержка кода
❏ Парное программирование, ревью кода
❏ Ошибки и проблемы в коде (plato, jshint, jslint)
❏ Стиль написания и стандарты кода (codepainter, esprima)
❏ Производительность
twitter:@a_kucherenko, github: kucherenko
Вопросы?

More Related Content

PDF
Повышаем и следим за качеством PHP кода
PPTX
Как писать на PHP и не стать быдло-кодером
PDF
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
PDF
1. ruby великолепный. вступление история и философия
PDF
Роберт Харитонов — Отдел вёрстки с нуля
PDF
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
PPTX
Refactoring Legacy Code - Breaking Dependencies Techniques
PDF
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
Повышаем и следим за качеством PHP кода
Как писать на PHP и не стать быдло-кодером
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
1. ruby великолепный. вступление история и философия
Роберт Харитонов — Отдел вёрстки с нуля
SECON'2014 - Кирилл Мокевнин - Формирование инженерной культуры
Refactoring Legacy Code - Breaking Dependencies Techniques
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?

Viewers also liked (9)

PDF
Responsive Web in Brief
PPTX
“Xcore (library) for android platform” by Uladzimir Klyshevich
PPSX
Produzione software - La configurazione
PPTX
DevBoss Presentation Slides February 2017
PDF
Mobile Smart Streaming
PPTX
Epam presentation
PDF
Личный бренд HR-а
PDF
Halloween Costumes Spendings
PPT
EPAM Systems interview questions and answers
Responsive Web in Brief
“Xcore (library) for android platform” by Uladzimir Klyshevich
Produzione software - La configurazione
DevBoss Presentation Slides February 2017
Mobile Smart Streaming
Epam presentation
Личный бренд HR-а
Halloween Costumes Spendings
EPAM Systems interview questions and answers
Ad

Similar to JavaScript. Code Quality. (20)

PPTX
Программистский подход в дизайне
PPTX
Повышение качества тестов и автоматическая валидация REST API документации
PDF
Алексей Лустин. Непрерывная проверка качества кода.
PDF
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
PDF
TК°Conf. Организация разработки Frontend. Виталий Слободин.
PPTX
От экспериментального программирования к промышленному: путь длиной в 10 лет
ODP
Coding dojo
PDF
От экспериментального программирования к промышленному: путь длиной в 10 лет
PPTX
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
PPTX
Лучшие практики на практике
PDF
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
PDF
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
PPTX
Test Driven Development in .NET Applications
PDF
Проходим тест Джоэла
PDF
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
PDF
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
PDF
JavaScript. Introduction (in russian)
PPTX
Код-ревью в Drupal
PDF
Профессии в IT
Программистский подход в дизайне
Повышение качества тестов и автоматическая валидация REST API документации
Алексей Лустин. Непрерывная проверка качества кода.
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
TК°Conf. Организация разработки Frontend. Виталий Слободин.
От экспериментального программирования к промышленному: путь длиной в 10 лет
Coding dojo
От экспериментального программирования к промышленному: путь длиной в 10 лет
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Лучшие практики на практике
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
Test Driven Development in .NET Applications
Проходим тест Джоэла
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
JavaScript. Introduction (in russian)
Код-ревью в Drupal
Профессии в IT
Ad

More from EPAM (8)

PDF
Continuous integration for JavaScript projects
PDF
Visualization of Big Data in Web Apps
PDF
Object Oriented Concepts in Real Projects
PDF
Modern web applications infrastructure
PPTX
Reactive Extensions: classic Observer in .NET
PPTX
SOLID Principles in the real world
PDF
Future of the Future of E-Commerce
PDF
Bootify Yyour App from Zero to Hero
Continuous integration for JavaScript projects
Visualization of Big Data in Web Apps
Object Oriented Concepts in Real Projects
Modern web applications infrastructure
Reactive Extensions: classic Observer in .NET
SOLID Principles in the real world
Future of the Future of E-Commerce
Bootify Yyour App from Zero to Hero

JavaScript. Code Quality.