[Ответить в тред] Ответить в тред



[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 84 | 3 | 30
Назад Вниз Каталог Обновить

ИТ кукарекатсва тред. Аноним 05/04/17 Срд 18:43:59  967453  
maxresdefault.jpg (180Кб, 1280x720)
ИТТ обсуждает самые петуханские технологии и техники програмирования. Пожалуй, начну.

Лямда-программирование. Эталон, в котором можно мерять выпендрежность и петуханство в ИТ. Позволяет даже самый простой код сделать совершенно не читаемым, даже самую быструю функцию превратить в стоп-кран всей системы, ради того, что бы сэкономить 4 кб на диске. Функциональное програмирование? Используй функциональный язык, а не лямбы на питоне, это как залить ботокс в сиськи, и задвигать про бодибилдинг, вроде похожу, но наеб чистой воды.

Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать. Для довунов с памятью 3 мб, сегодня написал, завтра забыл.
Аноним 05/04/17 Срд 18:51:00  967459
>>967453 (OP)
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.

Не от себя лол, а от пользователей твоих классов, тебе что проще, вызвать у библиотечного класса метод или разбираться, как он устроен изнутри?
Аноним 05/04/17 Срд 18:51:29  967460
>>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-шке)
Аноним 05/04/17 Срд 18:53:18  967464
>>967453 (OP)
лисперы как дети
придумываюи всякую хуету, дают ей красивые названия навроде "лямбда" "функция высшего порядка" "первокласный обьект" и всем
заявляют что ето алмазы которых нигде больше нет.
а если приглядется и почитать ихнюю невнятную документацию то видиш что никакие ето не алмазы а стекляшки которых полно на
улице валяется
Аноним 05/04/17 Срд 18:53:46  967465
>>967453 (OP)
монады ето динамический массив содержащией еллементы любых типов
такое есть во всех быдлокодерских языках
а в лиспах ничего кроме монад нету
вот они на них и молятся, пишут книги, дрочат, сочиняют сказки и легенды
Аноним 05/04/17 Срд 19:45:38  967493
>>967453 (OP)
Подписался на годный тред. Унижаем адептов ООП и ФП в этом ИТТ тренде! Только КОП, только юнити-ультра-хардкор!
Аноним 05/04/17 Срд 20:50:32  967525
Годный трет от го-довена.
Аноним 05/04/17 Срд 23:04:35  967704
>>967453 (OP)
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать
Это скрытие ненужных деталей за минимальным интерфейсом.

Или у тебя кран на кухне загромождён огромным количеством водопроводных труб, вентилей в разные квартиры и счётчиками воды вперемешку?
Аноним 06/04/17 Чтв 00:31:02  967755
>>967453 (OP)
Самое петуханское: любая браузерная фронтопараша.

/thread
Аноним 06/04/17 Чтв 01:37:49  967793
>>967453 (OP)
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.
Была уже в 50-е, даже задолго до ЕС ЭВМ.
Аноним 07/04/17 Птн 22:50:35  969002
>>967704
Двачаю.

Но лучше всего как в Питоне, чтобы private функции отличались от public лишь формально (там ведь так, да?). То есть есть методы "бери и используй", а есть "тут нужно понимать внутреннюю структуру, но тоже можно вызвать, если очень надо".
Чтобы не было лишней ебли со всякими private наследованиями, дружественными классами и прочим.
Аноним 07/04/17 Птн 22:59:21  969004
Поцоны, а чо скажете про константность? С одной стороны, полезно для отладки и оптимизации. Но с другой, столько ебли с ней, да и во многих языках без неё нормально живут.
Аноним 07/04/17 Птн 23:07:01  969009
>>967453 (OP)
>Лямда-программирование
Чего, блять? Если кукарекать, то правильно. Читай по губам, ОП-хуй: лямбда функции

