Тематические статьи →

Принцип программирования YAGNI — you ain’t gonna need it (Вам это не понадобится)

Если упро­щен­но, то сле­до­ва­ние дан­ному прин­ципу заклю­ча­ется в том, что воз­мож­но­сти, кото­рые не опи­саны в тре­бо­ва­ниях к систе­ме, про­сто не должны реа­ли­зо­вы­вать­ся. Это поз­во­ляет вести раз­ра­бот­ку, руко­вод­ству­ясь эко­но­ми­че­скими кри­те­ри­ями — Заказ­чик не дол­жен опла­чи­вать ненуж­ные ему функ­ции, а раз­ра­бот­чики не должны тра­тить своё опла­чи­ва­е­мое время на реа­ли­за­цию того, что не требуется.

Основ­ная про­бле­ма, кото­рую решает принцип YAGNI — это устра­не­ние тяги про­грам­ми­стов к излиш­ней абстрак­ции, к экс­пе­ри­мен­там «из инте­реса» и к реа­ли­за­ции функ­ци­о­на­ла, кото­рый сей­час не нужен, но, по мне­нию раз­ра­бот­чи­ка, может либо вскоре пона­до­бить­ся, либо про­сто будет поле­зен, хотя в реаль­но­сти такого очень часто не про­ис­хо­дит.

«Бес­плат­ных» функ­ций в про­грамм­ных про­дук­тах про­сто не быва­ет. Если рас­смат­ри­вать мате­ри­аль­ную сто­ро­ну, то любые ненуж­ные, но фак­ти­че­ски реа­ли­зо­ван­ные «фичи» опла­чи­ва­ются либо Заказ­чи­ком (в бюд­жет закла­ды­ва­ются рас­ходы на те функ­ции, кото­рые не нужны), либо Испол­ни­те­лем из при­были по про­ек­ту. И тот, и дру­гой вари­анты с точки зре­ния биз­неса невер­ны. Если же гово­рить о нема­те­ри­аль­ных затра­тах, то любые «бонус­ные» воз­мож­но­сти услож­няют сопро­вож­де­ние, уве­ли­чи­вают веро­ят­ность оши­бок и услож­няют вза­и­мо­дей­ствие с про­дук­том, — между объ­ё­мом кодо­вой базы и опи­сан­ными харак­те­ри­сти­ками есть пря­мая зави­си­мо­сть. Больше напи­сан­ного кода — труд­нее сопро­вож­дать и выше веро­ят­ность появ­ле­ния «багов», тут очень уместна пого­вор­ка: «луч­ший код — это нена­пи­сан­ный код».

Принципы YAGNI и KISS очень похо­жи, если KISS наце­лен на упро­ще­ние и поле­зен в плане работы с теми тре­бо­ва­ни­я­ми, кото­рые имеют место быть, то YAGNI более кате­го­ри­чен и при­ме­ня­ется для ограж­де­ния про­ек­тов по раз­ра­ботке ПО от «раз­мы­ва­ния» их рамок.

Под­ход к реа­ли­за­ции про­ек­тов строго по ТЗ верен с несколь­ких ракур­сов. Заказ­чик не дол­жен пла­тить за то, что ему не надо, а про­дукт дол­жен быть мак­си­мально сопро­вож­даем и его каче­ство не должно стра­дать от инте­гра­ции ненуж­ных функ­ций.

Поделитесь с друзьями:


Информация о публикации:

Материал опубликован в 2014 году. Эта статья о веб-разработке, про фронтенд-разработку и про бэкенд-разработку. При пере­пуб­ли­ка­ции обя­за­тельно ука­за­ние пер­во­ис­точ­ника в виде гипер­тек­сто­вой ссылки на сайт web-creator.ru

Воспользуйтесь нашими
знаниями и опытом

Отправьте нам сообщение при помощи формы. Или напишите на e-mail s@web-creator.ru

Мы максимально оперативно ответим Вам по электронной почте или перезвоним.

При отправке сообщения через форму, укажите пожалуйста предпочтительный способ связи с Вами: телефон или адрес электронной почты. Мы сможем ответить Вам подробнее, если Вы напишете что-то о запланированном проекте или предполагаемых задачах.

Либо просто позвоните нам по номеру: +7 495 215-1501

Мы работаем по будним дням с 10 до 19 часов.

Комплексные услуги

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