java script. code quality. (2)

37
JavaScript. Качество кода. Андрей Кучеренко, EPAM Systems

Upload: andrey-kucherenko

Post on 16-Jul-2015

329 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Java script. code quality. (2)

JavaScript. Качество

кода.

Андрей Кучеренко, EPAM Systems

Page 2: Java script. code quality. (2)
Page 3: Java script. code quality. (2)
Page 4: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость

JavaScript Patterns, Stoyan Stefanov

“...the few man-hours spent writing the code

initially end up in man-weeks spent reading

it...”

Page 5: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость○ Стиль написания кода

○ Документация

○ Стандарты кодирования

Page 6: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость

★ Производительность

Page 7: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость

★ Производительность○ DOM

○ Память (переменные, замыкания)

○ ...

Page 8: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость

★ Производительность

★ Соответствие требованиям

Page 9: Java script. code quality. (2)

Признаки качественного кода

★ Читаемость

★ Производительность

★ Соответствие требованиям○ Процесс разработки

○ Непрерывная интеграция

Page 10: Java script. code quality. (2)

Процесс разработки

★ TDD

TODO list (navigation map)

Test first

Assert first

Fail first

Page 11: Java script. code quality. (2)

Процесс разработки

★ TDD

★ Парное программирование

Page 12: Java script. code quality. (2)

Процесс разработки

★ TDD

★ Парное программирование

★ Baby steps

Page 13: Java script. code quality. (2)

Непрерывная интеграция

Page 14: Java script. code quality. (2)

Инструменты

★ TDD○ mocha + chai + sinonjs

○ jasmine

○ mutant, mutandis

○ protractor

○ cucumber-js

Page 15: Java script. code quality. (2)

mocha + chai + sinonjs

Page 16: Java script. code quality. (2)

mocha + chai + sinonjs

Page 17: Java script. code quality. (2)

jasmine

Page 18: Java script. code quality. (2)

Покрытие кода тестами

Page 19: Java script. code quality. (2)

Мутационное тестирование

Реальный

кодhttps://github.com/magnusstubman/mutant

Мутанты

Page 20: Java script. code quality. (2)

Мутационное тестирование

Page 21: Java script. code quality. (2)

Мутационное тестирование

➢https://github.com/magnusstubman/mutant

➢https://github.com/saltlab/mutandis/

➢http://pitest.org/ (Java - not JavaScript)

Page 22: Java script. code quality. (2)

protractor

Page 23: Java script. code quality. (2)

cucumber-js

Page 24: Java script. code quality. (2)

cucumber-js

Page 25: Java script. code quality. (2)

Инструменты

★ TDD

★ Стили, стандарты, дубликаты, анализ

кода○ jshint, jslint

○ plato

○ codepainter, esprima, jscpd

Page 26: Java script. code quality. (2)
Page 27: Java script. code quality. (2)

Plato

Page 28: Java script. code quality. (2)

Plato

Page 29: Java script. code quality. (2)

Plato

Page 30: Java script. code quality. (2)

codepainter

Page 31: Java script. code quality. (2)

Esprima

Page 32: Java script. code quality. (2)

Esprima + Escodegen

Page 33: Java script. code quality. (2)

Инструменты

★ TDD

★ Документация○ jsdoc

○ docco

○ doxx

Page 34: Java script. code quality. (2)

code docs smells

Page 35: Java script. code quality. (2)

Инструменты

★ TDD

★ Документация

★ Производительность○ chrome-developer-tools

○ firebug

○ spy-js

Page 36: Java script. code quality. (2)

Чеклист

❏ Соответствие требованиям❏ TDD

❏ TODO list (navigation map)

❏ Test first

❏ Assert first

❏ Fail first

❏ E2e тесты

❏ Поддержка кода❏ Парное программирование, ревью кода

❏ Ошибки и проблемы в коде (plato, jshint, jslint)

❏ Стиль написания и стандарты кода (codepainter, esprima)

❏ Производительность

Page 37: Java script. code quality. (2)

twitter:@a_kucherenko, github: kucherenko

Вопросы?