Как стать автором
Обновить

Комментарии 22

You Aren’t Gonna Need It

Категорически нет.
В 90% случаев возможности заложенные код лично мне потом упрощали жизнь.
Исключение — прототип. И то, надо быть точно уверенным что прототип потом не пойдет в продакшн.
Задел на будущее — гарантия успеха. Иначе потом придется лоскутное одеяло шить.

<sarcasm=«on»>
Теперь понятно почему индусский код такой дешевый и такой плохой.
<sarcasm=«off»>
YAGNI работает именно тогда, когда нет объяснений, почему он не должен работать. Проще говоря, если некий абстрактный джун в вакууме не может объяснить, зачем ему та или иная зависимость или конструкция в коде — её следует выкинуть без сожалений. Если может — уже совсем другое дело.

А по мере роста опыта разработки программист так или иначе начинает закладывать больше потенциала на вырост. И при этом может прекрасно объяснить, почему это всё нужно.
В тексте написано не так.
когда вы в них действительно нуждаетесь, а не просто думаете, что они вам могут пригодиться
Скажем так, отквоченное вами можно читать и по-вашему, и по-моему. Вопрос в точной трактовке «нуждаетесь» и «пригодится».
нуждаетесь — это здесь и сейчас.
То что может пригодится позднее очевидно к классу необходимого не относится. В силу определения.
нуждаетесь — это здесь и сейчас.

Но это очевидно неправда. Нуждаться можно и в будущем.

То что может пригодится позднее очевидно к классу необходимого не относится.

То, что может пригодиться — это такое, в чем нет полной уверенности на некотором уровне (разработчика, ПМ, итд). Со всеми вытекающими проблемами, когда на разных уровнях уверенность различная.
Нуждаться можно и в будущем.

Нельзя. Это глагол настоящего времени.
dic.academic.ru/dic.nsf/dmitriev/2901

В любом случае если речь идет о «то в чем вы будете нуждаться позднее», то так и писать/переводить надо было.
Сейчас значение текста совершенно не такое.
Ну да, я открыл оригинал, и полностью с вами согласен — там действительно о том, что если сейчас не надо, то и не делайте. В таком разрезе — в топку это.

В оригинале YAGNI, а не YANI, то есть как раз однозначное указание на будущее время.

Указание на будущее время оригинала — оно как раз о том, что то, что вам понадобится в будущем — не имеет значения сейчас. Весь XP — он про то, чтоб выкатывать что-то показывабельное максимально быстро, про качество и стройность кода там речь идёт только в формате «выкатили? теперь можно и порефакторить».
Указание на будущее время оригинала — оно как раз о том, что то, что вам понадобится в будущем — не имеет значения сейчас.

Тогда как раз на будущее бы никто не указывал.

Если вы можете обосновать, почему оно вам потом понадобится, то это укладывается в "нуждается", которое изначально подразумевалось.
Смысл именно в том, чтобы было конкретное четкое объяснение — зачем.

Ну во первых не «понадобится», а «скорее всего понадобится».
А «скорее всего понадобится» уж точно под нужду не попадает.
Ну и четкое объяснение всегда почти одно и тоже «когда захотим Х — бьудет проще сделать.»
Ну и четкое объяснение всегда почти одно и тоже «когда захотим Х — бьудет проще сделать.»

Так это как раз не объяснение, если только вы не обоснуете, что вы действительно захотите Х (ну, то есть вам будет нужно Х, "хочу" — очевидно, не причина ни для чего), причем в актуальном горизонте планирования. Если никаких причин захотеть Х сформулировать не удастся — отменить, ведь почти наверняка вы в реальности Х не захотите.

Я в реальности не захочу ничего. Захочет заказчик.

Ну вот поскольку он, почти наверняка, не захочет — то делать заранее не надо.

В этом и заключается одно из преимуществ квалификации — знать за заказчика что он захочет.

Тогда, очевидно, вы сможете назвать причину, почему это надо сделать. Не может же он что-то захотеть просто так? Есть причина.

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

Зачем? При чем тут каждая строчка, если мы говорим об архитектурных вопросах?


Просто есть хорошие решение учитывающие будущие правки

И, конечно, все эти решения можно без труда обосновать.

В 90% случаев вам вероятно сообщали о будущих возможностях. YAGNI как раз говорит нам о том что не надо выдумывать то чем бизнес никогда не воспользуется.
Задел на будущее делается по ТЗ и роадмапу. А задумывать к примеру алиэкспресс по ТЗ обычного интернет-магазина это такая себе идея :)
В 90% случаев вам вероятно сообщали о будущих возможностях.

Конечно же нет.
Заказчик не знает нифига. А для меня вполне понятно что и почему он захочет.
Нормальное ТЗ и нормальный RoadMap — это из мира фантазий. Как правило заказчики «передумывают» с завидной регулярностью.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий