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

JavaScript. Code Quality.

Jul 16, 2015

Download

Software

EPAM
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JavaScript. Code Quality.

JavaScript. Качество кода.

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

Page 2: JavaScript. Code Quality.
Page 3: JavaScript. Code Quality.
Page 4: JavaScript. Code Quality.

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

★ Читаемость

JavaScript Patterns, Stoyan Stefanov

“...the few man-hours spent writing the code initially end up in man-weeks spent reading it...”

Page 5: JavaScript. Code Quality.

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

★ Читаемость○ Стиль написания кода○ Документация○ Стандарты кодирования

Page 6: JavaScript. Code Quality.

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

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

Page 7: JavaScript. Code Quality.

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

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

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

Page 8: JavaScript. Code Quality.

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

★ Читаемость★ Производительность★ Соответствие требованиям

Page 9: JavaScript. Code Quality.

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

★ Читаемость★ Производительность★ Соответствие требованиям

○ Процесс разработки○ Непрерывная интеграция

Page 10: JavaScript. Code Quality.

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

★ TDDTODO list (navigation map)Test firstAssert firstFail first

Page 11: JavaScript. Code Quality.

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

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

Page 12: JavaScript. Code Quality.

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

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

Page 13: JavaScript. Code Quality.

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

Page 14: JavaScript. Code Quality.

Инструменты

★ TDD○ mocha + chai + sinonjs○ jasmine○ mutant, mutandis○ protractor○ cucumber-js

Page 15: JavaScript. Code Quality.

mocha + chai + sinonjs

Page 16: JavaScript. Code Quality.

mocha + chai + sinonjs

Page 17: JavaScript. Code Quality.

jasmine

Page 18: JavaScript. Code Quality.

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

Page 19: JavaScript. Code Quality.

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

Реальный код

https://github.com/magnusstubman/mutant

Мутанты

Page 20: JavaScript. Code Quality.

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

Page 21: JavaScript. Code Quality.

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

➢ https://github.com/magnusstubman/mutant➢ https://github.com/saltlab/mutandis/➢ http://pitest.org/ (Java - not JavaScript)

Page 22: JavaScript. Code Quality.

protractor

Page 23: JavaScript. Code Quality.

cucumber-js

Page 24: JavaScript. Code Quality.

cucumber-js

Page 25: JavaScript. Code Quality.

Инструменты

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

кода○ jshint, jslint○ plato○ codepainter, esprima, jscpd

Page 26: JavaScript. Code Quality.
Page 27: JavaScript. Code Quality.

Plato

Page 28: JavaScript. Code Quality.

Plato

Page 29: JavaScript. Code Quality.

Plato

Page 30: JavaScript. Code Quality.

codepainter

Page 31: JavaScript. Code Quality.

Esprima

Page 32: JavaScript. Code Quality.

Esprima + Escodegen

Page 33: JavaScript. Code Quality.

Инструменты

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

○ jsdoc○ docco○ doxx

Page 34: JavaScript. Code Quality.

code docs smells

Page 35: JavaScript. Code Quality.

Инструменты

★ TDD★ Документация★ Производительность

○ chrome-developer-tools○ firebug○ spy-js

Page 36: JavaScript. Code Quality.

Чеклист❏ Соответствие требованиям

❏ TDD❏ TODO list (navigation map)❏ Test first❏ Assert first❏ Fail first

❏ E2e тесты❏ Поддержка кода

❏ Парное программирование, ревью кода❏ Ошибки и проблемы в коде (plato, jshint, jslint)❏ Стиль написания и стандарты кода (codepainter, esprima)

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

Page 37: JavaScript. Code Quality.

twitter:@a_kucherenko, github: kucherenko

Вопросы?