| Сайт Игоря Кононученко → | Статьи ↓ |
Симметрия кода17 ноября 2008 |
|
Прочитал книгу Кента Бека «Implementation Patterns», у нас почему-то названную «Шаблоны интеграции корпоративных приложений». Коэффициент полезного содержания в этой книге, по какой-то причине, оказался меньшим чем я рассчитывал (возможно, прочитанное будет вылазить из недр сознания позже). Тем не менее, мысль о симметрии в коде, мне понравилась. Возможно, термин «однородность кода» ходит где-то рядом. Симметричный код читать легче. Например, зная один метод, можно предположить, что ему есть пара: enable, disable; add, remove; undo, redo и так далее. Симметричность может проявляться не только в именах-антонимах, но и в логике кода. Возьму книжный пример (вдобавок мое вольное изложение на основе воспринятого):
Код не симметричен: count++ дает слишком много детализации по сравнению с input и output.
Теперь попробую применить к своему коду (внимание, эксперементальный юмор): Джаваскриптовый метод, создающий штмл для вывода городов в выпадающем списке.
Промежуточная версия кода была бы куда менее близка к симметрии:
А вот финальная версия, с точки зрения детализации, является симметричной:
|