Этого треда уже нет.
Это копия, сохраненная 7 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 7 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
180 Кб, 1280x720
ИТТ обсуждает самые петуханские технологии и техники програмирования. Пожалуй, начну.
Лямда-программирование. Эталон, в котором можно мерять выпендрежность и петуханство в ИТ. Позволяет даже самый простой код сделать совершенно не читаемым, даже самую быструю функцию превратить в стоп-кран всей системы, ради того, что бы сэкономить 4 кб на диске. Функциональное програмирование? Используй функциональный язык, а не лямбы на питоне, это как залить ботокс в сиськи, и задвигать про бодибилдинг, вроде похожу, но наеб чистой воды.
Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать. Для довунов с памятью 3 мб, сегодня написал, завтра забыл.
Лямда-программирование. Эталон, в котором можно мерять выпендрежность и петуханство в ИТ. Позволяет даже самый простой код сделать совершенно не читаемым, даже самую быструю функцию превратить в стоп-кран всей системы, ради того, что бы сэкономить 4 кб на диске. Функциональное програмирование? Используй функциональный язык, а не лямбы на питоне, это как залить ботокс в сиськи, и задвигать про бодибилдинг, вроде похожу, но наеб чистой воды.
Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать. Для довунов с памятью 3 мб, сегодня написал, завтра забыл.
>>967453 (OP)
Не от себя лол, а от пользователей твоих классов, тебе что проще, вызвать у библиотечного класса метод или разбираться, как он устроен изнутри?
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.
Не от себя лол, а от пользователей твоих классов, тебе что проще, вызвать у библиотечного класса метод или разбираться, как он устроен изнутри?
Ответы969083
>>967453 (OP)
в етом ИТТ треде мы выяснили что новомодные анальные игрушки для быдляков ПИСТОН и ХАЧКЕЛЬ
сосут у олдфажных мега языков на все времена C-шки и perl-а все время
лучий вариант на ПИСТОНЕ: http://ideone.com/udDJ9 (императивный понос)
2 варианта на ХАЧКЕЛЕ
ебаный пиздец во всех смыслах и имеперативное гавнище: http://ideone.com/M42su (сосет у C-шки)
деклашотивное петушение http://ideone.com/0e3qE (сосет у декларотивного петушения на perl)
для сравнения
perl: http://ideone.com/i0ob4 http://ideone.com/olq5B
C: http://ideone.com/ap43H
LUA: http://ideone.com/DVdhr http://ideone.com/Xkj4D
http://ideone.com/6cZYq лисп как и ожидалось сонул, ну и возможно ответ неправильный
(какието черезжопные варианты с 33 кратной вложеностю скобок быле побыстрее но натая хуйне никому не сдалась когда есть простое и самое быстрое решение на C-шке)
в етом ИТТ треде мы выяснили что новомодные анальные игрушки для быдляков ПИСТОН и ХАЧКЕЛЬ
сосут у олдфажных мега языков на все времена C-шки и perl-а все время
лучий вариант на ПИСТОНЕ: http://ideone.com/udDJ9 (императивный понос)
2 варианта на ХАЧКЕЛЕ
ебаный пиздец во всех смыслах и имеперативное гавнище: http://ideone.com/M42su (сосет у C-шки)
деклашотивное петушение http://ideone.com/0e3qE (сосет у декларотивного петушения на perl)
для сравнения
perl: http://ideone.com/i0ob4 http://ideone.com/olq5B
C: http://ideone.com/ap43H
LUA: http://ideone.com/DVdhr http://ideone.com/Xkj4D
http://ideone.com/6cZYq лисп как и ожидалось сонул, ну и возможно ответ неправильный
(какието черезжопные варианты с 33 кратной вложеностю скобок быле побыстрее но натая хуйне никому не сдалась когда есть простое и самое быстрое решение на C-шке)
>>967453 (OP)
лисперы как дети
придумываюи всякую хуету, дают ей красивые названия навроде "лямбда" "функция высшего порядка" "первокласный обьект" и всем
заявляют что ето алмазы которых нигде больше нет.
а если приглядется и почитать ихнюю невнятную документацию то видиш что никакие ето не алмазы а стекляшки которых полно на
улице валяется
лисперы как дети
придумываюи всякую хуету, дают ей красивые названия навроде "лямбда" "функция высшего порядка" "первокласный обьект" и всем
заявляют что ето алмазы которых нигде больше нет.
а если приглядется и почитать ихнюю невнятную документацию то видиш что никакие ето не алмазы а стекляшки которых полно на
улице валяется
Ответы971580
>>967453 (OP)
монады ето динамический массив содержащией еллементы любых типов
такое есть во всех быдлокодерских языках
а в лиспах ничего кроме монад нету
вот они на них и молятся, пишут книги, дрочат, сочиняют сказки и легенды
монады ето динамический массив содержащией еллементы любых типов
такое есть во всех быдлокодерских языках
а в лиспах ничего кроме монад нету
вот они на них и молятся, пишут книги, дрочат, сочиняют сказки и легенды
>>967453 (OP)
Подписался на годный тред. Унижаем адептов ООП и ФП в этом ИТТ тренде! Только КОП, только юнити-ультра-хардкор!
Подписался на годный тред. Унижаем адептов ООП и ФП в этом ИТТ тренде! Только КОП, только юнити-ультра-хардкор!
Годный трет от го-довена.
>>967453 (OP)
Это скрытие ненужных деталей за минимальным интерфейсом.
Или у тебя кран на кухне загромождён огромным количеством водопроводных труб, вентилей в разные квартиры и счётчиками воды вперемешку?
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать
Это скрытие ненужных деталей за минимальным интерфейсом.
Или у тебя кран на кухне загромождён огромным количеством водопроводных труб, вентилей в разные квартиры и счётчиками воды вперемешку?
Ответы969002
>>967453 (OP)
Была уже в 50-е, даже задолго до ЕС ЭВМ.
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.
Была уже в 50-е, даже задолго до ЕС ЭВМ.
>>967704
Двачаю.
Но лучше всего как в Питоне, чтобы private функции отличались от public лишь формально (там ведь так, да?). То есть есть методы "бери и используй", а есть "тут нужно понимать внутреннюю структуру, но тоже можно вызвать, если очень надо".
Чтобы не было лишней ебли со всякими private наследованиями, дружественными классами и прочим.
Двачаю.
Но лучше всего как в Питоне, чтобы private функции отличались от public лишь формально (там ведь так, да?). То есть есть методы "бери и используй", а есть "тут нужно понимать внутреннюю структуру, но тоже можно вызвать, если очень надо".
Чтобы не было лишней ебли со всякими private наследованиями, дружественными классами и прочим.
Поцоны, а чо скажете про константность? С одной стороны, полезно для отладки и оптимизации. Но с другой, столько ебли с ней, да и во многих языках без неё нормально живут.
Ответы969084
>>967453 (OP)
Чего, блять? Если кукарекать, то правильно. Читай по губам, ОП-хуй: лямбда функции
Алсо, тред до сих пор не обосрал наследование. Плохой тред
>Лямда-программирование
Чего, блять? Если кукарекать, то правильно. Читай по губам, ОП-хуй: лямбда функции
Алсо, тред до сих пор не обосрал наследование. Плохой тред
Ответы969080
>>967453 (OP)
Тебя тоже бесит что внутренние органы спрятаны под кожей и мышцами, и нельзя сделать себе прямой массаж сердца?
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.
Тебя тоже бесит что внутренние органы спрятаны под кожей и мышцами, и нельзя сделать себе прямой массаж сердца?
>>967459
Ну а если мне всего то переменную взять надо? Делать геттер? Пиздец какой-то, его надо делать когда действительно нужно, а не когда можно.
Ну а если мне всего то переменную взять надо? Делать геттер? Пиздец какой-то, его надо делать когда действительно нужно, а не когда можно.
>>969004
Ненужно, для дебажки есть gdb, IDA.
Ненужно, для дебажки есть gdb, IDA.
>>969082
Немношк неправ. Если ты начинаешь писать код "с нуля", то тебе нужно постепенно двигаться от простого объекта к сложному, наследуя все свойства и методы предыдущего. Пример: ректангл->сёрфейс->поле->выпадающий список. И всё это единообразно пишется на буфер экрана, потому что методы создания/уничтожения наследуются от самого от ректангла
Немношк неправ. Если ты начинаешь писать код "с нуля", то тебе нужно постепенно двигаться от простого объекта к сложному, наследуя все свойства и методы предыдущего. Пример: ректангл->сёрфейс->поле->выпадающий список. И всё это единообразно пишется на буфер экрана, потому что методы создания/уничтожения наследуются от самого от ректангла
Ответы969227
>>969178
А теперь мне нужно сделать радиальное меню а не выпадающий список. Или сёрфейс у меня треугольник, а не прямоугольник.
Но самый шквар в таком наследовании - все наследники должны уметь делать всё, связанное с операциями над ним. Выпадающий список умеер рисовать себя во всех состояниях, выбирать элемент из списка, подключать датасорс элементов, уничтожать/cоздавать ресурсы для буфера экрана, вытирать жопу своему автору и т.д.
Говнище же
А теперь мне нужно сделать радиальное меню а не выпадающий список. Или сёрфейс у меня треугольник, а не прямоугольник.
Но самый шквар в таком наследовании - все наследники должны уметь делать всё, связанное с операциями над ним. Выпадающий список умеер рисовать себя во всех состояниях, выбирать элемент из списка, подключать датасорс элементов, уничтожать/cоздавать ресурсы для буфера экрана, вытирать жопу своему автору и т.д.
Говнище же
Ответы969290
>>969290
Интерфейсы/контракты вместо наследования. Интерфейс/контракт имеет единственную область ответственности. Интерфейсы/контракты склеиваются друг с другом композицией.
Есть интерфейс ISelector, в котором есть список опций и текущее выбранное значение.
Есть интерфес ISelectorPresenter с функциями GetRadialMenuDrawables(ISelector) и GetDropdownMenuDrawables(ISelector), на выходе которых ты получаешь список говна, которое тебе надо отрендерить. Есть рендерер, который отвечает только за рендер списка говна.
Интерфейсы/контракты вместо наследования. Интерфейс/контракт имеет единственную область ответственности. Интерфейсы/контракты склеиваются друг с другом композицией.
Есть интерфейс ISelector, в котором есть список опций и текущее выбранное значение.
Есть интерфес ISelectorPresenter с функциями GetRadialMenuDrawables(ISelector) и GetDropdownMenuDrawables(ISelector), на выходе которых ты получаешь список говна, которое тебе надо отрендерить. Есть рендерер, который отвечает только за рендер списка говна.
>>969309
Слушай, годно. Решает многие проблемы ООП, кстати. Но явно передавать по цепочке объект иногда слишком долго. Особенно если у тебя в техдоках архитектом чётко описан функционал каждого куска (в пример: Для разработчиков интерфейса требуется дропдаун с мультиселектом под GUI-библиотеку библиотекасобственнойразработкидлякофеварокподлуа, дропдаун должен быть написан на чтонибудьсиподобное с целью улучшения подддерживаемости и сопровождаемости кода и реализовывать следующие возможности: длинный список говна от UI-шников), то проще сделать это объектами
Слушай, годно. Решает многие проблемы ООП, кстати. Но явно передавать по цепочке объект иногда слишком долго. Особенно если у тебя в техдоках архитектом чётко описан функционал каждого куска (в пример: Для разработчиков интерфейса требуется дропдаун с мультиселектом под GUI-библиотеку библиотекасобственнойразработкидлякофеварокподлуа, дропдаун должен быть написан на чтонибудьсиподобное с целью улучшения подддерживаемости и сопровождаемости кода и реализовывать следующие возможности: длинный список говна от UI-шников), то проще сделать это объектами
Ответы969380
>>969380
Не, ну круто, как будто никто не знал этого. Но реально так никто и никогда не пишет, как прошлый архитект делал, так и следующий делает, а потом следующий за ним... Это как дедываивале-дедыговножрале, только в ИТ.
Не, ну круто, как будто никто не знал этого. Но реально так никто и никогда не пишет, как прошлый архитект делал, так и следующий делает, а потом следующий за ним... Это как дедываивале-дедыговножрале, только в ИТ.
Ответы969406
>>969400
Рассказываешь архитектору про МИКРОСЕРВИСЫ, что так сейчас модно и все так делают. Архитектор соглашается, ты уходишь делать свой микросервис с блекджеком и барышнями.
Рассказываешь архитектору про МИКРОСЕРВИСЫ, что так сейчас модно и все так делают. Архитектор соглашается, ты уходишь делать свой микросервис с блекджеком и барышнями.
Ответы969414
205 Кб, 1280x854
>>969406
АХУЕННА! Анон, ты меня серьёзно замотивировал, добра тебе. Ну и няшу держи
АХУЕННА! Анон, ты меня серьёзно замотивировал, добра тебе. Ну и няшу держи
>>969553
Если твой продакшн содержит 5м строк кода и наследование в 5 уровней, то там вообще ничего не нужно. Это неподдерживаемый пиздец.
Если твой продакшн содержит 5м строк кода и наследование в 5 уровней, то там вообще ничего не нужно. Это неподдерживаемый пиздец.
>>969580
Вот и я так думаю, а все эти ваши наследования, абсракции и интерфейсы - это всё от лукавого.
Вот и я так думаю, а все эти ваши наследования, абсракции и интерфейсы - это всё от лукавого.
>>969596
5 больше 3, а 3 уже много. Как обычно, прыщеглазик опозорился. Надо было 20 писать минимум, а то и 50.
5 больше 3, а 3 уже много. Как обычно, прыщеглазик опозорился. Надо было 20 писать минимум, а то и 50.
>>969309
Интерфейсы - это конечно пиздато, но мне нужно внутреннее поведение наследовать. Пример: 2 класса процессоров сообщений из очереди абсолютно одинаково работают с кешем, но сам метод Process() реализован по разному. Так нахуя мне дублировать код, м?
Интерфейсы - это конечно пиздато, но мне нужно внутреннее поведение наследовать. Пример: 2 класса процессоров сообщений из очереди абсолютно одинаково работают с кешем, но сам метод Process() реализован по разному. Так нахуя мне дублировать код, м?
Ответы969606
>>969605
передай процессор сообщений в конструкторе. Будь мужиком - используй DEPENDENCY INJECTION
передай процессор сообщений в конструкторе. Будь мужиком - используй DEPENDENCY INJECTION
>>969606
Туда и так передается ICache. Или надо еще одну сущность ДоставательИзКеша написать и интерфейс к ней, и ее инжектить. Охуенная бритва Оккама.
Туда и так передается ICache. Или надо еще одну сущность ДоставательИзКеша написать и интерфейс к ней, и ее инжектить. Охуенная бритва Оккама.
Ответы969611
25 Кб, 500x375
>>969611
Посоны... Мне кажется, или он какой-то жабаскрипто-довн?
Посоны... Мне кажется, или он какой-то жабаскрипто-довн?
Ответы969624
Ответы969626
>>969624
Т.е. поведение должно зависеть от того как создан инстанс, а не от типа? Ебать ты АРХИТЕКТОР.
Т.е. поведение должно зависеть от того как создан инстанс, а не от типа? Ебать ты АРХИТЕКТОР.
>>969626
Подожди, мы же не создаем инстансы, они достаются из контейнера с помощью контейнерных гномов.
Подожди, мы же не создаем инстансы, они достаются из контейнера с помощью контейнерных гномов.
>>969627
Какая разница, кто их создает. У тебя два инстанса одного типа отличаются поведением. Если ты тут не чуешь подвоха, то он тебя сам найдет на этапе отладки и тестирования. Кстати, что ты там выше пиздил про интерфейсы, а сам передаешь в конструктор какую-то ссаную лямбду.
Какая разница, кто их создает. У тебя два инстанса одного типа отличаются поведением. Если ты тут не чуешь подвоха, то он тебя сам найдет на этапе отладки и тестирования. Кстати, что ты там выше пиздил про интерфейсы, а сам передаешь в конструктор какую-то ссаную лямбду.
>>969630
Какая разница какой у них тип?
Какая разница какой у них тип?
>>969630
Наследование + тестирование? А вы, батенька, извращенец.
Если хочется интерфейса вместо лямбды -создаешь интерфейс с одним методом и передавать его в конструктор. Получится то же самое, только в профиль.
Наследование + тестирование? А вы, батенька, извращенец.
Если хочется интерфейса вместо лямбды -создаешь интерфейс с одним методом и передавать его в конструктор. Получится то же самое, только в профиль.
Ответы969634
>>969634
Поздравляю. Ты понял всю суть ООП. Теперь можешь устраиваться сениор девелопером на 500к в месяц в любую контору. И замени ICache на ICache<T>. А то параша получается.
Поздравляю. Ты понял всю суть ООП. Теперь можешь устраиваться сениор девелопером на 500к в месяц в любую контору. И замени ICache на ICache<T>. А то параша получается.
Ответы969638
>>969634
поэтому передай Func<T> и не выёбывайся
поэтому передай Func<T> и не выёбывайся
>>969635
Я пока только на 180к синьор. Хорошо что у меня в команде нет таких мастеров архитектуры.
Я пока только на 180к синьор. Хорошо что у меня в команде нет таких мастеров архитектуры.
Ответы969639
>>969638
Я правда не понимаю, что с этим кодом не так. Ну кроме интерфейса ICache, у которого сейчас слишком много методов Get.
Ты жил в крестовом лесу последние 10 лет и концепция IoC для тебя является асральной магией?
Я правда не понимаю, что с этим кодом не так. Ну кроме интерфейса ICache, у которого сейчас слишком много методов Get.
Ты жил в крестовом лесу последние 10 лет и концепция IoC для тебя является асральной магией?
>>967453 (OP)
Ок, держи в курсе.
>я не умею в лямбды
>я не умею в ООП
>все, кто умеет в лямбды и ООП - пидоры
Ок, держи в курсе.
>>967453 (OP)
Большего говна чем Java технологии не видел. Хотя Gradle и сам язык вполне себе кошерны.
Большего говна чем Java технологии не видел. Хотя Gradle и сам язык вполне себе кошерны.
>>969670
Проблема в том, что в лямбды и ООП не умеют очень многие, но они всё равно их пытаются применять. Не потому что нужно, а потому что иначе все будут считать их неквалифицированными программистами. Вот и хуярят их везде. А ОПу (да и мне, собственно) от этого печёт.
Проблема в том, что в лямбды и ООП не умеют очень многие, но они всё равно их пытаются применять. Не потому что нужно, а потому что иначе все будут считать их неквалифицированными программистами. Вот и хуярят их везде. А ОПу (да и мне, собственно) от этого печёт.
Ответы969731
>>969719
Почему печет? Да, я не умею в инкапсуцяцию, и даже не понимаю, для каких целей она нужна.
А вот с лямбами печет, да. Потому что лямбды не решают никаких проблем в ИТ, это просто юзлессс синтаксис,как то стало модно в статье на вики писать что ххх-ооп язык поддерживает функциональное программирование, и понеслось. ТО что применение у этой технологии - специальная олимпиада, никого не ебет.
>>969730
Оставлю это тебе, как и лямбды. У меня свое представление, о том что нужно, а что нет.
Почему печет? Да, я не умею в инкапсуцяцию, и даже не понимаю, для каких целей она нужна.
А вот с лямбами печет, да. Потому что лямбды не решают никаких проблем в ИТ, это просто юзлессс синтаксис,как то стало модно в статье на вики писать что ххх-ооп язык поддерживает функциональное программирование, и понеслось. ТО что применение у этой технологии - специальная олимпиада, никого не ебет.
>>969730
Оставлю это тебе, как и лямбды. У меня свое представление, о том что нужно, а что нет.
>>969731
Если логически дальше идти, то и обычные функции не нужны. Ебашь всё в мейне, не инкапсулирй переменные в свою область видимости, ебись с кавказцами.
Если логически дальше идти, то и обычные функции не нужны. Ебашь всё в мейне, не инкапсулирй переменные в свою область видимости, ебись с кавказцами.
>>969742
Так не иди дальше. Можно же пойти еще дальше, а там перфокарты.
А можно пойти вперед, и запихнуть в джаву/питон/шарп префиксную нотация, и сказать збс вышло, вункциональщина во все поля, экономия на длине записи, ебну один раз знак умножения вместо трех, * 3 4 5, ура, товарищи! Нахуя только?
Так не иди дальше. Можно же пойти еще дальше, а там перфокарты.
А можно пойти вперед, и запихнуть в джаву/питон/шарп префиксную нотация, и сказать збс вышло, вункциональщина во все поля, экономия на длине записи, ебну один раз знак умножения вместо трех, * 3 4 5, ура, товарищи! Нахуя только?
Ответы969758
>>969749
Потому что код var disabledAccounts = accounts.Where(account => account.Disabled) читается в отличие от варианта без лямбды
Потому что код var disabledAccounts = accounts.Where(account => account.Disabled) читается в отличие от варианта без лямбды
>>969731
Простейший пример необходимости лямбд - когда тебе нужно стандартной функцией отсортировать массив по убыванию, а не по возрастанию.
Да, ты можешь написать функцию в отдельном месте, но лямбда выглядит проще, органичнее и не создаёт ничего лишнего.
Простейший пример необходимости лямбд - когда тебе нужно стандартной функцией отсортировать массив по убыванию, а не по возрастанию.
Да, ты можешь написать функцию в отдельном месте, но лямбда выглядит проще, органичнее и не создаёт ничего лишнего.
>>970713
Контакты проволочкой замыкать
Контакты проволочкой замыкать
>>971580
Ньюфаг в треде.
Ньюфаг в треде.
>>972007
Пруфы будут?
Пруфы будут?
нейронные сети, хуета на рэндоме
>>967453 (OP)
И тут я понял, что жирно.
Или оп просто никогда не слышал про интелисенс, который будет подсказывать самому же программеру, что он может использовать
Вот у тебя 100 полей, из которых тебе нужно каждый раз выбирать только 2, а остальные ты использовать вне класса даже не собираешься. Зочем тогда они тебе нужны в выпадашке?
А так сделал их приватными и не мозолят они тебе глаза. А как же ридонли поля? Как ты их без инкапсуляции сделаешь? Напрмер, в либе.
>инкапсуляция нинужна
И тут я понял, что жирно.
Или оп просто никогда не слышал про интелисенс, который будет подсказывать самому же программеру, что он может использовать
Вот у тебя 100 полей, из которых тебе нужно каждый раз выбирать только 2, а остальные ты использовать вне класса даже не собираешься. Зочем тогда они тебе нужны в выпадашке?
А так сделал их приватными и не мозолят они тебе глаза. А как же ридонли поля? Как ты их без инкапсуляции сделаешь? Напрмер, в либе.
>>972196
Пора вам уже узнать про контейнерных гномов.
Пора вам уже узнать про контейнерных гномов.
>>972178
Ты серьезно все буквально воспринимаешь?
Допустим класс ты делаешь, у которого одна цель - десериализовать в себя json.
Ты серьезно все буквально воспринимаешь?
Допустим класс ты делаешь, у которого одна цель - десериализовать в себя json.
Ответы972286
Ответы972286
>>969083
Геттер далеко не всегда просто возвращает свойства класса. Проще всегда делать его, потому что хуй знает, когда тебе понадобится сделать его более умным.
Геттер далеко не всегда просто возвращает свойства класса. Проще всегда делать его, потому что хуй знает, когда тебе понадобится сделать его более умным.
>>969083
Потому что иначе тебе не нужны классы, просто пиши все в глобальной области и дергай переменные по имени, то есть программируй, как это делали 30 лет назад
Потому что иначе тебе не нужны классы, просто пиши все в глобальной области и дергай переменные по имени, то есть программируй, как это делали 30 лет назад
Тред утонул или удален.
Это копия, сохраненная 7 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 7 мая 2017 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.