Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Почему возникает модульность? Потому что каждое соединение имеет цену!

Моделирование возникновения модульности в ходе эволюции дало элегантный, хотя и тривиальный результат: если соединение имеет цену, то модульность возникает, а если соединение цены не имеет, то модульности не будет (http://www.sciencedaily.com/releases/2013/01/130130082300.htm). Это давно понятно инженерам, но промоделировано теперь и для биологических сетей, и заодно проговорено ещё раз явно.

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

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

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

Надо будет подробней про теорию и практику модульности покопать.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 17 comments