суббота, 10 сентября 2011 г.

Еще раз о повторном использовании

Сегодня открыл книгу “банды четырех”, чтобы уточнить определение одного из паттернов проектирования и в первой же главе увидел выделенную когда-то цитату:

Поднаторевшие в объектно-ориентированном проектировании разработчики скажут вам, что обеспеччить “правильный”, то есть в достаточной мере гибкий и пригодный для повторного использования дизайн, с первого раза трудно, если вообще возможно. Прежде чем считать цель достигнутой, они обычно пытаются опробовать найденное решение на нескольких задачах, и каждый раз модифицируют его.

Эрик Липперт, один из разработчиков компилятора C# очень часто говорит о проблеме “преждевременного обобщения” (premature generialization), с которой я, например, сталкиваюсь постоянно.

Многие разработчики разрабатывают повторноиспользуемые компоненты (или выделяют их из своего приложения) принимая во внимание лишь один кейс использования. Они пытаются предсказать будущее, рассматривая какие-то гипотетические кейсы использования или делают “задел на будущее”, который никогда не понадобится. В итоге “библиотечный код” получается излишне сложным и совсем не таким “повторноиспользуемым”, как о нем думал его разработчик.

3 комментария:

  1. Как по мне, основной целью обобщения, всё-таки, является упрощение понимания, а не повторное использование.

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

    ОтветитьУдалить
  3. Las Vegas Hotel & Casino: Hotels Near Casino - JamBase
    Find all the 서산 출장샵 best 수원 출장샵 prices on 경상남도 출장안마 Las Vegas Hotel & Casino in Las Vegas and get detailed customer 안양 출장안마 reviews, videos, 구미 출장마사지 photos and more at the

    ОтветитьУдалить