SlideShare a Scribd company logo
1 of 37
JavaScript. Качество
кода.
Андрей Кучеренко, EPAM Systems
Признаки качественного кода
★ Читаемость
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
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

Similar to Java script. code quality. (2)

Программистский подход в дизайне
Программистский подход в дизайнеПрограммистский подход в дизайне
Программистский подход в дизайнеПрофсоUX
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииCEE-SEC(R)
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.ScrumTrek
 
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...
Tech Talks @NSU: Рассказ о разных профессиях в IT-индустрии, или почему не вс...Tech Talks @NSU
 
TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TК°Conf. Организация разработки Frontend. Виталий Слободин.
TК°Conf. Организация разработки Frontend. Виталий Слободин.TKConf
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Development User Group
 
Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Roman Marinsky "Ретроспектива вивчення UI автоматизації"
Roman Marinsky "Ретроспектива вивчення UI автоматизації"Dakiry
 
Лучшие практики на практике
Лучшие практики на практикеЛучшие практики на практике
Лучшие практики на практикеDenis Tuchin
 
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...серёжа пономарёв @ Kuchyn.com.ua junior java developer  программируем по-взро...
серёжа пономарёв @ Kuchyn.com.ua junior java developer программируем по-взро...Sergey Ponomarev
 
kranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDkranonit S15 Vladimir Melnik - Ruby on Rails, BDD
kranonit S15 Vladimir Melnik - Ruby on Rails, BDDKrivoy Rog IT Community
 
Test Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsTest Driven Development in .NET Applications
Test Driven Development in .NET ApplicationsAnton Vidishchev
 
Проходим тест Джоэла
Проходим тест ДжоэлаПроходим тест Джоэла
Проходим тест Джоэла0leGG
 
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной"TDD: Сомнения. Преимущества. Действия." от Юлии Пучниной
"TDD: Сомнения. Преимущества. Действия." от Юлии ПучнинойSCRUMguides
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...e-Legion
 
JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)JavaScript. Introduction (in russian)
JavaScript. Introduction (in russian)Mikhail Davydov
 
Код-ревью в Drupal
Код-ревью в DrupalКод-ревью в Drupal
Код-ревью в DrupalShvetsGroup
 
Профессии в IT
Профессии в ITПрофессии в IT
Профессии в ITSam Faktorovich
 

Similar to Java script. code quality. (2) (20)

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

Java script. code quality. (2)