Алсо, тред до сих пор не обосрал наследование. Плохой тред
Аноним 08/04/17 Суб 00:32:34  969029
>>967453 (OP)
>Инкапсуляция в ООП. Ну пиздец же. Сам от себя свой же код прятать.
Тебя тоже бесит что внутренние органы спрятаны под кожей и мышцами, и нельзя сделать себе прямой массаж сердца?
Аноним 08/04/17 Суб 06:43:28  969080
>>969009
Что плохого в наследовании?
Аноним 08/04/17 Суб 06:48:57  969081
>>967453 (OP)
питухон
и
т
у
х
о
н
Dmitry 08/04/17 Суб 07:06:35  969082
>>969080
Неприменимость в продакшне.
Dmitry 08/04/17 Суб 07:09:39  969083
>>967459
Ну а если мне всего то переменную взять надо? Делать геттер? Пиздец какой-то, его надо делать когда действительно нужно, а не когда можно.
Dmitry 08/04/17 Суб 07:10:54  969084
>>969004
Ненужно, для дебажки есть gdb, IDA.
Аноним 08/04/17 Суб 11:32:59  969178
>>969082
Немношк неправ. Если ты начинаешь писать код "с нуля", то тебе нужно постепенно двигаться от простого объекта к сложному, наследуя все свойства и методы предыдущего. Пример: ректангл->сёрфейс->поле->выпадающий список. И всё это единообразно пишется на буфер экрана, потому что методы создания/уничтожения наследуются от самого от ректангла
Аноним 08/04/17 Суб 12:49:54  969227
>>969178
А теперь мне нужно сделать радиальное меню а не выпадающий список. Или сёрфейс у меня треугольник, а не прямоугольник.

Но самый шквар в таком наследовании - все наследники должны уметь делать всё, связанное с операциями над ним. Выпадающий список умеер рисовать себя во всех состояниях, выбирать элемент из списка, подключать датасорс элементов, уничтожать/cоздавать ресурсы для буфера экрана, вытирать жопу своему автору и т.д.

Говнище же
Аноним 08/04/17 Суб 14:48:07  969290
>>969227
Предложи вариант лучше? Микромодульная система?
Аноним 08/04/17 Суб 15:31:01  969309
>>969290
Интерфейсы/контракты вместо наследования. Интерфейс/контракт имеет единственную область ответственности. Интерфейсы/контракты склеиваются друг с другом композицией.

Есть интерфейс ISelector, в котором есть список опций и текущее выбранное значение.
Есть интерфес ISelectorPresenter с функциями GetRadialMenuDrawables(ISelector) и GetDropdownMenuDrawables(ISelector), на выходе которых ты получаешь список говна, которое тебе надо отрендерить. Есть рендерер, который отвечает только за рендер списка говна.

