#вопросы_с_собеседований
Существует ли способ решения проблемы race condition?
Существует ли способ решения проблемы race condition?
Распространённые способы решения:
☕️ Использование локальной копии — копирование разделяемой переменной в локальную переменную потока. Этот способ работает только тогда, когда переменная одна и копирование производится атомарно (за одну машинную команду), использование volatile.
☕️ Синхронизация - операции над разделяемым ресурсом происходят в синхронизированном блоке (при использовании ключевого слова synchronized).
☕️ Комбинирование методов - вышеперечисленные способы можно комбинировать, копируя «опасные» переменные в синхронизированном блоке. С одной стороны, это снимает ограничение на атомарность, с другой — позволяет избавиться от слишком больших синхронизированных блоков.
Очевидных способов выявления и исправления состояний гонки не существует. Лучший способ избавиться от гонок — правильное проектирование многозадачной системы.
☕️ Использование локальной копии — копирование разделяемой переменной в локальную переменную потока. Этот способ работает только тогда, когда переменная одна и копирование производится атомарно (за одну машинную команду), использование volatile.
☕️ Синхронизация - операции над разделяемым ресурсом происходят в синхронизированном блоке (при использовании ключевого слова synchronized).
☕️ Комбинирование методов - вышеперечисленные способы можно комбинировать, копируя «опасные» переменные в синхронизированном блоке. С одной стороны, это снимает ограничение на атомарность, с другой — позволяет избавиться от слишком больших синхронизированных блоков.
Очевидных способов выявления и исправления состояний гонки не существует. Лучший способ избавиться от гонок — правильное проектирование многозадачной системы.
Допустим, ты уверенно чувствуешь себя в математике и Java, есть диплом бакалавра или специалиста, с интересом смотришь на сферу анализа данных. Таких людей на рынке труда не хватает. До 30 июня ты можешь проверить свои силы и подать заявку для поступления на магистерскую программу «Промышленный анализ данных в ритейле».
Программа разработана совместно X5 и МФТИ. Не для ленивых: 80+ реальных кейсов и 3 тыс. часов прокачивания навыков в практическом Data Science на примере ритейла.
Обучающиеся смогут оформить стажировку или даже трудоустроиться в X5 Технологии и получать от компании повышенную стипендию. Презентация кафедры, учебная программа, и условия поступления здесь: https://mipt.x5.ru/
Программа разработана совместно X5 и МФТИ. Не для ленивых: 80+ реальных кейсов и 3 тыс. часов прокачивания навыков в практическом Data Science на примере ритейла.
Обучающиеся смогут оформить стажировку или даже трудоустроиться в X5 Технологии и получать от компании повышенную стипендию. Презентация кафедры, учебная программа, и условия поступления здесь: https://mipt.x5.ru/
Создаем компактную среду выполнения с jlink
В Java 9 появился новый инструмент под названием
https://proglib.io/w/454a3607
#proglib_contest
В Java 9 появился новый инструмент под названием
jlink
. Этот простой инструмент командной строки позволяет создавать собственные среды выполнения только с теми модулями, что нужны нашему приложению. Например, с помощью следующей команды мы создадим среду выполнения, содержащую только модуль java.base
:jlink --add-modules java.base --output javabasert
Подробнее на множестве примеров разобрано здесь:https://proglib.io/w/454a3607
#proglib_contest
DZone
Going Beyond Java 8: Create Custom Java Runtimes with jlink
Although Java 8 is currently the most popular version of Java by developers everywhere, tools like jlink allow us to go beyond Java 8 and create custom runtimes.
☕️ Сертификаты и тренинги для Java-разработчика
Задумались о сертификате разработчика Java, но не знаете где пройти экзамен и что получите в итоге? В небольшом обзоре попробуем разобрать этот сложный вопрос на простые составные части.
https://proglib.io/sh/x3AwYqfjVH
Задумались о сертификате разработчика Java, но не знаете где пройти экзамен и что получите в итоге? В небольшом обзоре попробуем разобрать этот сложный вопрос на простые составные части.
https://proglib.io/sh/x3AwYqfjVH
Effective Kotlin: Best practices (2019)
Автор: Marcin Moskala
Количество страниц: 445
Kotlin - мощный и прагматичный язык, но недостаточно знать о его функциях. Вам также необходимо знать, когда и каким образом их следует использовать. В этой книге представлены и подробно описаны лучшие практики разработки на Kotlin. Каждый пункт представлен как четкое практическое правило, подкрепленное подробными объяснениями и примерами.
Скачать книгу
Автор: Marcin Moskala
Количество страниц: 445
Kotlin - мощный и прагматичный язык, но недостаточно знать о его функциях. Вам также необходимо знать, когда и каким образом их следует использовать. В этой книге представлены и подробно описаны лучшие практики разработки на Kotlin. Каждый пункт представлен как четкое практическое правило, подкрепленное подробными объяснениями и примерами.
Скачать книгу
Telegram
Книги для программистов (reserved)
Effective Kotlin: Best practices (2019)
Автор: Marcin Moskala
Автор: Marcin Moskala
Forwarded from Java jobs — вакансии для java-разработчиков
#Будва_Черногория #вакансия #офис #fulltime #java #естьработа #вилка
Добрый день.
Вакансия: Java разработчик (серверный)
Компания: Alar Studios
Формат работы: офис
Занятость: full time
Опыт: от 4 лет
З.п вилка: 2300 - 3000 eur (на руки)
Заниматься нужно будет построением сервиса аналитики очень больших объемов данных (big data analytics) на базе пропраетарной базы данных, использующей в том числе мощности GPU для той самой магии, которая понимает почти весь SQL, включая joins. В точки зрения технологической сложности - это высший пилотаж и поле для применения и раскрытия таланта! Предлагаем возможность развиваться в комфортных условиях мягкого климата Черногории на берегу моря (офис).
Основные задачи:
• Писать новый код на основании требований лидов
• Участие в разработке тех самых требований с лидами, оформление предложений
• Следование идеологии Agile, включая многие ритуалы (стендапы, спринты, планирование спринтов)
• Взаимодействие с коллегами по команде - у нас ансамбль, не соло проект
Требования:
• Java
• Spring
• Apache Calcite
• Понимание multithreading, механизмов синхронизации, очередей
• Понимание TCP/IP, сетевого кода, намного больше, чем просто чем UDP от TCP отличается (и почему)
Хорошо бы, но не обязательно:
• Опыт создания распределенных систем
• Опыт работы с Kubernetes
• Что такое CRDT знаете? ;-)
• Опыт с Kafka и похожим
Мы предлагаем:
• Очень интересную работу - сколько в мире систем распределенных RDBMS? Вам предоставляется шанс работать над одной из самых уникальных!
• Оплачиваемые отпуска
• Официальное трудоустройство и оформление ВНЖ в Черногории
• Оплачиваем переезд (лично вам), помогаем с поиском жилья (поиск, варианты, посмотреть, подтвердить), помогаем перевезти семью.
Комфортный офис в комфортном климате, море в 10-и минутах пешком.
Для интервью необходимо будет выполнить тестовое задание
Ваше CV прошу направлять на [email protected] или в @daikirey
Добрый день.
Вакансия: Java разработчик (серверный)
Компания: Alar Studios
Формат работы: офис
Занятость: full time
Опыт: от 4 лет
З.п вилка: 2300 - 3000 eur (на руки)
Заниматься нужно будет построением сервиса аналитики очень больших объемов данных (big data analytics) на базе пропраетарной базы данных, использующей в том числе мощности GPU для той самой магии, которая понимает почти весь SQL, включая joins. В точки зрения технологической сложности - это высший пилотаж и поле для применения и раскрытия таланта! Предлагаем возможность развиваться в комфортных условиях мягкого климата Черногории на берегу моря (офис).
Основные задачи:
• Писать новый код на основании требований лидов
• Участие в разработке тех самых требований с лидами, оформление предложений
• Следование идеологии Agile, включая многие ритуалы (стендапы, спринты, планирование спринтов)
• Взаимодействие с коллегами по команде - у нас ансамбль, не соло проект
Требования:
• Java
• Spring
• Apache Calcite
• Понимание multithreading, механизмов синхронизации, очередей
• Понимание TCP/IP, сетевого кода, намного больше, чем просто чем UDP от TCP отличается (и почему)
Хорошо бы, но не обязательно:
• Опыт создания распределенных систем
• Опыт работы с Kubernetes
• Что такое CRDT знаете? ;-)
• Опыт с Kafka и похожим
Мы предлагаем:
• Очень интересную работу - сколько в мире систем распределенных RDBMS? Вам предоставляется шанс работать над одной из самых уникальных!
• Оплачиваемые отпуска
• Официальное трудоустройство и оформление ВНЖ в Черногории
• Оплачиваем переезд (лично вам), помогаем с поиском жилья (поиск, варианты, посмотреть, подтвердить), помогаем перевезти семью.
Комфортный офис в комфортном климате, море в 10-и минутах пешком.
Для интервью необходимо будет выполнить тестовое задание
Ваше CV прошу направлять на [email protected] или в @daikirey
SmartDev - первая технологическая конференция Сбера для разработчиков
⏰ 20 мая | Онлайн
Первая техно-конференция от Сбера для разработчиков. Шесть параллельных стримов, топовые международные спикеры. Dev to dev.
На стриме от SmartMarket вы узнаете, как каждый из вас может создавать навыки для виртуальных ассистентов Салют, как подключать к ним монетизацию и выходить со своими товарами, услугами и идеями на многомиллионную аудиторию Сбера.
Обсудим темы:
- новые типы приложений для разработки навыков виртуальных ассистентов семейства Салют Native Apps и Canvas Apps с возможностью интеграции в СберБанк Онлайн, а также сервисы Platform V для back-end разработки;
- презентация SmartServices для разработчиков навыков;
- SmartNLP — погружение в NLP/NLU технологии будущего
и др.
Участие бесплатное, по предварительной регистрации на сайте конференции.
До встречи в прямом эфире! ✊
⏰ 20 мая | Онлайн
Первая техно-конференция от Сбера для разработчиков. Шесть параллельных стримов, топовые международные спикеры. Dev to dev.
На стриме от SmartMarket вы узнаете, как каждый из вас может создавать навыки для виртуальных ассистентов Салют, как подключать к ним монетизацию и выходить со своими товарами, услугами и идеями на многомиллионную аудиторию Сбера.
Обсудим темы:
- новые типы приложений для разработки навыков виртуальных ассистентов семейства Салют Native Apps и Canvas Apps с возможностью интеграции в СберБанк Онлайн, а также сервисы Platform V для back-end разработки;
- презентация SmartServices для разработчиков навыков;
- SmartNLP — погружение в NLP/NLU технологии будущего
и др.
Участие бесплатное, по предварительной регистрации на сайте конференции.
До встречи в прямом эфире! ✊
Как Spring Framework реализует паттерн Dependency Injection?
Инверсия контроля (inversion of control, IoC) – принцип проектирования, по которому контроль над потоком управления передается фреймворку. Управляющий и прикладной код разделяются. При разработке модуля этот подход избавляет от необходимости знать о других модулях программы и деталях их взаимодействия. Такой код становится более переипользуемым и модульным, уменьшает связность.
Внедрение зависимостей (Dependency Injection, DI) – одна из реализаций IoC. При взаимодействии с другими модулями, программа оперирует высокоуровневыми абстракциями, тогда как конкретная её реализация поставляется фреймворком.
Стандартная реализация DI – фреймворк инстанциирует все сервисы, и складывает их в IoC-контейнер. При этом специальная сущность, Service Locator, занимается поиском соответствия реализаций абстракциям и их внедрением.
Spring – большой набор различных библиотек. DI реализуется одной из основных библиотек – Spring IoC.
Сущности бизнес-логики в Spring, как и в JavaEE называются beans. Бины объявляются различными способами, корни большинства из них лежат в понятии
Лучше разобраться в понятиях экосистемы Spring поможет известный доклад Евгения Борисова «Spring-потрошитель»:часть 1,часть 2.
Инверсия контроля (inversion of control, IoC) – принцип проектирования, по которому контроль над потоком управления передается фреймворку. Управляющий и прикладной код разделяются. При разработке модуля этот подход избавляет от необходимости знать о других модулях программы и деталях их взаимодействия. Такой код становится более переипользуемым и модульным, уменьшает связность.
Внедрение зависимостей (Dependency Injection, DI) – одна из реализаций IoC. При взаимодействии с другими модулями, программа оперирует высокоуровневыми абстракциями, тогда как конкретная её реализация поставляется фреймворком.
Стандартная реализация DI – фреймворк инстанциирует все сервисы, и складывает их в IoC-контейнер. При этом специальная сущность, Service Locator, занимается поиском соответствия реализаций абстракциям и их внедрением.
Spring – большой набор различных библиотек. DI реализуется одной из основных библиотек – Spring IoC.
Сущности бизнес-логики в Spring, как и в JavaEE называются beans. Бины объявляются различными способами, корни большинства из них лежат в понятии
Configuration
. В качестве контейнера бинов выступает ApplicationContext
. Чтобы передать инициализацию зависимости контексту, она помечается аннотацией @Autowired
.Лучше разобраться в понятиях экосистемы Spring поможет известный доклад Евгения Борисова «Spring-потрошитель»:часть 1,часть 2.
Wikipedia
Инверсия управления
Инверсия управления (англ. Inversion of Control, IoC) — общий принцип программирования, особенно важный в рамках объектно-ориентированной парадигмы, используемый для уменьшения зацепления (связанности) в компьютерных программах . Также архитектурное решение…
Окунись в мир белого хакинга уже сегодня! Пройди бесплатный онлайн-интенсив Skillbox по программированию, изучи востребованный язык программирования Java и создай свой первый проект под руководством опытного специалиста.
Все подробности по ссылке: 👉https://clc.am/_N5FnA
За 3 дня интенсива ты:
⚡️ Освоишь основные инструменты программирования на Java.
⚡️ Напишешь программу для мониторинга активности рабочего стола.
⚡️ Получишь полезные советы разработчика с 15-летним опытом — Даниила Пилипенко.
⚡️ Узнаешь, как устроена работа Java-программиста.
Подключайся к прямому эфиру с 10 по 12 мая в 19:00 по московскому времени 😉
Все подробности по ссылке: 👉https://clc.am/_N5FnA
За 3 дня интенсива ты:
⚡️ Освоишь основные инструменты программирования на Java.
⚡️ Напишешь программу для мониторинга активности рабочего стола.
⚡️ Получишь полезные советы разработчика с 15-летним опытом — Даниила Пилипенко.
⚡️ Узнаешь, как устроена работа Java-программиста.
Подключайся к прямому эфиру с 10 по 12 мая в 19:00 по московскому времени 😉
Spring Boot: Up and Running: Building Cloud Native Java and Kotlin Applications (2020)
Автор: Mark Heckler
Количество страниц: 328
Spring Boot - это наиболее широко используемая среда Java, которая загружается более 75 миллионов раз в месяц. Его простота и мощность изменили разработку приложений от монолитной архитектуры к микросервисной. Однако простота Spring Boot может сбивать с толку. Что нужно знать разработчикам, чтобы сразу же начать работать со Spring Boot продуктивно? В этой практической книге показано, как использовать фреймворк для написания успешных и важных приложений.
Скачать книгу
Автор: Mark Heckler
Количество страниц: 328
Spring Boot - это наиболее широко используемая среда Java, которая загружается более 75 миллионов раз в месяц. Его простота и мощность изменили разработку приложений от монолитной архитектуры к микросервисной. Однако простота Spring Boot может сбивать с толку. Что нужно знать разработчикам, чтобы сразу же начать работать со Spring Boot продуктивно? В этой практической книге показано, как использовать фреймворк для написания успешных и важных приложений.
Скачать книгу
Telegram
Книги для программистов (reserved)
Spring Boot: Up and Running: Building Cloud Native Java and Kotlin Applications (2020)
Автор: Mark Heckler
Автор: Mark Heckler
Зачем нужен package-info?
Обычно, чтобы создать новый пакет, вы создаете папку с соответствующим названием, и во всех ее
Однако, дополнительно вы можете добавить в пакет его объявление – файл
Минимальное содержимое файла
Первое – документация пакета. Javadoc-комментарий будет использоваться генератором документации. Пример – описание пакета java.lang. Его исходник вы можете найти в файле
Второе возможное применение – аннотации уровня пакета. Для этого аннотация должна иметь Target
Подробно объявления пакетов описаны в главе 7.4.1 спецификации.
#JVM
Обычно, чтобы создать новый пакет, вы создаете папку с соответствующим названием, и во всех ее
.java
файлах добавляете в начале строчку с названием пакета, вида package full.dir.path;
. Этого вполне достаточно для работы.Однако, дополнительно вы можете добавить в пакет его объявление – файл
package-info.java
. Несмотря на то, что это .java-файл, это не объявление класса. В названии класса дефисы запрещены, так что неоднозначности не возникнет. Минимальное содержимое файла
package-info.java
– всё та же строка package full.dir.path;
. Такой файл не несет практической пользы. Есть две вещи, которые можно в него добавить, чтобы польза появилась.Первое – документация пакета. Javadoc-комментарий будет использоваться генератором документации. Пример – описание пакета java.lang. Его исходник вы можете найти в файле
java/lang/package-info.java
.Второе возможное применение – аннотации уровня пакета. Для этого аннотация должна иметь Target
PACKAGE
. Например, некоторые пакеты Spring Framework помечены аннотацией @NonNullApi
.Подробно объявления пакетов описаны в главе 7.4.1 спецификации.
#JVM
Oracle
java.lang (Java SE 13 & JDK 13 )
declaration: module: java.base, package: java.lang
R2DBC Revealed: Reactive Relational Database Connectivity for Java and JVM Programmers (2021)
Автор: Robert Hedgpeth
Количество страниц: 236
Ознакомьтесь с новейшими тенденциями в программировании баз данных для разработчиков, работающих на Java, Kotlin, Clojure и других языках, основанных на JVM. Эта книга знакомит с Reactive Relational Database Connectivity (R2DBC), современным способом подключения к реляционным базам данных и запросов из Java и других языков JVM. Книга начинается с того, что не только помогает понять, что такое реактивное программирование, но и объясняет, почему оно необходимо в современной разработке. Затем, опираясь на эти основы, книга перенесет вас в мир баз данных и недавно выпущенную спецификацию Reactive Relational Database Connectivity (R2DBC).
Скачать книгу
Автор: Robert Hedgpeth
Количество страниц: 236
Ознакомьтесь с новейшими тенденциями в программировании баз данных для разработчиков, работающих на Java, Kotlin, Clojure и других языках, основанных на JVM. Эта книга знакомит с Reactive Relational Database Connectivity (R2DBC), современным способом подключения к реляционным базам данных и запросов из Java и других языков JVM. Книга начинается с того, что не только помогает понять, что такое реактивное программирование, но и объясняет, почему оно необходимо в современной разработке. Затем, опираясь на эти основы, книга перенесет вас в мир баз данных и недавно выпущенную спецификацию Reactive Relational Database Connectivity (R2DBC).
Скачать книгу
Telegram
Книги для программистов (reserved)
R2DBC Revealed: Reactive Relational Database Connectivity for Java and JVM Programmers (2021)
Автор: Robert Hedgpeth
Автор: Robert Hedgpeth
#вопросы_с_собеседований
Почему в некоторых интерфейсах вообще не определяют методов?
Почему в некоторых интерфейсах вообще не определяют методов?
В команду ВТБ — одного из крупнейших банков страны — ищут опытного UI/UX-дизайнера!
Если умеешь создавать скетчи, макеты, интерактивные прототипы с учетом целей бизнеса, анализировать разработанные продукты и сервисы, сотрудничать с графическими дизайнерами при подготовке визуального интерфейса и при этом знаешь современные тенденции — тогда откликайся на вакансию и стань частью большой технологической трансформации.
Подробнее о вакансии: https://www.vtbcareer.com/vacancy/788700/
Если умеешь создавать скетчи, макеты, интерактивные прототипы с учетом целей бизнеса, анализировать разработанные продукты и сервисы, сотрудничать с графическими дизайнерами при подготовке визуального интерфейса и при этом знаешь современные тенденции — тогда откликайся на вакансию и стань частью большой технологической трансформации.
Подробнее о вакансии: https://www.vtbcareer.com/vacancy/788700/
Ответ к https://yangx.top/javaproglib/2474
Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу. Примером может послужить интерфейс Clonable, который указывает на то, что класс поддерживает механизм клонирования.
Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу. Примером может послужить интерфейс Clonable, который указывает на то, что класс поддерживает механизм клонирования.
Telegram
Библиотека джависта
#вопросы_с_собеседований
Почему в некоторых интерфейсах вообще не определяют методов?
Почему в некоторых интерфейсах вообще не определяют методов?
Статья о Behavior-Driven Development для Java SpringBoot REST API с использованием Cucumber.
https://proglib.io/w/0de5d31c
https://proglib.io/w/0de5d31c
Medium
Start Behavior-Driven Development (BDD) for Java SpringBoot REST API Using Cucumber
Create Human Readable Test Cases For Automated End-to-End Testing
#вопросы_с_собеседований
Назовите основные характеристики шаблонов проектирования.
Назовите основные характеристики шаблонов проектирования.
Продолжаем конкурс на самый интересный контент в телеграм-каналах Proglib!
Призовой фонд — 280 тысяч рублей. Срок окончания конкурса -- 15 мая
Автор лучшего поста в отдельно взятом канале получает 20 тысяч рублей.
Мы упростили конкурс — теперь вам достаточно найти интересную и актуальную статью 2020-2021 года, написать к ней небольшой анонс (до 700 знаков) и прислать нам, тем не менее ваши идеи по другим форматам только добавляют + в общий зачет. Авторство можем указать по вашему желанию. В канале @progbook предлагаем отправлять рецензии на новые книги и старые актуальные.
Полный список каналов:
https://yangx.top/progbook
https://yangx.top/proglibrary
https://yangx.top/pyproglib
https://yangx.top/frontendproglib
https://yangx.top/javaproglib
https://yangx.top/dsproglib
https://yangx.top/phpproglib
https://yangx.top/cppproglib
https://yangx.top/mobileproglib
https://yangx.top/goproglib
https://yangx.top/csharpproglib
https://yangx.top/devopsslib
https://yangx.top/testerlib
https://yangx.top/hackproglib
Все посты будут с лайками и дизлайками и хэштегом #proglib_contest. Ссылки мы будем прогонять через наш сокращатель, будут браться в расчет лайки, дизлайки, охваты, клики по ссылкам. Выиграет тот кто наберёт больше всего лайков/охватов/кликов по ссылкам в публикации. Присылайте посты боту @proglib_contest_bot с указанием, на какой канал идет публикация. Юридическая информация здесь.
Призовой фонд — 280 тысяч рублей. Срок окончания конкурса -- 15 мая
Автор лучшего поста в отдельно взятом канале получает 20 тысяч рублей.
Мы упростили конкурс — теперь вам достаточно найти интересную и актуальную статью 2020-2021 года, написать к ней небольшой анонс (до 700 знаков) и прислать нам, тем не менее ваши идеи по другим форматам только добавляют + в общий зачет. Авторство можем указать по вашему желанию. В канале @progbook предлагаем отправлять рецензии на новые книги и старые актуальные.
Полный список каналов:
https://yangx.top/progbook
https://yangx.top/proglibrary
https://yangx.top/pyproglib
https://yangx.top/frontendproglib
https://yangx.top/javaproglib
https://yangx.top/dsproglib
https://yangx.top/phpproglib
https://yangx.top/cppproglib
https://yangx.top/mobileproglib
https://yangx.top/goproglib
https://yangx.top/csharpproglib
https://yangx.top/devopsslib
https://yangx.top/testerlib
https://yangx.top/hackproglib
Все посты будут с лайками и дизлайками и хэштегом #proglib_contest. Ссылки мы будем прогонять через наш сокращатель, будут браться в расчет лайки, дизлайки, охваты, клики по ссылкам. Выиграет тот кто наберёт больше всего лайков/охватов/кликов по ссылкам в публикации. Присылайте посты боту @proglib_contest_bot с указанием, на какой канал идет публикация. Юридическая информация здесь.
Telegram
Книги для программистов
Все о книгах из мира IT.
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/de94a698
Работать у нас: https://job.proglib.io/
Наши каналы: https://yangx.top/proglibrary/9197
РКН: https://www.gosuslugi.ru/snet/67931954509aba565214777d
По рекламе: @proglib_adv
Учиться у нас: https://proglib.io/w/de94a698
Работать у нас: https://job.proglib.io/
Наши каналы: https://yangx.top/proglibrary/9197
РКН: https://www.gosuslugi.ru/snet/67931954509aba565214777d
Имя - все шаблоны имеют уникальное имя, служащее для их идентификации;
Назначение данного шаблона;
Задача - задача, которую шаблон позволяет решить;
Способ решения - способ, предлагаемый в шаблоне для решения задачи в том контексте, где этот шаблон был найден;
Участники - сущности, принимающие участие в решении задачи;
Следствия - последствия от использования шаблона как результат действий, выполняемых в шаблоне;
Реализация - возможный вариант реализации шаблона.
Назначение данного шаблона;
Задача - задача, которую шаблон позволяет решить;
Способ решения - способ, предлагаемый в шаблоне для решения задачи в том контексте, где этот шаблон был найден;
Участники - сущности, принимающие участие в решении задачи;
Следствия - последствия от использования шаблона как результат действий, выполняемых в шаблоне;
Реализация - возможный вариант реализации шаблона.