Комментарии 22
You Aren’t Gonna Need It
Категорически нет.
В 90% случаев возможности заложенные код лично мне потом упрощали жизнь.
Исключение — прототип. И то, надо быть точно уверенным что прототип потом не пойдет в продакшн.
Задел на будущее — гарантия успеха. Иначе потом придется лоскутное одеяло шить.
<sarcasm=«on»>
Теперь понятно почему индусский код такой дешевый и такой плохой.
<sarcasm=«off»>
А по мере роста опыта разработки программист так или иначе начинает закладывать больше потенциала на вырост. И при этом может прекрасно объяснить, почему это всё нужно.
когда вы в них действительно нуждаетесь, а не просто думаете, что они вам могут пригодиться
То что может пригодится позднее очевидно к классу необходимого не относится. В силу определения.
нуждаетесь — это здесь и сейчас.
Но это очевидно неправда. Нуждаться можно и в будущем.
То что может пригодится позднее очевидно к классу необходимого не относится.
То, что может пригодиться — это такое, в чем нет полной уверенности на некотором уровне (разработчика, ПМ, итд). Со всеми вытекающими проблемами, когда на разных уровнях уверенность различная.
Нуждаться можно и в будущем.
Нельзя. Это глагол настоящего времени.
dic.academic.ru/dic.nsf/dmitriev/2901
В любом случае если речь идет о «то в чем вы будете нуждаться позднее», то так и писать/переводить надо было.
Сейчас значение текста совершенно не такое.
В оригинале YAGNI, а не YANI, то есть как раз однозначное указание на будущее время.
Если вы можете обосновать, почему оно вам потом понадобится, то это укладывается в "нуждается", которое изначально подразумевалось.
Смысл именно в том, чтобы было конкретное четкое объяснение — зачем.
А «скорее всего понадобится» уж точно под нужду не попадает.
Ну и четкое объяснение всегда почти одно и тоже «когда захотим Х — бьудет проще сделать.»
Ну и четкое объяснение всегда почти одно и тоже «когда захотим Х — бьудет проще сделать.»
Так это как раз не объяснение, если только вы не обоснуете, что вы действительно захотите Х (ну, то есть вам будет нужно Х, "хочу" — очевидно, не причина ни для чего), причем в актуальном горизонте планирования. Если никаких причин захотеть Х сформулировать не удастся — отменить, ведь почти наверняка вы в реальности Х не захотите.
Ну вот поскольку он, почти наверняка, не захочет — то делать заранее не надо.
Тогда, очевидно, вы сможете назвать причину, почему это надо сделать. Не может же он что-то захотеть просто так? Есть причина.
Просто есть хорошие решение учитывающие будущие правки и есть плохие решения для «здесь и сейчас».
Задел на будущее делается по ТЗ и роадмапу. А задумывать к примеру алиэкспресс по ТЗ обычного интернет-магазина это такая себе идея :)
Как писать хороший и понятный код: 3 простых способа для программиста