Аноним 08/04/17 Суб 17:36:18  969374
>>969309
Слушай, годно. Решает многие проблемы ООП, кстати. Но явно передавать по цепочке объект иногда слишком долго. Особенно если у тебя в техдоках архитектом чётко описан функционал каждого куска (в пример: Для разработчиков интерфейса требуется дропдаун с мультиселектом под GUI-библиотеку библиотекасобственнойразработкидлякофеварокподлуа, дропдаун должен быть написан на чтонибудьсиподобное с целью улучшения подддерживаемости и сопровождаемости кода и реализовывать следующие возможности: длинный список говна от UI-шников), то проще сделать это объектами
Аноним 08/04/17 Суб 17:52:37  969380
>>969374
Расскажите вашему архитектору про SOLID как-нибудь.
Аноним 08/04/17 Суб 18:12:29  969400
>>969380
Не, ну круто, как будто никто не знал этого. Но реально так никто и никогда не пишет, как прошлый архитект делал, так и следующий делает, а потом следующий за ним... Это как дедываивале-дедыговножрале, только в ИТ.
Аноним 08/04/17 Суб 18:30:06  969406
>>969400
Рассказываешь архитектору про МИКРОСЕРВИСЫ, что так сейчас модно и все так делают. Архитектор соглашается, ты уходишь делать свой микросервис с блекджеком и барышнями.
Аноним 08/04/17 Суб 18:53:36  969414
RKV6PTfzpM.jpg (205Кб, 1280x854)
>>969406
АХУЕННА! Анон, ты меня серьёзно замотивировал, добра тебе. Ну и няшу держи
Аноним 09/04/17 Вск 00:27:37  969553
>>969082
Если твой "продакшн" - это лаба2, то там наследование не нужно, согласен.
Аноним 09/04/17 Вск 01:13:57  969572
>>969553
Если твой продакшн содержит 5м строк кода и наследование в 5 уровней, то там вообще ничего не нужно. Это неподдерживаемый пиздец.
Аноним 09/04/17 Вск 01:24:31  969578
>>969572
Мой продакшен содержит 5м строк в 1 классе в 1 файле. Я все правильно делаю?
Аноним 09/04/17 Вск 01:29:38  969580
>>969578
Да. Продолжай в том же духе.
Аноним 09/04/17 Вск 02:06:29  969587
>>969580
Вот и я так думаю, а все эти ваши наследования, абсракции и интерфейсы - это всё от лукавого.
Аноним 09/04/17 Вск 02:40:44  969596
>>969572
> 5 уровней наследования, сложна, сложна блядь, нихуя непонятно
Аноним 09/04/17 Вск 02:42:31  969598
>>969596
5 больше 3, а 3 уже много. Как обычно, прыщеглазик опозорился. Надо было 20 писать минимум, а то и 50.
Аноним 09/04/17 Вск 02:52:50  969605
>>969309
Интерфейсы - это конечно пиздато, но мне нужно внутреннее поведение наследовать. Пример: 2 класса процессоров сообщений из очереди абсолютно одинаково работают с кешем, но сам метод Process() реализован по разному. Так нахуя мне дублировать код, м?
Аноним 09/04/17 Вск 02:55:35  969606
>>969605
передай процессор сообщений в конструкторе. Будь мужиком - используй DEPENDENCY INJECTION
Аноним 09/04/17 Вск 02:57:52  969607
>>969606
Тогда чем это принципиально будет отличаться от ФП?
Аноним 09/04/17 Вск 03:00:06  969608
>>969606
Туда и так передается ICache. Или надо еще одну сущность ДоставательИзКеша написать и интерфейс к ней, и ее инжектить. Охуенная бритва Оккама.
Аноним 09/04/17 Вск 03:06:35  969611
>>969608
Процессор значит передавай, лол
>>969607
Тем, что все "лямбда-функции" у тебя заменены на интерфейсы и поименованны.
Аноним 09/04/17 Вск 03:23:18  969616
58466551.jpg (25Кб, 500x375)
>>969611
Посоны... Мне кажется, или он какой-то жабаскрипто-довн?
Аноним 09/04/17 Вск 03:28:54  969619
>>969611
Нихуя не понял, куда надо передать процессор в данном примере
https://pastebin.com/K1NKnT77
Аноним 09/04/17 Вск 03:38:01  969624
>>969619
Хули у вас всё так сложно?
https://pastebin.com/ru3dZN6d
Аноним 09/04/17 Вск 03:40:46  969626
>>969624
Т.е. поведение должно зависеть от того как создан инстанс, а не от типа? Ебать ты АРХИТЕКТОР.
Аноним 09/04/17 Вск 03:44:24  969627
>>969626
Подожди, мы же не создаем инстансы, они достаются из контейнера с помощью контейнерных гномов.
Аноним 09/04/17 Вск 03:47:11  969628
>>969626
Естественно. Ты вот этого послушай >>969627, он шарит
Аноним 09/04/17 Вск 03:54:59  969630
>>969627
Какая разница, кто их создает. У тебя два инстанса одного типа отличаются поведением. Если ты тут не чуешь подвоха, то он тебя сам найдет на этапе отладки и тестирования. Кстати, что ты там выше пиздил про интерфейсы, а сам передаешь в конструктор какую-то ссаную лямбду.
Аноним 09/04/17 Вск 03:59:04  969632
>>969630
Какая разница какой у них тип?
Аноним 09/04/17 Вск 03:59:13  969633
>>969630
Наследование + тестирование? А вы, батенька, извращенец.

