TGViewer
iOS Dev iOS Dev @iosdev · 7.91K subscribers
Post #703 3.05K
Правило трёх

ℹ️ Правило трёх или «Три страйка * — и вы проводите рефакторинг» — это эмпирическое правило рефакторинга кода, позволяющее решить, когда следует рефакторить похожие фрагменты кода, чтобы избежать дублирования.

В нем говорится, что два экземпляра похожего кода не требуют рефакторинга, но когда аналогичный код используется три раза, его следует выделить в новую процедуру.

Это правило было популяризировано Мартином Фаулером в книге «Рефакторинг» и приписано Дону Робертсу.

Дублирование считается плохой практикой в ​​программировании, поскольку оно усложняет поддержку кода.

Но попытка преждевременного рефакторинга может привести к выбору неправильной абстракции, что может привести к ухудшению кода по мере появления новых требований и, в конечном итоге, потребует повторного рефакторинга.

Правило подразумевает, что стоимость сопровождения определенно перевешивает стоимость рефакторинга и возможного плохого дизайна, когда есть три копии, и может не перевесить, если есть только две копии.

😂 Моя позиция совпадает с этим правилом. В частности, с тем, что крайне редко бывает чёрное и белое в целом в разработке, и не всегда стоит рефакторить только ради самого процесса.

* три страйка — термин из бейсбола, а не боулинга. Его суть в том, что если бьющий набирает три страйка — это называется страйк-аут (англ. strike-out) — бьющий выбывает из игры.

@iOS Dev
  • 👍 15
  • 🔥 11
  • 💯 4
  • 👏 2
  • ❤‍🔥 1
  • ❤ 1
More from @iosdev
  1. Oct 5, 2026iPhone Duo UIKit Q&A: большая подборка ответов от инженеров Apple 📖 В своём блоге Антон с…
  2. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
  3. Sep 29, 2026⚡️Сегодня ночью десятки тысяч приложений массово начали крашиться из-за либы для аналитики…
  4. Sep 28, 2026От pbxproj к xcproj: разбор конфигураций проекта 📖 В этой статье можно посмотреть на новы…
  5. Sep 25, 2026Симулятор iPhone Duo: тестирование и оптимизация приложения Как только был анонсирован iPh…
  6. Sep 24, 2026Настоящая причина, почему на презентации не показали, как выглядит звонок с iPhone Duo. 😃…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →