Практичное качество кода — в коммуникации и разработке

Андрей «Rarst» Савченко, WordPress Kyiv Meetup 2020–01

практичное качество кода
в коммуникации и разработке

Андрей «Rarst» Савченко

не такой доклад

Качество
степень в которой система свободна от дефектов, относительно сферы её функций.

Качественный код

качественный
код работает

Код который работает

Цели кода

  1. Сформулированы
  2. Изложены
  3. Выполнены

Само–документирующий код?

качественный
код читаемый

Порядок

  1. Прочитать
  2. Понять
  3. Изменить

PSR–12

Стили кода для форматирования и привычности.

WordPress Coding Standards

Стандарты кода для правил и соглашений.

CS = индустрияглупое

качественный
код простой

Предположение

Код это актив.

Реальность

Код это риск.

Цикломатическая сложность

Число путей в коде,
измеряет сложность тестирования.

Когнитивная сложность

Оценка сложности для человека,
измеряет сложность понимания.

качественный
код типобезопасен

История типов

  1. PHP 5: класс/интерфейс, array, callable
  2. PHPDoc: объединение, пересечение, скалярные...
  3. PHP 7: скалярные, iterable, object
  4. Psalm: сложные массивы, шаблоны
  5. PHP 8: объединение

Современность

Поддержка языком, статический анализ,
высокое покрытие.

Историческое

Нет обработки исключений, небезопасные API.

качественный
код с тестами

Навыки тестирования

Миф

Тесты универсально хороши.

Правда

Плохие тесты могут быть
хуже чем никаких.

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

Пример стека

качество кода
это мета процесс

Спасибо что выслушали! Вопросы?

Rarst.net
twitter.com/Rarst


Rarst.net/slides/code-quality-ru