YAGNI

Поделись знанием:
Перейти к: навигация, поиск

YAGNI («You ain't gonna need it»; с англ. — «Вам это не понадобится») — процесс и принцип проектирования ПО, при котором в качестве основной цели и/или ценности декларируется отказ от избыточной функциональности, — то есть отказ добавления функциональности, в которой нет непосредственной надобности.



Обоснование

Согласно адептам принципа YAGNI, желание писать код, который не нужен прямо сейчас, но может понадобиться в будущем, приводит к следующим нежелательным последствиям:

  • Тратится время, которое было бы затрачено на добавление, тестирование и улучшение необходимой функциональности.
  • Новые функции должны быть отлажены, документированы и сопровождаться.
  • Новая функциональность ограничивает то, что может быть сделано в будущем, — ненужные новые функции могут впоследствии помешать добавить новые нужные.
  • Пока новые функции действительно не нужны, трудно полностью предугадать, что они должны делать, и протестировать их. Если новые функции тщательно не протестированы, они могут неправильно работать, когда впоследствии понадобятся.
  • Это приводит к тому, что программное обеспечение становится более сложным (подчас чрезмерно сложным).
  • Если вся функциональность не документирована, она может так и остаться неизвестной пользователям, но может создать для безопасности пользовательской системы различные риски.
  • Добавление новой функциональности может привести к желанию ещё более новой функциональности, приводя к эффекту «снежного кома».

См. также

Напишите отзыв о статье "YAGNI"

Ссылки

  • [www.citforum.ru/SE/project/design_dead/#NDC Нарушает ли рефакторинг принцип YAGNI?]


Отрывок, характеризующий YAGNI

Через полтора часа времени большинство игроков уже шутя смотрели на свою собственную игру.
Вся игра сосредоточилась на одном Ростове. Вместо тысячи шестисот рублей за ним была записана длинная колонна цифр, которую он считал до десятой тысячи, но которая теперь, как он смутно предполагал, возвысилась уже до пятнадцати тысяч. В сущности запись уже превышала двадцать тысяч рублей. Долохов уже не слушал и не рассказывал историй; он следил за каждым движением рук Ростова и бегло оглядывал изредка свою запись за ним. Он решил продолжать игру до тех пор, пока запись эта не возрастет до сорока трех тысяч. Число это было им выбрано потому, что сорок три составляло сумму сложенных его годов с годами Сони. Ростов, опершись головою на обе руки, сидел перед исписанным, залитым вином, заваленным картами столом. Одно мучительное впечатление не оставляло его: эти ширококостые, красноватые руки с волосами, видневшимися из под рубашки, эти руки, которые он любил и ненавидел, держали его в своей власти.
«Шестьсот рублей, туз, угол, девятка… отыграться невозможно!… И как бы весело было дома… Валет на пе… это не может быть!… И зачем же он это делает со мной?…» думал и вспоминал Ростов. Иногда он ставил большую карту; но Долохов отказывался бить её, и сам назначал куш. Николай покорялся ему, и то молился Богу, как он молился на поле сражения на Амштетенском мосту; то загадывал, что та карта, которая первая попадется ему в руку из кучи изогнутых карт под столом, та спасет его; то рассчитывал, сколько было шнурков на его куртке и с столькими же очками карту пытался ставить на весь проигрыш, то за помощью оглядывался на других играющих, то вглядывался в холодное теперь лицо Долохова, и старался проникнуть, что в нем делалось.