понедельник, 31 мая 2010 г.

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

воскресенье, 30 мая 2010 г.

Сокрытие информации

Размышление о том, что скрыть, способствует принятию удачных решений на всех уровнях проектирования. Оно подталкивает к применению именованных констант вместо чисел на уровне конструирования, помогает выбирать удачные имена методов классов и их параметров и указывает на грамотные варианты декомпозиции и реализации взаимодействия классов и подсистем на уровне системы.
Почаще задавайте себе вопрос “Что мне скрыть?”, и вы удивитсь, сколько проблем проектирования расстает на ваших глазах.
...
В юбилейном 20-летнем издании книги «Мифически человеко-месяц» Фред Брукс пришел к выводу, что критика сокрытия информации была одной из ошибок, допущенных им в первом издании книги. «Парнас был прав в отношении сокрытия информации, а я ошибался», - признался он (Brooks, 1995).




Программа не должна содержать циклических отношений, при которых класс А использует класс В, класс В использует класс С, а класс С - класс А.

четверг, 27 мая 2010 г.

Желательные характеристики проекта

  • Минимальная сложность
  • Простота сопровождения
  • Слабое сопряжение
  • Расширяемость
  • Возможность повторного использования
  • Высокий коэффициент объединения по входу (к конкретному классу обращается большое число других классов)
  • Низкий или средний коэффициент  разветвления по выходу (конкретный класс обращается к малому или среднему числу других классов)
  • Портируемость
  • Минимальная, но полная функциональность
  • Стратификация (отсутствие в системе лишних частей)
  • Соответствие стандартным методикам