HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>"Шаблоны проектирования" (или "паттерны") стали неотъемлемой частью современной разработки.</p>
1 <p>"Шаблоны проектирования" (или "паттерны") стали неотъемлемой частью современной разработки.</p>
2 <blockquote><p>Шаблон проектирования или паттерн (англ. design pattern) в разработке программного обеспечения - повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. (Wiki)</p>
2 <blockquote><p>Шаблон проектирования или паттерн (англ. design pattern) в разработке программного обеспечения - повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. (Wiki)</p>
3 </blockquote><p>Простым языком, определение звучит так: типовое решение для типовой задачи. Термин пришел в программирование из архитектуры. В 1970-е годы архитектор Кристофер Александр составил набор шаблонов проектирования, типовых решений для различных архитектурных задач. Спустя полтора десятка лет эта идея была заимствована и адаптирована применительно к разработке графических оболочек языка SmallTalk. Сейчас паттерны встречаются повсеместно, постоянно изобретаются и переизобретаются. Некоторые из них описывают задачи, связанные с небольшим участком кода, другие определяют, например, способы работы в распределенных системах. Причем последние отвязаны от языка программирования. Интересный факт: некоторые шаблоны в языках появились вследствие ограничений самих языков и пытаются обойти их.</p>
3 </blockquote><p>Простым языком, определение звучит так: типовое решение для типовой задачи. Термин пришел в программирование из архитектуры. В 1970-е годы архитектор Кристофер Александр составил набор шаблонов проектирования, типовых решений для различных архитектурных задач. Спустя полтора десятка лет эта идея была заимствована и адаптирована применительно к разработке графических оболочек языка SmallTalk. Сейчас паттерны встречаются повсеместно, постоянно изобретаются и переизобретаются. Некоторые из них описывают задачи, связанные с небольшим участком кода, другие определяют, например, способы работы в распределенных системах. Причем последние отвязаны от языка программирования. Интересный факт: некоторые шаблоны в языках появились вследствие ограничений самих языков и пытаются обойти их.</p>
4 <p>Как минимум один паттерн проектирования мы уже знаем по уроку "статические свойства и методы". Его называют<a>Money</a>- объект-значение, описывающий собой деньги.</p>
4 <p>Как минимум один паттерн проектирования мы уже знаем по уроку "статические свойства и методы". Его называют<a>Money</a>- объект-значение, описывающий собой деньги.</p>
5 <p>Возможно, вы удивитесь, что для такой примитивной задачи придуман целый паттерн, и будете правы. Паттерн - не обязательно что-то сложное и доступное только избранным. Паттерном называют любую задачу, которая повторяется безотносительно оценки сложности решения. Поэтому, хотите вы того или нет, в вашем коде уже встречаются шаблоны проектирования, даже если вы об этом не знаете. Правда, до некоторых типовых решений самостоятельно дойти крайне сложно.</p>
5 <p>Возможно, вы удивитесь, что для такой примитивной задачи придуман целый паттерн, и будете правы. Паттерн - не обязательно что-то сложное и доступное только избранным. Паттерном называют любую задачу, которая повторяется безотносительно оценки сложности решения. Поэтому, хотите вы того или нет, в вашем коде уже встречаются шаблоны проектирования, даже если вы об этом не знаете. Правда, до некоторых типовых решений самостоятельно дойти крайне сложно.</p>
6 <p>Насколько важно изучать шаблоны проектирования? Большинство описаний шаблонов в интернете завязано на<a>конкретную книгу</a>. Далеко не все паттерны, описанные в ней, полезны и встречаются в обычной жизни. Многие из них специфицированы под конкретные языки и не применимы в том же виде в других языках. Еще больше паттернов (на порядки) в этой книге не описано.</p>
6 <p>Насколько важно изучать шаблоны проектирования? Большинство описаний шаблонов в интернете завязано на<a>конкретную книгу</a>. Далеко не все паттерны, описанные в ней, полезны и встречаются в обычной жизни. Многие из них специфицированы под конкретные языки и не применимы в том же виде в других языках. Еще больше паттернов (на порядки) в этой книге не описано.</p>
7 <p>Как только появились паттерны, то не могли не появиться и антипаттерны. Антипаттерн - такое же типовое решение (потому что им часто пользуются), но создающее больше проблем, чем приносящее пользы. Обычно такие решения возникают из-за непонимания причинно-следственных связей в коде.</p>
7 <p>Как только появились паттерны, то не могли не появиться и антипаттерны. Антипаттерн - такое же типовое решение (потому что им часто пользуются), но создающее больше проблем, чем приносящее пользы. Обычно такие решения возникают из-за непонимания причинно-следственных связей в коде.</p>
8 <p>С паттернами и антипаттернами мы будем знакомиться на протяжении всех дальнейших курсов.</p>
8 <p>С паттернами и антипаттернами мы будем знакомиться на протяжении всех дальнейших курсов.</p>