Если хочется интерфейса вместо лямбды -создаешь интерфейс с одним методом и передавать его в конструктор. Получится то же самое, только в профиль.
Аноним 09/04/17 Вск 04:15:17  969634
>>969633
Стало все просто и понятно
https://pastebin.com/zNTFs4V3
Аноним 09/04/17 Вск 04:19:58  969635
>>969634
Поздравляю. Ты понял всю суть ООП. Теперь можешь устраиваться сениор девелопером на 500к в месяц в любую контору. И замени ICache на ICache<T>. А то параша получается.
Аноним 09/04/17 Вск 04:23:39  969637
>>969634
поэтому передай Func<T> и не выёбывайся
Аноним 09/04/17 Вск 04:23:57  969638
>>969635
Я пока только на 180к синьор. Хорошо что у меня в команде нет таких мастеров архитектуры.
Аноним 09/04/17 Вск 04:27:43  969639
>>969638
Я правда не понимаю, что с этим кодом не так. Ну кроме интерфейса ICache, у которого сейчас слишком много методов Get.
Ты жил в крестовом лесу последние 10 лет и концепция IoC для тебя является асральной магией?
Аноним 09/04/17 Вск 09:44:53  969670
>>967453 (OP)
>я не умею в лямбды
>я не умею в ООП
>все, кто умеет в лямбды и ООП - пидоры
Ок, держи в курсе.
Аноним 09/04/17 Вск 10:07:40  969674
>>967453 (OP)
Большего говна чем Java технологии не видел. Хотя Gradle и сам язык вполне себе кошерны.
Аноним 09/04/17 Вск 11:37:50  969719
>>969670
Проблема в том, что в лямбды и ООП не умеют очень многие, но они всё равно их пытаются применять. Не потому что нужно, а потому что иначе все будут считать их неквалифицированными программистами. Вот и хуярят их везде. А ОПу (да и мне, собственно) от этого печёт.
Аноним # OP  09/04/17 Вск 11:51:28  969728
>>969670
Я так же не умею в анальных секс с кавказцами. Держу в курсе.
Аноним 09/04/17 Вск 11:56:25  969730
>>969728
Ты, главное, не сдавайся. Если много пытаться - обязательно получится.
Аноним 09/04/17 Вск 11:58:02  969731
>>969719
Почему печет? Да, я не умею в инкапсуцяцию, и даже не понимаю, для каких целей она нужна.
А вот с лямбами печет, да. Потому что лямбды не решают никаких проблем в ИТ, это просто юзлессс синтаксис,как то стало модно в статье на вики писать что ххх-ооп язык поддерживает функциональное программирование, и понеслось. ТО что применение у этой технологии - специальная олимпиада, никого не ебет.
>>969730
Оставлю это тебе, как и лямбды. У меня свое представление, о том что нужно, а что нет.
Аноним 09/04/17 Вск 12:09:29  969742
>>969731
Если логически дальше идти, то и обычные функции не нужны. Ебашь всё в мейне, не инкапсулирй переменные в свою область видимости, ебись с кавказцами.
Аноним 09/04/17 Вск 12:12:13  969746
>>969742
все, кроме сама - не нужно синтаксический сахар
Аноним 09/04/17 Вск 12:12:54  969747
>>969746
асма, естественно
Аноним 09/04/17 Вск 12:14:58  969749
>>969742
Так не иди дальше. Можно же пойти еще дальше, а там перфокарты.
А можно пойти вперед, и запихнуть в джаву/питон/шарп префиксную нотация, и сказать збс вышло, вункциональщина во все поля, экономия на длине записи, ебну один раз знак умножения вместо трех, * 3 4 5, ура, товарищи! Нахуя только?
Аноним 09/04/17 Вск 12:15:27  969752
>>969747
Машинных кодов тогда уж.
Аноним 09/04/17 Вск 12:21:46  969758
>>969749
Потому что код var disabledAccounts = accounts.Where(account => account.Disabled) читается в отличие от варианта без лямбды
Аноним 09/04/17 Вск 14:34:58  969978
>>969731
Простейший пример необходимости лямбд - когда тебе нужно стандартной функцией отсортировать массив по убыванию, а не по возрастанию.

