Начать новую тему Ответить на тему
Статистика раздачи
Размер: 14.79 МБ | | Скачали: 17
Сидеров: 20  [0 байт/сек]    Личеров: 7  [0 байт/сек]
Пред. тема | След. тема 

Автор
Сообщение

Ответить с цитатой 

Java EE. Паттерны проектирования для профессионалов

Год издания: 2016
Автор: Мурат Йенер, Алекс Фидом
Жанр или тематика: Программирование/Паттерны проектирования

Издательство: Питер
ISBN: 978-5-496-01945-3
Серия: Вне серии
Язык: Русский

Формат: PDF
Качество: Отсканированные страницы
Интерактивное оглавление: Нет
Количество страниц: 240

Описание: Книга «Java EE. Паттерны проектирования для профессионалов» — незаменимый ресурс для всех, кто желает более эффективно работать с Java EE, а также единственная книга, в которой рассмотрены как теория, так и практика использования паттернов проектирования на примерах реальных прикладных задач.
Авторы знакомят читателя и с фундаментальными, и с наиболее передовыми возможностями Java EE 7, досконально рассматривают каждый из паттернов и демонстрируют, как эти паттерны применяются при решении повседневных прикладных задач.
Об авторах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
О техническом редакторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Для кого предназначена эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Что охватывает эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Как эта книга структурирована . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Что нужно, чтобы пользоваться этой книгой . . . . . . . . . . . . . . . . . . . . . 24
Мотивация для написания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Соглашения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Исходный код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Ошибки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Как связаться с авторами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Часть I. Введение в паттерны
проектирования Java EE
Глава 1. Краткий обзор паттернов проектирования . . . . . . . . . . . . 30
Что такое паттерн проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Как были изобретены паттерны проектирования
и почему они нам нужны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Паттерны в реальном мире . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Основы паттернов проектирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Корпоративные паттерны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
От языка Java к корпоративной платформе Java . . . . . . . . . . . . . . 35
Появление корпоративных паттернов Java . . . . . . . . . . . . . . . . . . 36
Отличия паттернов проектирования от корпоративных
паттернов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Простые паттерны проектирования в старом стиле
встречаются с Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
В каких случаях паттерны становятся антипаттернами . . . . . . . . . 39
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Глава 2. Основы Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Многоуровневая архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Уровень клиента . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Промежуточный уровень . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Веб-слой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Бизнес-слой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Уровень EIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Серверы Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Веб-профиль Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Базовые принципы платформы Java EE . . . . . . . . . . . . . . . . . . . . . . . . . 47
Соглашения по конфигурации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Контекст и внедрение зависимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Перехватчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Часть II. Реализация паттернов
проектирования в Java EE
Глава 3. Паттерн «Фасад» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Что такое фасад . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Реализация паттерна «Фасад» в простом коде . . . . . . . . . . . . . . . . . . . . 54
Реализация паттерна «Фасад» в Java EE . . . . . . . . . . . . . . . . . . . . . . . . . 56
Фасад с компонентами без сохранения состояния . . . . . . . . . . . . . 56
Фасад с компонентами с сохранением состояния . . . . . . . . . . . . . . 58
Где и когда использовать паттерн «Фасад» . . . . . . . . . . . . . . . . . . . . . . 58
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Глава 4. Паттерн «Одиночка» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Что такое одиночка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Диаграмма классов одиночки . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Реализация паттерна «Одиночка» в простом коде . . . . . . . . . . . . . 62
Реализация паттерна «Одиночка» в Java EE . . . . . . . . . . . . . . . . . . . . . . 66
Компоненты-одиночки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Использование одиночек при запуске . . . . . . . . . . . . . . . . . . . . . . 67
Определение порядка запуска . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Управление параллелизмом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Где и когда использовать паттерн «Одиночка» . . . . . . . . . . . . . . . . . . . . 73
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Глава 5. Внедрение зависимостей и CDI . . . . . . . . . . . . . . . . . . . . . . . 76
Что такое внедрение зависимостей . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Реализация DI в простом коде . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Реализация DI в Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Аннотация @Named . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Контекст и внедрение зависимостей (CDI) . . . . . . . . . . . . . . . . . . . 82
CDI и EJB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Компоненты CDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Аннотация @Inject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Контексты и области видимости . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Именование и EL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
CDI-компоненты для управляемых JSF . . . . . . . . . . . . . . . . . . . . . 86
Квалификаторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Альтернативы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Стереотипы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Другие паттерны посредством CDI . . . . . . . . . . . . . . . . . . . . . . . . 88
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Глава 6. Паттерн «Фабрика» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Что такое фабрика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Фабричный метод . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Абстрактная фабрика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Реализация абстрактной фабрики в Java EE . . . . . . . . . . . . . . . . . . . . . . 96
Когда и где использовать паттерны «Фабрика» . . . . . . . . . . . . . . . . . . 106
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Глава 7. Паттерн «Декоратор» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Что такое декоратор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Реализация паттерна «Декоратор» в простом коде . . . . . . . . . . . . . . . . 109
Реализация паттерна «Декоратор» в Java EE . . . . . . . . . . . . . . . . . . . . 113
Где и когда использовать паттерн «Декоратор» . . . . . . . . . . . . . . . . . . 119
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Глава 8. Аспектно-ориентированное программирование
(перехватчики) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Что такое аспектно-ориентированное программирование . . . . . . . . . . . 122
Реализация АОП в простом коде . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Аспекты в Java EE, перехватчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Жизненный цикл перехватчика . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Перехватчики уровня по умолчанию . . . . . . . . . . . . . . . . . . . . . . 130
Порядок выполнения перехватчиков . . . . . . . . . . . . . . . . . . . . . . 131
CDI-перехватчики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Где и когда использовать перехватчики . . . . . . . . . . . . . . . . . . . . . . . . 136
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Глава 9. Асинхронность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Что такое асинхронное программирование . . . . . . . . . . . . . . . . . . . . . . 139
Реализация паттерна «Асинхронность» в простом коде . . . . . . . . . . . . 141
Асинхронное программирование в Java EE . . . . . . . . . . . . . . . . . . . . . . 143
Асинхронные компоненты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Асинхронные сервлеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Где и когда применять асинхронное программирование . . . . . . . . . . . . 149
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Глава 10. Сервис таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Что такое сервис таймера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Реализация таймеров в Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Автоматические таймеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Программные таймеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Выражения таймеров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Транзакции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Глава 11. Паттерн «Наблюдатель» . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Что такое наблюдатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Описание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Диаграмма классов наблюдателя . . . . . . . . . . . . . . . . . . . . . . . . 165
Реализация паттерна «Наблюдатель» в простом коде . . . . . . . . . . . . . 166
Реализация паттерна «Наблюдатель» в Java EE . . . . . . . . . . . . . . . . . . 168
Где и когда использовать паттерн «Наблюдатель» . . . . . . . . . . . . . . . . 174
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Глава 12. Паттерн «Доступ к данным» . . . . . . . . . . . . . . . . . . . . . . . 177
Что такое паттерн «Доступ к данным» . . . . . . . . . . . . . . . . . . . . . . . . . 178
Обзор паттерна «Доступ к данным» . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Паттерн «Объект передачи данных» . . . . . . . . . . . . . . . . . . . . . . 179
Java Persistence Architecture API и объектно-реляционное
отображение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Реализация паттерна «Доступ к данным» в Java EE . . . . . . . . . . . . . . . 181
Где и когда использовать паттерн «Доступ к данным» . . . . . . . . . . . . . 187
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Глава 13. Веб-сервисы, воплощающие REST . . . . . . . . . . . . . . . . . . 189
Что такое REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Шесть ограничений REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Клиент-сервер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Унифицированный интерфейс . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Отсутствие сохранения состояния . . . . . . . . . . . . . . . . . . . . . . . . 192
Кэшируемость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Многослойность системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Код по запросу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Модель зрелости Ричардсона API REST . . . . . . . . . . . . . . . . . . . . . . . . . 193
Уровень 0. «Болото» POX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Уровень 1. Ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Уровень 2. «Глаголы» HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Уровень 3. Управляющие элементы гипермедиа . . . . . . . . . . . . . 194
Проектирование воплощающего REST API . . . . . . . . . . . . . . . . . . . . . . 194
Именование ресурсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Существительные, а не глаголы . . . . . . . . . . . . . . . . . . . . . . . . . 195
Информативность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Множественное, а не единственное число . . . . . . . . . . . . . . . . . . 196
Методы HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
PUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
REST в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Существительное users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Существительное topics и существительное posts . . . . . . . . . . . . 199
Реализация REST в Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
HATEOAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Где и когда использовать REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Глава 14. Паттерн «Модель — представление —
контроллер» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Что такое паттерн проектирования MVC . . . . . . . . . . . . . . . . . . . . . . . . 209
Реализация паттерна MVC в простом коде . . . . . . . . . . . . . . . . . . . . . . 211
Реализация паттерна MVC в Java EE . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
FacesServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
MVC с использованием FacesServlet . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Где и когда использовать паттерн MVC . . . . . . . . . . . . . . . . . . . . . . . . . 218
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Упражнение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Глава 15. Другие паттерны в Java EE . . . . . . . . . . . . . . . . . . . . . . . . 219
Что такое веб-сокеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Что такое ориентированное на обработку сообщений ПО
промежуточного уровня . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Что такое архитектура микросервисов . . . . . . . . . . . . . . . . . . . . . . . . . 224
Монолитная архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Масштабируемость . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Декомпозиция на сервисы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Выгоды микросервисов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Ничто в жизни не бывает бесплатно . . . . . . . . . . . . . . . . . . . . . . 228
Выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Наконец, несколько антипаттернов . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Сверхкласс . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Лазанья-архитектура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Господин Колумб . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Друзья с привилегиями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Дорогостоящие технологические новинки . . . . . . . . . . . . . . . . . . 231
«Мастер на все руки» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Часть III. Подведем итоги
Глава 16. Паттерны проектирования: хорошие,
плохие, ужасные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Хороший: паттерны для успеха . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Плохой: излишнее и неправильное использование паттернов . . . . . . . . 236
…ужасные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
P.S. Господа, торрент перезалит! 02.02.16, Местное время - 18:14!
Правила, инструкции, FAQ!!!
Торрент   Скачать торрент Магнет ссылка
Скачать торрент
[ Размер 19.06 КБ / Просмотров 123 ]

Статус
Проверен 
 
Размер  14.79 МБ
Приватный: Нет (DHT включён)
.torrent скачан  17
Как залить торрент? | Как скачать Torrent? | Ошибка в торренте? Качайте магнет  


     Отправить личное сообщение
   
Страница 1 из 1
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему


Сейчас эту тему просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Ресурс не предоставляет электронные версии произведений, а занимается лишь коллекционированием и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями. Если вы являетесь правообладателем какого-либо представленного материала и не желаете чтобы ссылка на него находилась в нашем каталоге, свяжитесь с нами и мы незамедлительно удалим её. Файлы для обмена на трекере предоставлены пользователями сайта, и администрация не несёт ответственности за их содержание. Просьба не заливать файлы, защищенные авторскими правами, а также файлы нелегального содержания!