Принцип разработки программного обеспечения
« Это вам не понадобится » [1] [2] ( YAGNI ) [3] — принцип, возникший в экстремальном программировании (XP), который гласит, что программист не должен добавлять функциональность, пока это не будет сочтено необходимым. [4] Другие формы фразы включают «Это вам не понадобится» (YAGTNI) [5] [6] и «Это вам не понадобится». [7]
Рон Джеффрис , соучредитель XP, объяснил философию: «Всегда реализуйте вещи, когда они вам действительно нужны, а не тогда, когда вы просто предвидите, что они вам [понадобятся]». [8] Джон Кармак писал: «Менее опытным разработчикам трудно оценить, как редко проектирование с учетом будущих требований/приложений оказывается в конечном итоге положительным». [9]
Контекст
YAGNI — это принцип, лежащий в основе практики XP «делай самую простую вещь, которая могла бы работать» (DTSTTCPW). [2] [3] Он предназначен для использования в сочетании с несколькими другими практиками, такими как непрерывный рефакторинг , непрерывное автоматизированное модульное тестирование и непрерывная интеграция . Использование без непрерывного рефакторинга может привести к дезорганизации кода и массивной переработке, известной как технический долг . [ требуется ссылка ] Зависимость YAGNI от поддерживающих практик является частью первоначального определения XP.
Смотрите также
Ссылки
- ^ Extreme Programming Installed , Джеффрис, Рональд Э.; Энн Андерсон, Чет Хендриксон (2001). 265 страниц, стр. 190, веб-страница: Books-Google-dIsC, цитата: "YAGNI: „Вам это не понадобится“. Этот слоган, один из самых известных в XP..., напоминает нам всегда работать над историей, которая у нас есть, а не над чем-то, что, как мы думаем, нам понадобится".
- ^ ab Extreme Programming tested , Succi, Giancarlo; Michele Marchesi, 2001, 569 страниц, веб-страница: Books-Google-VSCh, цитата: «XP говорит: «делайте самую простую вещь, которая может сработать», потому что «вам это не понадобится».
- ^ ab Объектно-ориентированная и классическая программная инженерия , Шах, Стивен Р. (2007). 618 страниц, стр., веб-страница: Book-Google-hWwh, цитата: «Две аббревиатуры, которые сейчас ассоциируются с экстремальным программированием, — это YAGNI (вам это не понадобится) и DTSTTCPW (сделай самую простую вещь, которая могла бы сработать)».
- ^ Линдстром, Лоуэлл; Кармен Занньер; Эрдогмус, Хакан, ред. (2004). Экстремальное программирование и гибкие методы – XP/Agile Universe 2004: 4-я конференция по экстремальному программированию и гибким методам . Конспект лекций по информатике. Берлин: Springer. стр. 121. ISBN 3-540-22839-X.
- ^ Фаулер, Мартин ; Кент Бек (8 июля 1999 г.). Рефакторинг: улучшение дизайна существующего кода . Addison-Wesley Professional, 431 страница, стр. 68, веб-страница: BGoogle-1M. ISBN 978-0201485677 . Цитата: «вам это не понадобится».
- ^ Поппендик, Мэри; Том Поппендик (2003). Lean Software Development: An Agile Toolkit , стр. 59, веб-страница: BGoogle-hQ. Цитата: « Кент Бек , Extreme Programming Explained , Глава 17, использует аббревиатуру YAGNI (You Aren't Going to Need It) для этой практики и объясняет ее обоснование».
- ^ Олсен, Расс (2007). Шаблоны проектирования в Ruby , стр. 13, веб-страница: [1]. ISBN 9780321490452. Цитата: «Этот принцип проектирования пришел из мира экстремального программирования и элегантно суммируется фразой You Ain't Gonna Need It (YAGNI для краткости)».
- ↑ Джеффрис, Рон (4 апреля 1998 г.). «Тебе это НЕ понадобится!» . Получено 07.11.2007 .
- ^ Кармак, Джон [@ID_AA_Carmack] (18 июня 2021 г.). «Менее опытным разработчикам трудно оценить, как редко архитектура для будущих требований/приложений оказывается чистой. https://t.co/lusGdzkfd3» ( Твит ). Архивировано из оригинала 16 августа 2022 г. Получено 2 декабря 2022 г. – через Twitter .