Да, ты можешь написать функцию в отдельном месте, но лямбда выглядит проще, органичнее и не создаёт ничего лишнего.
Аноним 10/04/17 Пнд 07:14:51  970713
>>969752
Они тоже не нужны, только логические вентили, только ХАРДКОР!
Аноним 10/04/17 Пнд 23:07:13  971328
>>970713
Контакты проволочкой замыкать
Аноним 11/04/17 Втр 09:47:42  971573
>>969731
какой юзлес синтаксис лошара блять :3
А ну-ка пиздуй лабы доделывать
Аноним 11/04/17 Втр 10:18:52  971580
>>967464
>ихнюю
быдло в треде
Аноним 11/04/17 Втр 10:28:44  971583
>>971580
Ньюфаг в треде.
Аноним 11/04/17 Втр 20:22:37  972007
>>971580
Училка по русскому на дваче
Аноним 11/04/17 Втр 20:24:58  972011
>>972007
Пруфы будут?
Аноним 11/04/17 Втр 20:30:30  972014
нейронные сети, хуета на рэндоме
Аноним 11/04/17 Втр 23:53:41  972167
>>967453 (OP)
>инкапсуляция нинужна
И тут я понял, что жирно.
Или оп просто никогда не слышал про интелисенс, который будет подсказывать самому же программеру, что он может использовать
Вот у тебя 100 полей, из которых тебе нужно каждый раз выбирать только 2, а остальные ты использовать вне класса даже не собираешься. Зочем тогда они тебе нужны в выпадашке?

А так сделал их приватными и не мозолят они тебе глаза. А как же ридонли поля? Как ты их без инкапсуляции сделаешь? Напрмер, в либе.
Аноним 12/04/17 Срд 00:03:58  972178
>>972167
Если у тебя в классе 100 полей то у меня для тебя плохие новости.
Аноним 12/04/17 Срд 00:53:31  972196
>>972167
>100 полей
Чую синглтон.
Аноним 12/04/17 Срд 01:00:20  972200
>>972196
Пора вам уже узнать про контейнерных гномов.
Аноним 12/04/17 Срд 09:19:59  972283
>>972178
Ты серьезно все буквально воспринимаешь?
Допустим класс ты делаешь, у которого одна цель - десериализовать в себя json.
Аноним 12/04/17 Срд 09:22:28  972285
>>972178
Да хоть 1000 полей, почему ты буквально воспринимаешь?
Даже 10 полей глаза мозолят.
Аноним 12/04/17 Срд 09:23:54  972286
>>972285
>>972283
обосрался с постами, но мысль, надеюсь, выразил понятно.
Аноним 18/04/17 Втр 16:04:23  975605
>>969083
Геттер далеко не всегда просто возвращает свойства класса. Проще всегда делать его, потому что хуй знает, когда тебе понадобится сделать его более умным.
Аноним 18/04/17 Втр 16:18:25  975618
>>969083
Потому что иначе тебе не нужны классы, просто пиши все в глобальной области и дергай переменные по имени, то есть программируй, как это делали 30 лет назад
Аноним 25/04/17 Втр 22:57:18  980176
>>967453 (OP)
>ИТТ обсуждает самые петуханские технологии и техники програмирования
Вим, линукс дома.

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 84 | 3 | 30
Назад Вверх Каталог Обновить

Топ тредов
Избранное