[#] [Перевод] Главные характеристики качественного кода
habrabot(difrex,1) — All
2016-09-19 14:30:04


![][1]



Как часто вы поражаетесь, читая чужой код, и думаете «господи, ну и каша...». Скорее всего, достаточно часто. И можете ли вы быть уверенным, что никто не думал также когда читал ваш код? Другими словами, насколько вы уверены в чистоте своего кода? Можно быть уверенным только если полностью понимаешь, что значит чистый код.



Сложно дать точное определение чистому коду, и, скорее всего, сколько программистов — столько определений. Однако, некоторые принципы достаточно универсальны. Я собрал девять самых релевантных и описал ниже.



## 1\.Плохой код делает слишком много, чистый код сфокусирован



Каждый класс, метод и любая другая сущность должна оставаться неискаженной. Она должна следовать [принципу единственной обязанности][2]. Вкратце, можно сказать так: если подумать о причинах изменения класса, то нельзя придумать больше одной хорошей причины.



Но я бы не ограничивал определение классами. В свой последней статье [Ральф Вестфал (Ralf Westphal)][3] представил более широкое определение принципа единственной обязанности:


> Функциональная единица на определенном уровне абстракции должна отвечать за один аспект требований системы. Аспект требований это признак или свойство требования, которое может изменяться независимо от других аспектов. [Читать дальше →][4]

[1]: https://habrastorage.org/files/f17/84e/490/f1784e490a254fc582021a28cbb33863.jpg
[2]: https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%B5%D0%B4%D0%B8%D0%BD%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9_%D0%BE%D0%B1%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8
[3]: http://www.developerfusion.com/profile/ralfw/
[4]: https://habrahabr.ru/post/310336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut