Это одиннадцатый Шаг к получению серии Programming Enlightenment . Если вы не выучили Десятый шаг, прочтите его.

«Соотношение времени, затрачиваемого на чтение (код) и его написание, значительно превышает 10 к 1… (поэтому) чем проще читать, тем легче писать». ~ Дядя Боб.

Мы часто попадаем в этот бесконечный цикл чтения и перечитывания кода снова и снова. Это происходит, когда мы новичок в кодовой базе, которая плохо написана, даже если она работает так, как ожидалось. Время, затрачиваемое на разработку, намного меньше по сравнению с чтением кода.

Обратите внимание на следующий фрагмент кода

if (portfolioIdsByTraderId.get(trader.getId())
  .containsKey(portfolio.getId())) {...}

Что мы из этого понимаем. Ничто не может быть выведено, что делает конкретный метод. Нам нужно покопаться в объявлении portIdsByTraderId, чтобы понять, что он делает, потратив некоторое время на это конкретное объявление.

Снова обратите внимание на следующий фрагмент кода

if (trader.canView(portfolio)) {...}

Мы можем напрямую сделать вывод, что если трейдер может просматривать, он обрабатывает метод. Логика, может ли трейдер просматривать или нет, является частью бизнеса трейдера, и в данный момент нам не нужно сильно заботиться.

Какую базу кода вы хотите прочитать?

Идея в том, что делая код более чистым, мы делаем его читабельным. С ООП мы получили всю мощь определяемых пользователем типов. Это дало нам концепции предметной области, такие как Trader, Portfolio, структуры данных которых отличаются от той, что предоставляет платформа, например биты, байты, массивы и строки.

Все эти пользовательские доменные объекты должны иметь типы данных, которые определяют их в реальном мире. Перенести их в структуры данных на уровне платформы и сделать их понятными — это цель сделать код читабельным.

Внутренняя работа таких определяемых пользователем типов данных — это структуры данных, предоставляемые платформой, но нам необходимо инкапсулировать их с помощью определенной пользователем доменной типизированной. Это не только облегчает чтение, но и упрощает тестирование.

Как узнать, написали ли вы читабельный код?

  • Пройдите самостоятельную Проверку кода и посмотрите на изменения, потому что Самооценка — лучшая оценка.
  • Отправьте его на экспертную оценку и получите отзывы. Всегда здорово иметь вторую пару глаз.
  • Вернитесь к коду через некоторое время и посмотрите, понимаете ли вы, что сделали. Если ДА, это было читабельно, в противном случае рефакторинг.
  • Проверьте, соответствует ли он принципам S.O.L.I.D и D.R.Y.

TL;DR Программист, который через несколько месяцев придет работать над кодом, будет вам благодарен. Программистом, который появится через несколько месяцев, можете быть вы.

Перейти к сериалу.

Перейдите к Десятый шаг.

Перейдите к Двенадцатому шагу.

Ссылки: