воскресенье, 1 августа 2010 г.

5/97: Красота заключается в простоте

Это перевод Beauty Is in Simplicity. Автор: Jørn Ølmheim.

Из "97-ми вещей, которые должен знать каждый программист".

Существует одна цитата, которая, как мне кажется, достойна того, чтобы каждый разработчик программного обеспечения знал её и держал близко к сердцу:
Красота стиля, гармонии, изящества и хорошего ритма зависит от простоты. - Платон
Я считаю, что одно это предложение суммирует ценности, к которым мы, как разработчики программного обеспечения, должны стремиться.

Есть ряд вещей, к которым мы стремимся в нашем коде:
  • Читабельность
  • Управляемость
  • Скорость разработки
  • Неуловимое качество красоты
Платон говорит нам, что стимулирующим фактором для всех этих качеств является простота.

Что такое красивый код? Потенциально, это очень субъективный вопрос. Восприятие красоты во многом зависит от индивидуума, так же, как наше восприятие зависит от нас самих. Люди искусства имеют иное восприятие красоты (или, по крайней мере, подход к ней), чем люди, связанные с наукой. Первые подходят к красоте в программном обеспечении, сравнивая программирование с искусством, вторые же предпочитают говорить о симметрии, золотой пропорции, пытаясь свести всё к числам. По моему опыту, простота является основой для большинства аргументов с обеих сторон.

Подумайте об исходном коде, что вы изучали. Если вы не тратили время на изучение кода других людей, то перестаньте читать прямо сейчас - найдите открытый исходный код для чтения. Серьезно! Я действительно имею это в виду! Идите поищите в сети код на любом языке на ваш выбор, написанным каким-нибудь хорошо известным экспертом.

Вернулись? Хорошо. На чём мы остановились? Ах, да... Я обнаружил, что код, который резонирует со мной и который я считаю красивым, имеет ряд общих свойств. Главным из них является простота. Я считаю, что какими бы сложными не были бы приложение или система, отдельные части должны быть простыми. Простые объекты с единственной ответственностью, содержащие такие же простые, сфокусированные методы с описательными именами. Некоторые люди считают, что идея кода с короткими методами в пять-десять строк - это перебор, и в некоторых языках такие методы писать тяжело, но я думаю, что такая краткость, тем не менее, является желанной целью.

Суть заключается в том, что красивый код - это простой код. Каждая отдельная часть проста, благодаря единственной обязанности и простым отношениям с другими частями системы. Именно так мы сможем сохранить наши системы простыми в обслуживании с течением времени, с чистым, простым, тестируемый кодом, сохраняя высокие темпы разработки в течение всего срока службы системы.

Красота рождается и основывается на простоте.

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.