Фундаментальная теорема разработки программного обеспечения
Фундаментальная теорема разработки программного обеспечения ( FTSE ) — это термин, придуманный Эндрю Кенигом для описания замечания Батлера Лэмпсона. [1] приписывается Дэвиду Дж. Уилеру : [2]
«Мы можем решить любую проблему, введя дополнительный уровень косвенности ».
Теорема не описывает реальную теорему, которую можно доказать; скорее, это общий принцип управления сложностью посредством абстракции .
Теорему часто дополняют юмористическим предложением «… за исключением проблемы слишком большого количества уровней косвенности», имея в виду тот факт, что слишком много абстракций могут сами по себе создавать проблемы внутренней сложности. Например, использование многоуровневого протоколирования в компьютерных сетях , которое сегодня повсеместно распространено, подвергалось критике способами, типичными для более общих недостатков абстракции. [3] Здесь добавление дополнительных уровней косвенности может привести к тому, что более высокие уровни будут дублировать функциональность нижних уровней , что приведет к неэффективности, а для функциональности одного уровня могут потребоваться данные, присутствующие только на другом уровне, что фундаментально нарушает цель разделения на разные уровни.
Ссылки
[ редактировать ]- ^ Abrahams, David ; Gurtovoy, Aleksey (2005). C++ Template Metaprogramming . Addison Wesley. p. 13.
- ^ Лэмпсон, Батлер . «Принципы проектирования компьютерных систем» .
- ^ Уэйкман, И.; Кроукрофт, Дж.; Ван, З.; Сировица, Д. (январь 1992 г.). «Вредно ли наслоение?». Сеть IEEE : 20–24. дои : 10.1109/65.120719 . S2CID 6631446 .