Сохранен 534
https://2ch.hk/pr/res/979641.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

ООП и пиздец вокруг него

 Аноним 25/04/17 Втр 11:01:19 #1 №979641 
d071d0dd31e8469fb7f0b7f82ce7ba93.png
Как-то в одной компании меня серьезно дрочили по поводу ООП, ну то есть как "дрочили", я делал нечто, считая что это всё по ООП, но тимлид говорил "Неее, это процедурщина, давай заново", я сидел в полной прострации потому что мне казалось, ну епта, что не так-то? Вот же объекты поделены, вот они взаимодействуют, никто внутрь другого объекта не лезет, за переменной через весь проект тянутся не нужно, что же не так? Порыскав я нашел несколько годных примеров, вроде бы поднатаскался в этой теме, но один хуй "это процедурщина" и всё. "Да ебанный же ж в рот", подумал я и решил найти однозначное определение того, что называется ООП и как с ним работать, я открыл гугл и охуел. Казалось бы, ООП это вполне четкий инструмент, казалось бы, программирование это же не гадание на картах, там каждый модуль известен, работает вполне определенно, казалось бы что уже могли бы сто раз прийти к подробной инструкции, но хуй там прыгал. Я увидел множество форумов где люди срутся, выясняя что же такое ООП и как с ним работать! Охуеть! Один говорит избитые фразы про "инкапсуляцию, наследование, полиморфизм и абстракцию", но это и так все знают, второй говорит что ООП вообще не существует, а это просто красивое название процедурщины, третий вообще хуесосит двух предыдущих. И честно говоря я дезориентирован от такой херни, я просто не понимаю как такое может быть. Кто-нибудь может себе представить как механики обсуждают двигатель внутреннего сгорания и никто толком не может объяснить как он работает, а кто-то из механиков вообще говорит что ДВС это просто красивое название парового двигателя? Вот и получается что нет никакого четкого однозначного ответа, примера о ООП. Можно сколько угодно читать Александреску, Буча и прочих, но так и не найти нормального ответа как работать с ООП правильно, чтобы никто не доебался. Сразу оговорюсь что пояснения типа "класс Собака наследуется от класса Животное, и имеет методы ходить(), жрать(), срать()" сразу можно отправлять нахуй. Такие примеры дают базовое представление, но в реальных больших проектах они тебе никак не помогут, это кстати проблема многих учебных курсов - они дают базу, рассчитанную на хелловорлды, а не на огромные проекты.
Я не надеюсь что увижу тут дельный ответ, совет, рекомендации, скорее всего всё скатится в такой же срач как и повсюду.
Аноним 25/04/17 Втр 11:18:00 #2 №979659 
>>979641 (OP)
Чем все закончилось-то с тимлидом?
Аноним 25/04/17 Втр 11:19:30 #3 №979662 
>>979659
Я сказал что не смогу сделать проект в срок и уволился.
Аноним 25/04/17 Втр 11:40:05 #4 №979675 
>>979641 (OP)
Соболезную.

ООП это идея. Это не класс собака, котрый наследуется от животного. Это именно идея о том, что так единственно правильно. И как это часто бывает с идеями, они не всегда подходят всем и всегда.
Если у тебя ООП головного мозга и ты во всем видишь объект, то ты освоил ООП. Если же ты просто видишь задачу и начинаешь ее решать на ходу придумывая алгороитм, то скорее всего объект у тебя не сформируется и на ООП похоже не будет. Что никак не влияет на успешность решения задачи.

То что требовал от тебя твой тимлид это почти наверняка не ООП, а его представления об ООП. такое бывает когда в конторе текучка и потом кому то нужно будет разбираться в чужом коде. Вот тимлид и хочет чтоб заранее было написано как ему удобнее. При этом его представление об ООП может отличаться от чьего то еще.
В общем, надо было спросить что конкретно хочет отдельно взятый тимлид, а не искать ООП, которого нет.
Аноним 25/04/17 Втр 12:03:53 #5 №979696 
>>979675
>В общем, надо было спросить что конкретно хочет отдельно взятый тимлид, а не искать ООП, которого нет.
Кнеижку зитоле написать, "ООП Которого Нет".
Аноним 25/04/17 Втр 12:10:29 #6 №979701 
>>979696
Таких книжек уже навалом. Проблема в том, что два человека используя одни и те же догмы могут по разному реализовать одну и ту же задачу. Просто выберут разные уровни абстракции. И получится что оба писали ООП, но получилось нихуя не похоже.
Аноним 25/04/17 Втр 12:12:53 #7 №979704 
С функциональным программированием все проще.
Аноним 25/04/17 Втр 12:13:20 #8 №979705 
>>979641 (OP)
ОХ, бля, ОП, была похожая ситуация, тимлид так заебал, что пришлось уволиться, затем он притащил своих корешей и со временем пытался подсидеть техдира, но сам был выпидорнут. Один в один хуйню мне эту же втирал, твоего не георгий случаем?
Аноним 25/04/17 Втр 12:16:22 #9 №979710 
>>979675
Ну я спрашивал естественно, что не так, но он отвечал общими фразами, когда человек говорит много и нихуя конкретно.

>>979705
> твоего не георгий случа
Нет, не Георгий.
Аноним 25/04/17 Втр 12:32:18 #10 №979715 
поэтому дропнул ооп в пользу функциональщины, ооп для пидоров.
Аноним 25/04/17 Втр 12:34:48 #11 №979718 
>>979701
>Проблема в том, что два человека используя одни и те же догмы могут по разному реализовать одну и ту же задачу. Просто выберут разные уровни абстракции. И получится что оба писали ООП, но получилось нихуя не похоже.

Неа, проблема как бы не в этом таки.
Это уже следствие.

Проблема в том, что ООП подход, не является универсальным.

Вернее так, он неспособен описывать реальность, в принципе. По крайней мере когда речь идет о программных и аппаратных средствах.

ООП - это красивая концепция для описания ЗАДАЧ и БИЗНЕС ПРОЦЕССОВ, в виде графиков там.
Но не для программирования, не для написания кода эти задачи решающего.
Аноним 25/04/17 Втр 12:58:41 #12 №979740 
процедурщина, это когда не используется объект как состояние, а состояние передается аргументами между процедурами?
есть такая памятка, что, может быть что-то не так: когда у процедуры больше 3 аргументов.
Аноним 25/04/17 Втр 13:02:49 #13 №979744 
>>979715
И как с вакансиями дела?
Аноним 25/04/17 Втр 13:17:39 #14 №979760 
>>979704
Нет. Такая же путаница.
sageАноним 25/04/17 Втр 13:27:34 #15 №979770 
>>979740
даже дело не в том, сколько аргументов, а например
foo(obj)
... do something
... blah(obj)

blah(obj)
... do something
... blahblah(obj)
Аноним 25/04/17 Втр 13:29:14 #16 №979772 
>>979641 (OP)
>Я не надеюсь что увижу тут дельный ответ,

Правильно делаешь, ходить по книжкам не научишься. Взял, сука, и пошел ==> Взял и научился ООП.
Аноним 25/04/17 Втр 13:43:29 #17 №979780 
>>979641 (OP)
>меня серьезно дрочили по поводу ООП
ООП — это раковая опухоль. А твой тимлид даун. Впрочем, если вы писали на Java, то тимлида уже нельзя вылечить. У него метастазы в мозге.
Аноним 25/04/17 Втр 14:15:45 #18 №979798 
>>979760
Например?
Аноним 25/04/17 Втр 14:25:52 #19 №979810 
>>979744
Как с деньгами обстоит вопрос?
Аноним 25/04/17 Втр 14:53:44 #20 №979829 
смысл ООП упрощения разработки для быдлеца, ускорение разработки, адаптация тупых пезд, не имеющих абстрактного мышления. Есть много подходов к разработке, пишешь в том стиле, в котором умеешь. Многие программы вообще логичней в процедурном стиле создавать, особенно трансформирующие системы, где данные на вход поступают, обработанные данные имеем на выходе.
Аноним 25/04/17 Втр 14:58:21 #21 №979833 
>>979829
Вообще-то процедурщина требует меньше абстрактного мышление, чем ооп. Поэтому собственно и обучение никогда с ооп не начинают
Аноним 25/04/17 Втр 15:11:02 #22 №979849 
.png
>>979798
Аноним 25/04/17 Втр 15:11:24 #23 №979850 
>>979833
>процедурщина требует меньше абстрактного мышление, чем ооп
Абсолютно такого же мышления она требует. Проблема в размере проекта, а не в языке.
Аноним 25/04/17 Втр 15:14:21 #24 №979853 
>>979659
Поебались
Аноним 25/04/17 Втр 15:40:42 #25 №979877 
>>979641 (OP)
Зачем вообще придумали этот ООП? В ассемблере нету никаких объектов, там одни процедуры, команды и переменные.
Аноним 25/04/17 Втр 15:41:13 #26 №979878 
>>979849
>жаваскрипт
Аноним 25/04/17 Втр 15:50:18 #27 №979883 
>>979780
ООП головного мозга.
Осталось что бы кто нибудь сгенерил картинку на этот мем.
Аноним 25/04/17 Втр 15:51:13 #28 №979884 
>>979878
Да. Примерно про это и говорю.
sageАноним 25/04/17 Втр 15:51:45 #29 №979886 
обьект - массив
класс - способ задания схемы пассива указатлелй на данные, на методы и на другие массивы
Аноним 25/04/17 Втр 15:52:10 #30 №979887 
>>979877
Про регистры забыл.
Аноним 25/04/17 Втр 15:59:41 #31 №979892 
>>979886
Ну и? Открыл Америку, так это и реализовано под оберткой, в CLR, например.
sageАноним 25/04/17 Втр 16:02:32 #32 №979893 
>>979892
америка - израиль
sageАноним 25/04/17 Втр 16:12:54 #33 №979903 
>>979893
Ты — хуй
sageАноним 25/04/17 Втр 16:23:50 #34 №979915 
blob
>>979903
ловите кошерного
Аноним 25/04/17 Втр 16:43:46 #35 №979936 
>>979915
«Еврейской крови нет в крови моей.
Но сыплю в раны перец
я всем антисемитам, как еврей,
и потому - я настоящий немец!»
sageАноним 25/04/17 Втр 17:06:47 #36 №979949 
blob
>>979936
«Ничто во мне про это не забудет!
«Интернационал» пусть прогремит,
когда навеки похоронен будет
последний на земле антисемит.»
sageАноним 25/04/17 Втр 17:14:26 #37 №979953 
>>979849
>жс — функциональный язык программирования
Эта шутка никогда не устареет.
Аноним 25/04/17 Втр 17:23:39 #38 №979957 
>>979887
И стек!
Аноним 25/04/17 Втр 17:52:13 #39 №979963 
>>979957
И прерывания!
Dmitry 25/04/17 Втр 18:00:13 #40 №979968 
>>979641 (OP)
OOP по своей сути процедурщина, хуле он хотел то?
Процедурщина это когда процедурой меняется состояние чего нибудь что ты не указываешь явно. Функциональщина возвращает данные которыми ты сам распоряжаешься. ООП использует процедурный стиль. Так что хуй знает вообще чего твой тимлид-долбоеб хотел.
Ты сам долбоеб, надо было конкретно спросить что ему надо.
Аноним 25/04/17 Втр 18:01:19 #41 №979969 
>>979953
А почему нет? Многие языки предоставляют функциональность в той или инной степени, в жс для этого дохуя возможностей.
Аноним 25/04/17 Втр 18:27:22 #42 №979981 
>>979641 (OP)
Чувствую аналогичное говно в голове по поводу ООП. Никто блядь вообще не знает, что это такое. В программировании вообще много где аналогичный визг, а на практике никто точно толком не знает, как это делать и зачем, и надо ли вообще.

А за такое наследование надо в жопу ебать.
Аноним 25/04/17 Втр 18:46:25 #43 №979988 
redpill.jpg
>>979641 (OP)
Делает такой приём/паттерн твой код понятнее, проще, в том числе для других, яснее выражает решаемую проблему, удешевляет разработку?

Да: используй его.
Нет: не используй его.
Аноним 25/04/17 Втр 18:54:17 #44 №979991 
>>979969
Это не упоминая библиотек типо react и immutable.js, где все сделано в функциональном стиле.
Аноним 25/04/17 Втр 18:54:34 #45 №979992 
>>979969
Да там только функции как объекты первого класса, только и всего. Для хеллоуволдов уровня фибоначчи этого может и достаточно, но писать что-то объёмное в функциональном стиле на языке, где:
1. Not everything is an expression
2. function в качестве лямбда-оператора FUNCTION, Карл!
3. коллбек-хелл вместо монад
4. уёбищная типизация
5. отсутствуют плюшки типа каррирования,
будет только js-хипстер с подворотами, для которого функционально - значит ни так как фсе.
Алсо, first-class functions сейчас есть вообще везде, но мы не называем джаву функцинальным яп. да, там нельзя определить функцию вне класса, в отличии от s, но это не так уж существенно
Аноним 25/04/17 Втр 19:03:36 #46 №979997 
>>979992
>function в качестве лямбда-оператора
c разморозкой, уже давно есть (() => "yoba")()
Аноним 25/04/17 Втр 19:05:04 #47 №979998 
>>979992
>3. коллбек-хелл вместо монад
Генераторы, асинк, авейты
>каррирования
https://learn.javascript.ru/bind
Аноним 25/04/17 Втр 19:45:22 #48 №980015 
>>979992
Ты знаешь что такое монада? Объяснить сможешь? Джуну к примеру.
Аноним 25/04/17 Втр 19:51:54 #49 №980020 
>>979641 (OP)
Для «объекта» не существует формального определения. ООП вообще никак не формализовано. Это набор ad hoc практик, интуиций и советов бывалых охотников в стиле «чтобы копье лучше било мамонта, его должна обоссать девственица в полнолуние».

Минимально необходимым для ООП, по всей видимости, должно быть определение "модули как первоклассные объекты". А вот достаточным является хуй знает что. Для Анала Кея, например, это была динамическая сгущёнка и модель акторов. Хотя этот вариант не прижился и догнивает себе в обжС. Для лисперов это был CLOS и мультиметоды. Для джява-индусов это абстракпроксисинглтонбины.

Вообще, если разобраться, то необходимость наследования надумана и прилеплена как-то сбоку. Просто статическим дебилам нужна была какая-то система, но ничего умнее сабтайпинга тогда не придумали, вот и обмазались наследованием. По этой причине, динамическим петушкам половина паттернов из GoF вообще не нужна изначально, потому как им эти проблемы совершенно чужды. В джява-ынтерпрайз ООП '90s style были просто монструозные развесистые деревья наследования и 100500 файлов содержащих совещенно вырванные из контекста что нибудь переопределящие 5 строчек нихуя непонятно что делаеющего кода. К середине нулевых народ, понажравшись extend говна вдоволь, стал писать более менее плоско, используя интерфейсы и трейты с жынериками, предпочитая композицию хрупкому быдлонаследованию. Так что из "великой тройки" быдлонаследование скоро будет отправлено на помоечку. По поводу инкапсуляции, она была ещё в модульном программированни, поэтому отдельно её упоминать нет смысла. Полиморфизм это вообще отдельный разговор; он может быть достигнут вообще ни к каким "объектам" не прибегая. Под определение "наличие множества реализаций при одном интерфейсе" попадает вообще дохуя вариантов и адхоковых, и параметрических, и структурных, и ещё хуй знает каких.

Скорее всего, подходящее определение это - "представление программы как множества объектов и связей между ними", т.е. "множества + отношения". Но это определение полностью покрывает разве что РБД, с программи всё сложнее, поскольку суть программ - это пошаговое вычисление, а не отношения. Поэтому, внутри "объектов" пашет обычный процедурный быдлокод, и связи продевает обычный процедрный быдлокод, и композитные объекты билдит обычный процедурный быдлокод и т.д. По всей видимости, суть ООП - заворачивание процедурного быдлокода в некую "объектную" оболочку, в которой его можно как-то соотнести с другим быдлокодом, так же завёрнутым в обололочку. Многие просто так увлекаются программированием всей этой надстроечной шелухи, что забывают что "всё делает" как раз тот самый быдлокод в объектах, а сами объекты и код, комбинирующих их - это лишь распределяющая администрация, следящая за порядком, так сказать. То есть, в принципе, изначального определения "модули как первоклассные объекты" вполне достаточно, всё остальное - это выдумки тех или иных видов сектантов.
Аноним 25/04/17 Втр 19:53:07 #50 №980021 
>>980015
https://pastebin.com/rAjWMQAX
Аноним 25/04/17 Втр 20:01:17 #51 №980028 
>>980021
Это хуйня, а не монада.
Без дженериков высшего порядка даже функтор сделать нельзя.
Аноним 25/04/17 Втр 20:12:39 #52 №980034 
1339864188095.jpg
все просто: просишь начальника показать ЕГО код, и потом делаешь примерно так же
никаких конфликтов
второе: не нужно пытаться таки выяснить что такое ооп "в общем", а надо разбиратся как поддерживаются ключевые концепции опп в текущем языке на котором идет ваша работа
пример: в с++ есть три вида полиморфизма, статический реализуется шаблонами, динамический - виртуальными функциями, и adhoc перегрузкой функций; это официальная позиция по языку, в основном принимаемая сообществом крестовиков; НО при этом попробуйте те же самые термины применить в сообществе функциональщиков, они сразу взвоют, тк у них там свои положения по этому вопросу..
те две вещи:
делай так как раньше делали на тебя на проекте
любая речь о ооп должна идти в разрезе текущего языка, иначе бессмысленный спор и конфликт вам обеспечены
Аноним 25/04/17 Втр 20:13:37 #53 №980035 
>>980028
Это просто пример из вики на понятном большинству языке
Аноним 25/04/17 Втр 20:14:18 #54 №980036 
2.webm
>>979641 (OP)
Аноним 25/04/17 Втр 20:40:05 #55 №980065 
>>979740
есть правило, что должно быть не более 7 аргументов. Если больше - мутить структуры и на вход передавать структуру
Аноним 25/04/17 Втр 20:43:59 #56 №980067 
>>979641 (OP)
Sun например официально рекомендовало процедурный стиль в джаве для энтерпрайза (разбиение на слои DAO, Service, etc). И в реальных проектах используется смесь процедурщины и ооп. Твой тимлид типичный даун, для которого идеи важнее бизнеса.
Мой например любит внедрять новомодные опердени, даже в ущерб проекту.
Сроки, задачи подождут пока он играется с очередной свистоперделкой
Аноним 25/04/17 Втр 21:58:30 #57 №980110 
>>980036
Пиздец.
Дайте е6му миллион долларов.
Содержание этого коротко видео нужно вбивать в голову джавогосподам ржавыми гвоздями.
Аноним 25/04/17 Втр 22:08:20 #58 №980115 
>>980036 Дайте линку на Ютуб плиз.
Аноним 25/04/17 Втр 22:13:13 #59 №980117 
>>979641 (OP)
Во-первых, твой тимлид долбаеб, который или объяснять не умеет, либо сам не знает чего хочет (ну либо ты дурачек, который не может его понять).
Во-вторых программирование не наука и еще не скоро наукой станет. Нет строгой базы, на которую можно опираться. Отсюда и разночтения, недопонимания, и прочая околесица.
Аноним 25/04/17 Втр 22:18:32 #60 №980122 
>>980036
Я не понял че за нах.
Почему не дебил в /зк, удали немедленно.
На этом форуме разрешены только дебилы, петухи и школьники.
Аноним 25/04/17 Втр 22:26:50 #61 №980133 
>>980122
>>980110
переведите на наш, ничего не понимаю
Аноним 25/04/17 Втр 22:26:58 #62 №980134 
>>979641 (OP)
ООП - оперирование объектами в рамках программы. Инкапсуляция и полиморфизм сразу не при чем, так как и то и то есть в процедурном программировании. Без наследования ООП может вполне себе обойтись - без него код, порой, намного лучше выходит.

Один ООП-сектант может обмазываться SOLID - и все его классы будут состоять из одного метода + конструктора. Второй ООП-сектант будет хуярить классов-монстров на 5000 строк. Всё это не решает главной задачи - сделать программу, которая бы решала задачу.
Аноним 25/04/17 Втр 22:31:43 #63 №980142 
>>980133
>ничего не понимаю
Вот этот школьник-дебил разрешен на форуме /зк, например.
Аноним 25/04/17 Втр 22:35:01 #64 №980151 
>>980142 фы эс у эр, сука. Сюда подашел.

Аноним 25/04/17 Втр 22:36:45 #65 №980154 
>>980151
пффф
Аноним 25/04/17 Втр 22:39:37 #66 №980159 
>>980151
ты слеподырый тормоз, кстати
Аноним 25/04/17 Втр 22:40:33 #67 №980161 
>>979968
Д'Артаньян, залогинтесь.
Аноним 25/04/17 Втр 22:46:27 #68 №980167 
>>980159 Прост апдейт сообщений не нажал, я видел.
Аноним 25/04/17 Втр 22:49:04 #69 №980169 
>>980110>>980115>>980122
Это же Uncle Bob, наркоманы. Ссылки на ютуб нет, я вырезал из его Clean Coders, эпизод 8. Можно спиздить на пиратбее. Охуенные видео, только отредактированы говняно, особенно первые. Да и в этом заметно, как звук хромает. Но оратор он 10/10, публичные лекции на ютубе слушать одно удовольствие.
Аноним 25/04/17 Втр 22:50:36 #70 №980170 
Ну хуй его знает. ИМХО мне с ООП удобней, так как позволяет делать код более логичным, что ли. Т.е. чисто процедурщина это как стена текста, а ООП все таки по умолчанию подразумевает упорядочивание кода. Да, можно добиться такого и просто используя функции, ну так ведь ООП представляет для этого гораздо больше плюшек.
Аноним 25/04/17 Втр 22:55:11 #71 №980174 
>>980170
Найди код ООПшника, упарывающегося SOLIDом. Там 90% классов состоят из 1 метода.
Аноним 25/04/17 Втр 23:01:36 #72 №980182 
>>980174
Так это уже извращения. Я писал о том, какие плюсы это даёт мне. Вот мне приятно работать с данными, которые сгруппированы в объект, а не "вот тут у нас переменная, тута массив, и вместе с вот этим десятком функций они как-бы образуют одну сущность". Т.е. для меня это просто удобная обёртка над процедурщиной, и не более.
Аноним 25/04/17 Втр 23:21:45 #73 №980185 
>>980170
Функциональщина логичнее и удобнее, гораздо более тестируема. Весь код состоит из набора stateless функций. Все что тебе нужно - написать эти функции и написать юнит тесты на каждую функцию. Код легко делится на уровни, на зоны ответственности согласно solid.

Что такое ооп? Это когда вся бизнес-логика размазана ровным слоем по всему коду. Как это тестировать? Хуй знает. Как разделять ответственность? Никак. Ибо зависимости внутри классов и методов.
Знаменитый паттерн active record, продвигаемый адептами ооп, является нарушением solid. Об этом даже адепты писали
Аноним 25/04/17 Втр 23:24:10 #74 №980187 
>>980182
Так тебе просто неймспейс нужен и инкапсуляция. Это даже в сишечке есть
Аноним 25/04/17 Втр 23:34:24 #75 №980192 
>>980182
>SOLID
>извращения
Хм...
Аноним 25/04/17 Втр 23:34:53 #76 №980193 
>>980185
1) Найди мне дохуя времени что бы разобраться в ваших ебучх монадах и функторах 2) Найди мне работу, на каком-нибудь из лиспов чтоль.
>>980187
Можно. Но зачем, если ООП и нужен для такой хуйни? Вот уж чего не пойму, так это хейтерства ООП. При том ладно если бы технология была дохуя сложной, а выхлоп копеечным, но там же в общем-то и сложного нихуя нет.
Аноним 25/04/17 Втр 23:40:50 #77 №980194 
>>980193
Бля, я перепутал функциональщину с процедурщиной. Сори
Аноним 25/04/17 Втр 23:45:20 #78 №980196 
>>980193
Суть в том, что ооп в том виде, в котором его задумывали адепты, неприменима. Его можно применять только особым образом, внимательно обходя все грабли и строго следуя методичке "как приспособить ооп для реальных проектов"
Аноним 25/04/17 Втр 23:46:58 #79 №980198 
>>980194
>Соси
Сам соси, пидор.
Аноним 25/04/17 Втр 23:49:04 #80 №980200 
>>980198
Зачем ты увидел "соси" там, где это не было написано?
мимо проходил
Аноним 25/04/17 Втр 23:52:59 #81 №980205 
Ну что, господа, кто что полезного вынес из этого треда?
Аноним 25/04/17 Втр 23:53:50 #82 №980206 
>>980196
>Суть в том, что ооп в том виде, в котором его задумывали адепты, неприменима.
Возможно, я не такой бородатый профессор что бы пояснять. Да и то, а разве там не было основной целью повышение реюзабельности кода? Ну там для продакшена хотя бы.
>Его можно применять только особым образом, внимательно обходя все грабли и строго следуя методичке "как приспособить ооп для реальных проектов"
Наверное просто не надо считать его какой-то волшебной херовиной, которая сама по решает задачи лучше, а скорее методологией, упрощающей разработку, и тогда все встанет на свои места.
Аноним 25/04/17 Втр 23:54:45 #83 №980207 
>>980200
>Зачем
Угадай :3
Аноним 25/04/17 Втр 23:55:06 #84 №980208 
>>980205
Два стула получилось: один с лямбдами точёными, другой с факторями дрочеными. Садиться надо на оба.
Аноним 25/04/17 Втр 23:55:36 #85 №980209 
>>980205
>кто что полезного вынес
Вынес часы и кошелек какого-то одинассника.
Аноним 25/04/17 Втр 23:57:14 #86 №980210 
>>980208

Cмотри попу не порви.

>>980209
А это статья, но я ничего не видел 1с - нипрагроммисты, #расизм
Аноним 25/04/17 Втр 23:57:33 #87 №980211 
>>980206
>повышение реюзабельности кода? Ну там для продакшена хотя бы.
Stateless функции в процедурном стиле более реюзабельны
Аноним 25/04/17 Втр 23:58:22 #88 №980212 
>>980210
>это статья
Читал в журнал ксакеп, очень смешно интересно.
Аноним 26/04/17 Срд 00:02:58 #89 №980215 
>>980211
Pure stateless функции для всего, кроме инпута - и ты уже почти функциональный господин.
Аноним 26/04/17 Срд 00:06:31 #90 №980218 
>>980211
Слушай, это ты тот сектант что в каждом треде постит в случайных местах телеги типа "бросай технология_нейм и юзай ФП, все твои проблемы решат ф-и с неизменяемым состоянием"? Не, не то что бы я что-то особо против имел, но я бы тебя поймал и чисто по-дружески спросил бы кто ты вообще по жизни такой.
Аноним 26/04/17 Срд 00:12:21 #91 №980223 
>>980218
Не, я другой. Но я видимо тоже пришел к этому.
Аноним 26/04/17 Срд 00:20:18 #92 №980229 
>>980218
К этому много кто приходит с опытом. Каждое состояние объекта в твоём коде убивает котёнка. Каждое состояние функции убивает стадо котят.
Аноним 26/04/17 Срд 00:23:43 #93 №980233 
>>980215
obj.call() и call(obj) - в чем отличие?
или что stateless?
Аноним 26/04/17 Срд 00:26:04 #94 №980235 
>>980233
В том что в самом обже ничего не меняется.
Аноним 26/04/17 Срд 00:35:50 #95 №980242 
>>980233
С точки зрения железа - ни в чем отличия нет.
Функця obj.call() на чуть более низком уровне будет выглядить как obj_call(this)

Stateless - отсутствие состояния. Означает, что твоя функция не имеет внутреннего состояния. И что ты получишь на выходе зависит только от входных данных.

Pure - функция, не меняющая состояния объектов снаружи этой функции.
Аноним 26/04/17 Срд 01:40:55 #96 №980265 
15587987728352ff07993b.jpg
>>979641 (OP)
Это тебе надо было своего тимлида спрашивать, что ему не понравилось, мы-то как догадаемся, по-твоему?

В целом ООП-хорошая штука. Хейтерство обусловлено в основном тем, что некоторые популярные концепции из мира ООП сильно оверрейтед.

Самое-самое оверрейтед - это наследование реализации. С этой хуйни начинается любая статья или книжка про ООП, тогда как в реальной жизни довольно мало ситуаций, когда наследование реализации приносит пользу. Чаще она приносит вред, потому что вносить изменения в родительский объект с ветвистыми наследниками - дело чрезвычайно муторное.

Я постоянно сталкиваюсь с тем, что чайники очень плохо справляются с выделением абстракций, предпочитая механически выносить в методы текущего и родительского класса любой продублировавшийся код. Их не ебёт, что это дублирование могло (и обычно оказывается) случайным совпадением.

Вот кто-то из отцов (Фаулер, кажется) не так давно полыхнул в очередной раз и отметил, что объекты в ООП объединяют не какие-то там ебаные "объекты реального мира", а вещи, которые изменяются вместе. Простая штука, казалось бы, но осознать ее на практике довольно сложно почему-то.
Аноним 26/04/17 Срд 03:09:02 #97 №980274 
>>979641 (OP)

Суть ООП в том, что можно создавать классы, описывающие объекты, с которыми работает программа. При этом в объекте собраны вместе как данные (поля), так и функции для работы с ними (методы). И программа состоит в основном из классов.

Ну например, если у тебя программа учета всякого хлама на складе, то там будут классы Склад и как минимум класс Товар. А также может быть какой-нибудь МенеджерТоваров, который не представляет никакую сущность, а просто содержит методы для управления товарами (такие классы еще называют сервисы).

Вы поехавшие, какие наследование и инкапсуляция? Это уже дополнительные возможности, но не главные характеристики ООП кода.

И что у вас за примеры? Какие еще Собаки? В какой программе будет класс Собака? Если человек приводит такие бредовые примеры то скорее всего у него понимание и опыт написания ООП кода чуть менее нуля и он пересказывает то, что прочитал в книге, но не понял (туда же идет пример про марки машин).

А тимлид наверно имел в виду то, что ты либо все сделал на статических методах, либо нагородил God Objects, либо DI не осилил. Я код не видел, сказать не могу.

Алсо по комментариям вы можете легко увидеть число студентов-теоретиков, ни разу в руках объект не державших, а только читавших про них в книгах.

>>979981

Ты просто теоретик, потому и не знаешь.

Аноним 26/04/17 Срд 04:21:55 #98 №980281 
ysCTfZ7PW0s.jpg
>>980274
>Ну например, если у тебя программа учета всякого хлама на складе, то там будут классы Склад и как минимум класс Товар.
Гуманитариев полон тред азаза.
Если в огороде бузина, то в Киеве дядька.
Аноним 26/04/17 Срд 04:51:07 #99 №980284 
лучая в мире реализация ООП
http://perldoc.perl.org/perlbot.html
--
каталог-кун
Аноним 26/04/17 Срд 08:22:23 #100 №980304 
14183330177320.jpg
>>980274
>Суть ООП в том, что можно создавать классы, описывающие объекты, с которыми работает программа. При этом в объекте собраны вместе как данные (поля), так и функции для работы с ними (методы). И программа состоит в основном из классов.

Это не "суть ООП", это ты сейчас описал сахарок к процедурному подходу, чтобы структуру с данными не прокидывать первым аргументом каждый раз.

Отличие ООП от процедурной парадигмы прежде всего в том, что вызывающий метод не знает точно, какой именно код будет вызван, то есть решение отдается на откуп объекту. По сути мы просто отправляем объекту сообщение "выполни такую-то процедуру, как умеешь". Этот факт может быть использован для разделения уровней абстракции, а может (и обычно используется) - для окончательного завязывания спагетти-кода в морской узел.
Аноним 26/04/17 Срд 08:55:46 #101 №980314 
>>980067
Пиздец, эталонный раб системы. Какой бизнес, ебанашка? Ты себе софт пишешь или дяде? Тебе не похуй какой там бизнес получается, тебе и так з/п выдадут.
Аноним 26/04/17 Срд 09:23:28 #102 №980327 
>>980229
Тогда форт - язык массового котоцида. Там все переменные глобальные, а функция, которая втихую пидорасит стейт - обычное дело. И ничего, работает, в космос летает.
Аноним 26/04/17 Срд 09:43:09 #103 №980335 
>>980304
> вызывающий метод не знает точно, какой именно код будет вызван
Ты сейчас описал сахарок к процедурному подходу, чтобы структуру с методами не прокидывать каждый раз.
Аноним 26/04/17 Срд 09:49:41 #104 №980337 
>>980335
Он описал виртуальные функции.
Аноним 26/04/17 Срд 09:54:41 #105 №980338 
>>980337
Он описал макральные монады, неосилятор процедурный.
Аноним 26/04/17 Срд 10:35:33 #106 №980363 
>>980274
> В какой программе будет класс Собака?
Игра какая-нибудь.
Ну или корова вот https://doc.rust-lang.org/std/borrow/enum.Cow.html
> пример про марки машин
ЖТА 5
Аноним 26/04/17 Срд 11:49:04 #107 №980387 
>>980327
Те кто летает в космос по другому софт разрабатывают, для начала.
Аноним 26/04/17 Срд 11:55:20 #108 №980389 
>>980387
Просто у них много котят.
Аноним 26/04/17 Срд 12:09:28 #109 №980394 
>>980387
>по другому
По-какому? Что в их софте особенного?
Аноним 26/04/17 Срд 12:50:28 #110 №980418 
>>980327
Форт стековый язык для узкого круга задач, не путой
Аноним 26/04/17 Срд 13:50:50 #111 №980451 
>>980274
>Расписал определение как студент с 1го курса...ну там товары...объекты какие-то...я классы насру, объекты вместе соберутся...
>Вы все студенты
Вот с этого в голос.
Аноним 26/04/17 Срд 14:34:49 #112 №980489 
>>980418
>Форт стековый язык для узкого круга задач
И что? Люди пишут с супермутабельным стейтом сложные системы и на функциональщину переходить не собираются.
Аноним 26/04/17 Срд 14:40:24 #113 №980490 
Имхо сила конкатенативщины - в однострочниках. Только сами форт и фактор так себе развивают это направление.
Идеальный язык чтобы в игрушке в одну строку что-то скриптануть в консольке должен быть как минимум конкатенативным.
Аноним 26/04/17 Срд 15:00:08 #114 №980505 
>>980490
>так себе развивают это направление
Потому что без переменных ты много не напишешь, а с переменными однострочник уже не получится.
Аноним 26/04/17 Срд 15:25:29 #115 №980515 
>>979991
>>979992
Вы плохо понимаете что такое современный ванильный ECMAScript.
Монады и все остальное давно есть.
Аноним 26/04/17 Срд 15:29:23 #116 №980516 
>>980265
>вносить изменения в родительский объект с ветвистыми наследниками - дело чрезвычайно муторное
Такое с любым проектированием. Чем раньше допустили ошибку, тем дороже потом переделать.
Аноним 26/04/17 Срд 15:32:44 #117 №980518 
>>980242
>С точки зрения железа - ни в чем отличия нет.

отличие есть, на низком уровне это будет выглядеть примерно как v_table[obj.type_tag].call(obj)

Аноним 26/04/17 Срд 15:37:13 #118 №980521 
>>980233
> obj.call() и call(obj)

obj.call() и self.call(obj)
Аноним 26/04/17 Срд 18:38:16 #119 №980615 
>>980516
>Такое с любым проектированием. Чем раньше допустили ошибку, тем дороже потом переделать.
Нет. Это проблема ООП-языков вроде джавы. Если класс внутри использует какие-то другие классы через интерфейс, у пользователя должна быть возможность их заменить на другие. К этому пришли через DI, но такая возможность должна быть изначально в языке и форсироваться по дефолту.
Аноним 26/04/17 Срд 18:40:53 #120 №980616 
>>980521
В сишке XYJPZDA_obj_call( obj )
sageАноним 26/04/17 Срд 19:42:04 #121 №980656 
>>980615
Это не имеет отношения к наследованию реализации
Аноним 26/04/17 Срд 20:36:19 #122 №980692 
>>980489
>Люди пишут
В том и дело. Ты видел стоимость такого спеца, которого мк на ракетах пустят ворочать?
Аноним 26/04/17 Срд 20:41:03 #123 №980695 
>>980692
>стоимость такого спеца
Всегда можно промыть мозги или заставить угрозами.
Экономия.
Аноним 26/04/17 Срд 21:05:40 #124 №980710 
>>979641 (OP)
Просто тимлиду надо было доебаться и пидорнуть тебя, вот и все. Че как маленький?
Аноним 26/04/17 Срд 21:15:21 #125 №980714 
>>980692

Тысяч 30 рублей в месяц, 60 - если охуенный специалист.
Аноним 26/04/17 Срд 22:06:55 #126 №980756 
>>980518
1) Один хуй вызывается функция с параметром this
2) vtable не везде используются и не всегда применимы
Аноним 26/04/17 Срд 22:08:21 #127 №980759 
>>980394
Полный водопад, где без спеков тебе не разрешат даже начать кодить.
Аноним 26/04/17 Срд 22:33:56 #128 №980780 
>>980656
Наследование в таком варианте вообще не нужно. Должна быть возможность скомпоновать инстанс из готовых трейтов/миксинов, причем интерфейсы прописывает получатель. То есть у компонента спрашивают, подходит ли он под нужный интерфейс, и если да, выдается инстанс интерфейса.
Аноним 26/04/17 Срд 22:35:31 #129 №980783 
>>980692
Люди не только для космоса на форте пишут. Обычный софт тоже.
Аноним 26/04/17 Срд 22:56:41 #130 №980793 
>>980516
>Чем раньше допустили ошибку, тем дороже потом переделать.
Вот ты сейчас нечаянно прямо всю суть ООП-макаронников ебанул. "Раньше", епта. Действительно, "раньше", потому что великий оопэшник Сычев вместо нормальной абстракции выделил абстракцию "склад говна из наследников", а то и цепочку таких складов. Ясен хуй, что ни о каких вменяемых контрактах с наследниками в таких классах быть не может, и совершенно очевидно, что по достижении определенной зрелости эти склады забиваются говном доверху,и вот тогда-то и наступает ПОТОМ, в котором внезапно оказывается дорого что-то менять.

Не должно такого быть, понимаешь? Дороговизна внесения любых изменений в основном зависит от толщины слоя спагетти, намотанных поверх кога, который требуется изменить.
Аноним 26/04/17 Срд 23:06:28 #131 №980798 
Ехала Зависимость через зависимость.
Видит Зависимость в зависимости Зависимость.
Сунула в зависимость Зависимость зависимости.
зависимость за Зависимость Зависимость - цап.
Аноним 26/04/17 Срд 23:07:47 #132 №980799 
>>980798

Наследуйтесь, я вам немножко ООП принес.
Аноним 26/04/17 Срд 23:21:26 #133 №980810 
>>980798
У меня от твоего поста LOOSE COUPLING.
Аноним 26/04/17 Срд 23:24:55 #134 №980811 
>>980793
Уважаемый senior enterprise java architect, пройдите нахуй.
Аноним 26/04/17 Срд 23:43:59 #135 №980819 
>>980142
Двачую этого господина, ещё и табы с пробелами перед этой строчкой намешали, ибо ТАК УДОБНИЙ И ВЫРАВНИВАНИЙ!
>>980714
И этого господина двачую, хотя сейчас в НИИ тоже смекнули, что пора бы прибавлять, а то уйдут сайты клепать. Друг занимается написанием и верификацией кода для самолётов.

Аноним 26/04/17 Срд 23:49:33 #136 №980827 
1406565387825.jpg
>>980335
>чтобы структуру с методами не прокидывать каждый раз
Таблица виртуальных функций и вообще функции в качестве обработчиков сообщений - это всего лишь один из способов реализации ООП-парадигмы.

>>980811
>senior enterprise java architect
Мамку твою инкапсулировал, говна ты кусок.

Джява - это язык, созданный с целью получения максимально сложных систем силами большого числа минимально компетентных сотрудников. Немудрено, что в нем, как в зеркале, отразились все пороки целевой аудитории.
Аноним 26/04/17 Срд 23:50:14 #137 №980828 
>>980810

Брат за брата, зависимость за зависимость.

А для нормальных людей дак тайпинг.
Аноним 26/04/17 Срд 23:57:58 #138 №980834 
>>980819
А на чем пишут по для самолетов?
Аноним 27/04/17 Чтв 00:00:48 #139 №980835 
>>980834
Ада и кресты. С ады уползают, потому что специалистов мало, и все и так уже там работают.
Аноним 27/04/17 Чтв 00:04:07 #140 №980836 
>>980827
> Джява - это язык, созданный с целью
> Петух с двачей рассуждает с какой целью создан какой-либо язык, софт на котором приносит миллиарды баксов
Аноним 27/04/17 Чтв 00:04:42 #141 №980837 
>>980835
>Ада
Хтоничненько
Аноним 27/04/17 Чтв 00:05:12 #142 №980838 
>>980834
Для вертолётов - Си и кресты.
Мимопроходил
Аноним 27/04/17 Чтв 00:07:04 #143 №980841 
>>980838
>>980835

Спасибо
Аноним 27/04/17 Чтв 00:07:14 #144 №980842 
>>980834
Друг пишет на Си98 и ассемблере(MASM и FASM в основном).
Аноним 27/04/17 Чтв 00:08:44 #145 №980843 
>>980842
>>980841

Аноним 27/04/17 Чтв 00:08:54 #146 №980844 
>>980837
Современная Ада однозначно лучше крестов. Старая - лучше сишки.
Аноним 27/04/17 Чтв 00:20:12 #147 №980849 
>>980844
>Современная Ада
Проиграл.
>современный арбалет однозначно лучше мушкета
>старый - лучше аркебузы
Аноним 27/04/17 Чтв 00:38:56 #148 №980852 
>>980849
>Проиграл
Ты бы и собаке проиграл. Проблема в том, что кроме арбалетов и аркебуз ничего больше и нет в этой области. кококорастхачкель
Аноним 27/04/17 Чтв 00:55:13 #149 №980857 
14281772515540.jpg
>>980836
>приносит миллиарды баксов
На любом сколько-нибудь популярном языке есть софт, приносящий миллиарды, дальше-то что?

Джяву нельзя назвать плохим языком, но в силу очевидных причин именно в ней повылезал наружу весь сладкий хлебушек неудачных ООП-практик. Что ж, скажем ей за это спасибо - теперь мы, по крайней мере, знаем, как не надо делать.
Аноним 27/04/17 Чтв 10:06:23 #150 №980908 
>>980798
Декларативные господа не слышали про dependency injection container?
Аноним 27/04/17 Чтв 12:18:33 #151 №980940 
Я смотрю тут все такие умные. Много умных букаф.
А вот можете мне привести два примере одного и того же кода. Но чтоб один был однозначно ООП, а второй однозначно процедурщиной. Вот чтоб прямо совсем однозначно. А мы все вместе посомтрим на сколкьо вы хуй.
Аноним 27/04/17 Чтв 13:08:39 #152 №980953 
>>980908
Начнём с того, что иок, как в джаве - это деградации от ООП, обратно в сторону моудльного программирования. Быдлу дали модули как первоклассные объекты, комбинируй объекты сука, строй связи блядь, кодом блять строй, ты же программист блядь, нет хотим жрать говно, пидоры, спринг взяли, иксэмэльки программруют.
Аноним 27/04/17 Чтв 13:10:48 #153 №980954 
>>980940
Сходи-ка на хер со своими софизмами.
Аноним 27/04/17 Чтв 13:13:03 #154 №980957 
>>980940
Могу тебе на похапе накидать, как раз в туалете сижу https://ideone.com/jHJd6l
Хотя это оче абстрактный пример. Короче хуй знает, что бы прохавать все плюсы/минусы надо самому писать и разбираться, если ты этого просишь. Иначе будешь или обьектно-ориентированным сектантом, или попросту не осилишь.
Аноним 27/04/17 Чтв 13:15:36 #155 №980958 
>>980957
Завернули процедурщину в класс
@
Вынули из глобалов, вставили в замыкание
@
ООП!
Аноним 27/04/17 Чтв 13:16:52 #156 №980959 
>>980958
>Завернули процедурщину в класс
Ну а что ты хочешь? ООП это и есть развитие процедурщины.
Аноним 27/04/17 Чтв 13:18:25 #157 №980960 
>>980959
Удваиваю, какой-то старый учёный хуй ещё так сказал.
Аноним 27/04/17 Чтв 13:19:36 #158 №980961 
>>980958
Это неправильно.
ООП это когда у тебя будет:

Абстрактный синглтон базы данных.
Синглтон mysql
Фабрика баз данных
Регистри, хранящая фабрику баз данных
Абстрактный строитель вывода
Строитель вывода из SQL
Абстрактный наблюдатель базы
Наблюдатель за mysql
Посредник, принимающий сообщения от наблюдателя
Абстрактная стратегия выбора баз данных
Стратегия выбора Mysql
Абстрактный декоратор стратегии выбора базы данных
Фабрика стратегий выбора баз данных
Посетитель, запускаемый посредником при получении сообщения от наблюдателя
Заместитель, принимающий посетителя и решающий, делегировать ли команду вывода виду
Абстрактный вид
Вид CLI
Абстрактная фабрика видов
Фабрика видов, возвращающая инстансы видов CLI
Прототип CLI-вида, используемый CLI-фабрикой
Абстрактная модель
Абстрактный ORM
ORM для Mysql
Модель, работающая с MySql-ORM сущностями
Абстрактная активная запись
Активная запись для mysql-ORM моделей
Абстрактный синглтон хранения моделей
Синглтон, хранящий активные записи
Абстрактный синглтон хранения видов
Синглтон, хранящий CLI-виды
Абстрактное мементо
Мементо активной записи Mysql-ORM модели
Абстрактная команда
SQL-команда
Аноним 27/04/17 Чтв 13:22:31 #159 №980962 
>>980960
На самом деле, это я тут >>980957 хотел показать пример похожий на реальность, только в итоге получилось жидкое не-репрезентативное говнище. Наверное, кому интересно понять зачем оно, пусть попробует покопаться в исходниках какого-то фреймворка, или просто расширения написанного с ООП, только крупного, а потом представить как бы это переписать на процедурщину. Короч ООП просто в разы повышает выразительность обычной императивной процедурщины, за это его и любят, как-то так.
Аноним 27/04/17 Чтв 13:23:37 #160 №980963 
>>980961
Ну и аналог этого на продурщине:
$sql = "SELECT name, secondName, email FROM users WHERE id = $id";
$sth = mysqli_query($mysqli, $sql);
$res = mysqli_fetch_assoc($mysqli);
return $res;
Аноним 27/04/17 Чтв 13:24:59 #161 №980965 
>>980963
id='; DROP DATABASE primary; --
Аноним 27/04/17 Чтв 13:25:55 #162 №980966 
Кстати ФПсектанты, раз уж вы такие убежденные функциональщики, перепишите этот понос >>980957 на функциональный лад, что ли. Самому интересно.
Аноним 27/04/17 Чтв 13:27:57 #163 №980968 
>>980965
ну да, придётся добавить строчку с биндингом параметров
хотя можно обойтись малой кровью с помощью божественного mysqli_real_escape_string
Аноним 27/04/17 Чтв 13:29:29 #164 №980969 
>>980968
Зачем эта параша нужна, если есть божественный PDO?
Аноним 27/04/17 Чтв 13:29:30 #165 №980970 
>>980961
Тогда надо сразу ORM.
Аноним 27/04/17 Чтв 13:35:55 #166 №980973 
w7lpNMr4c-I[1].jpg
Полный тред долбоебов, не осиливших RDD, принципы SOLID/GRASP и инверсию контроля. Такие мрази, как вы, способны максимум смузи хлебать в перерывах медлу крадошлезством в рельсах
Аноним 27/04/17 Чтв 13:43:58 #167 №980976 
That+is+not+trolling+6c1f9c54b72b10a98bcce879af2131b6.jpg
>>980973
Аноним 27/04/17 Чтв 13:44:44 #168 №980977 
>>980970
Так там ORM тоже присутсвует.
Аноним 27/04/17 Чтв 13:45:18 #169 №980978 
>>980973
Туда ли ты зашла, абстрактная фасолина?
Аноним 27/04/17 Чтв 13:46:42 #170 №980979 
>>980973
Все что ты перечислил любая веб-макака с мозгом за полгода жуниорства осиливает, тем более что фишки типа IoC уже реализованы во всех фреймворках и можно даже не особо вникать как оно работает.
Аноним 27/04/17 Чтв 14:41:50 #171 №980995 
>>980973
>RDD
Ого, аж новый баззворд придумал.
Аноним 27/04/17 Чтв 15:46:10 #172 №981025 
>>980979
Какая, блять, "реализация Ioc", что ты несешь? Пиздуй в википедию читать, что значит термин. Не существует реализаций IoC, это один из (интутивных) принципов проектирования наподобии OCP

>>980995
Этому "баззворду" больше лет, чем тебе, мудило, только вот его понимание отличает макаку от человека.
Аноним 27/04/17 Чтв 15:57:17 #173 №981034 
>>980973
>RDD
Это что?
Аноним 27/04/17 Чтв 15:58:55 #174 №981035 
>>981025
http://www.yiiframework.com/doc-2.0/guide-concept-di-container.html ой, слушай, все эта хрень давно уже и так есть. Нашел чем выпендриваться.
Аноним 27/04/17 Чтв 16:05:44 #175 №981041 
>>981035
Не путай DI-контейнеры с принципом IoC. DI-контейнер соответствует принципу IoC а не, блять, "является реализацией IoC". DI-контейнеры не мешают хуесосам пихать вьюхаспецифическую поебень с уровней на пять ниже в слой сервисов.
Аноним 27/04/17 Чтв 16:07:32 #176 №981042 
>>981034
https://en.wikipedia.org/wiki/Responsibility-driven_design
Аноним 27/04/17 Чтв 16:19:49 #177 №981053 
>>981041
Ди-контейнер это тоже самое, не конкретная реализация а принцип, и что?
Аноним 27/04/17 Чтв 17:10:49 #178 №981072 
>>979641 (OP)
ООП это по сути оптимизация программы, чтобы понять это новичку, сначала нужно написать программу в процедурном стиле, а потом функции которые делают одно и тоже но в разных частях программы вынести в отдельные классы, постепенно приводя код, к отдельным мало зависимым модулям.
Аноним 27/04/17 Чтв 18:01:05 #179 №981087 
>>981072
>к отдельным мало зависимым модулям
А на практике получается монолитный фреймворк, из которого невозможно выдрать отдельный модуль.
Аноним 27/04/17 Чтв 18:04:16 #180 №981088 
>>981087
Это все и за начальства которое подгоняет, капитализм хули, время деньги.
Аноним 27/04/17 Чтв 18:31:19 #181 №981093 
>>980759
Объясните эту фразу, аноны
Аноним 27/04/17 Чтв 18:39:07 #182 №981095 
>>981093
https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%81%D0%BA%D0%B0%D0%B4%D0%BD%D0%B0%D1%8F_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C
Аноним 27/04/17 Чтв 19:11:59 #183 №981107 
Т.е. я так понял изначально ООП преследовало цель максимальной независимости объекта. К примеру, сидят в офисе пять сотрудников и один из них говорит "Ребята, заварите кто-нибудь кофе" и кто-то из ребят сам решает пойти заварить кофе, а может вообще никто не пойти. В то время как текущая реализация ООП это когда работник сам подходит к другому работнику, тыкает в него пальцем и говорит "Кофе заваришь ты, без вариантов".

Если менее абстрактно, то примерно такой сценарий:
1 - Объект А говорит "Ребзя, тут запрос пришел. Я его обработал и рассортировал".
2 - Объект Б говорит "Оппа, там кто-то запрос рассортировал. Ребзя, я кароче посмотрел че там надо было и вот подготовил тут данные для записи в БД".
3 - Объект В говорит "Че-че? Там кто-то данные подготовил для записи в БД. Надо бы занести в БД. Вжух!"
4 - Объект Г говорит "Вжух? Кто-то записал данные в БД? Надо пойти пользователю сказать, что данные были записаны"
Аноним 27/04/17 Чтв 19:13:50 #184 №981109 
>>980953
2 чая. Все что делает ДИ - выносит компоновку проекта в огромные простыни кода, которые надо постоянно актуализировать. Это у более-менее нормальных. У ебанатов xml.
Аноним 27/04/17 Чтв 19:32:39 #185 №981112 
>>981107
Нет, это когда 5 одинаковых работников, которые ничего не умеют делать кроме подсчета факториалов и ничего не знают об окружающем мире.
И если ты хочешь одного научить чему либо, остальные умирают
Аноним 27/04/17 Чтв 19:33:46 #186 №981114 
>>981088
Нет, это врожденная особенность ооп. Где объекты вынуждены знать друг про друга
Аноним 27/04/17 Чтв 19:44:35 #187 №981118 
>>981107
Ты представляешь объекты как как Пакеты с функциями. У них есть Инкапсуляция и Полиморфизм.

То есть Работник может подойти к каждому сотруднику, и вызвать метод "Может_кофе()", там дальше сотрудник сам решит как ему обработать Вызов "может_кофе", и если все вернут false, тогда уже работник подойдет к сотруднику и сделает вызов Может_кофе(быстра_бладж);

Объекты в списке у тебя выглядят как просто пакеты с функциями(ну их конечно можно так использовать). Вся фишка как-раз в хранении статусов, и возможность общаться с интерфейсами других объектов без гемороя и так далее.

Есть объекты Ячейки. К ним произешел вызов и туда пихнули строку.

На часть ячеек подписан обсервер, и когда инвокнули Cell->set_cell там дернулся invoke
_observer(self->observer, "set") где observer и есть указатель на объект, где мы сделали вызов обсервера который подписался на эту конкретную ячейку.

обсервер достал реф на эту ячейку и забрал данные. и дальшерешает что с ними делать. Например из Cell, он возмет то что туда поменстили, и потом из другого cell он возмет тоже.

а потом он сделает return cell->get + cell->get.

так как в первом обьект string, а во втором array,
то из перового объекто вызоветься __add__ в котором уже указанно что если его пытаються сложить с типом array, то взять array, и сделать ему join и вернуть как строку, и тогда сложить строки. (вместо вашего аррей может быть любой объект, например класс КОНФИГ)

и вместо ошибок, Обсервер получить большую строку, и скормить базе и завершиться например.

сумбурно написал канешно, но это как-то так.


Аноним 27/04/17 Чтв 19:57:26 #188 №981124 
>>981114
>Где объекты вынуждены срать друг под друга
Аноним 27/04/17 Чтв 20:01:39 #189 №981126 
>>981118
>сумбурно написал канешно, но это как-то так.
Ебанный пиздец!

>Вся фишка как-раз в хранении статусов
Нет, это вообще порочная практика.

>На часть ячеек подписан обсервер, и когда инвокнули Cell->set_cell там дернулся invoke
Начало спагетти встретило конец спагетти, узел затянулся, котята начали массово умирать.
Аноним 27/04/17 Чтв 20:12:57 #190 №981136 
Ну где же пример эталонного ООП? Неужели здесь нет труЪ-адептов, способых его выдать? ну или хотя бы чужой код копи-пастнуть
Аноним 27/04/17 Чтв 20:26:45 #191 №981151 
>>981136
Эталонное может существовать только в вакууме. В реальности появлятся нюансы и элементы процедурщины
Аноним 27/04/17 Чтв 20:59:05 #192 №981171 
>>981136

Можешь посмотреть книжки и гитхабчик Сэнди Метц, её ООП — эталонное, правда и проекты уровня laba1
Аноним 27/04/17 Чтв 21:10:35 #193 №981175 
>>981136
Smalltalk
Аноним 27/04/17 Чтв 21:49:58 #194 №981194 
>>981114
Если логика, абстрагированная внутри классов, выстроена верно, то объектам не обязательно знать друг про друга. Более того, при вдумчивом подходе к инкапсуляции, большинству объектов друг про друга знать не нужно (как и рандомной макаке, которая в рандомный момент времени полезет вставлять костыли внутрь какого-нибудь модуля системы, чтобы прикрутить к нему свое охуительное улучшение).
Аноним 27/04/17 Чтв 22:31:55 #195 №981227 
>>981118
Вот оно, явление стереотипного джявиста в итт треде.

Все проще. Есть интерфейс (или абстрактный класс) CanMakeCoffee с методом makeCoffee(), каждый сотрудник его реализует. Начальнику Ерохину в конструктор при создании надо пробрасывать нечто, что этот интерфейс реализует - это и есть частный случай DI. Если Ерохин пьет мало кофе - ему достаточно передать конкретную секретаршу Еотову, пусть он ее дергает. Если потребление кофе растет и Еотова не справляется - мы можем реализовать тот же интерфейс у робота, который будет по хитрым алгоритмам распознавать пасьянсы и втентаклик на компах всех сотрудников и отправлять бездельников за кофе в несколько потоков. Ерохин при этом даже не будет знать, что что-то поменялось в архитектуре офиса. Сложность реализации робота закрыта от него.
Аноним 27/04/17 Чтв 22:41:04 #196 №981231 
>>981194
ну вот же, каждому сотруднику нужно знать про существование кофе-машины и уметь с ней обращаться.
Чтобы перенести их в другой офис, тебе придется переносить и кофе-машину
Аноним 27/04/17 Чтв 22:56:55 #197 №981239 
>>981231
При процедурном же методе будет функция
Сделать_кофе( сотрудник, кофе-машина ) : кофе

При этом сотрудник и кофе машина никак не связаны друг с другом и не знают о существовании друг друга.
Если в новом офисе нет кофе машины, то можно просто не копировать эту функцию.
Эту функцию легко протестировать, она не зависит от внешних условий
Аноним 27/04/17 Чтв 23:03:01 #198 №981240 
>>981231
Я к тому и веду, что логика хороша, если она универсальна. Если сотрудник не понимает, что в новом офисе другая кофе машина (а в идеале, что нужен другой интерфейс взаимодействия с этой машиной), выдает 25 экзепшенов и ложит за собой как карточный домик всю систему, то это повод задуматься.
Аноним 27/04/17 Чтв 23:05:16 #199 №981241 
>>981240
Задуматься о чем?
Аноним 27/04/17 Чтв 23:07:15 #200 №981243 
>>981241
Перевестись быстрее в другой отдел.
Аноним 27/04/17 Чтв 23:09:01 #201 №981245 
>>981239
Чем это принципиально отличается от ООП с использованием SOLID?
Аноним 27/04/17 Чтв 23:09:12 #202 №981247 
>>981243
Ясно. Опять эти сказки про кривые руки. Подразумевая что уж у тебя руки точно не кривые
Аноним 27/04/17 Чтв 23:10:30 #203 №981250 
>>981245
Тем что это уже мало напоминает ооп
Аноним 27/04/17 Чтв 23:11:45 #204 №981252 
>>981250
Какой код напоминает ООП?
Аноним 27/04/17 Чтв 23:14:05 #205 №981254 
>>981247
>Ясно. Опять эти сказки про кривые руки. Подразумевая что уж у тебя руки точно не кривые
Я всего лишь почесал яица, а ты уже решил, что у меня между ног герпес.
Аноним 27/04/17 Чтв 23:19:28 #206 №981257 
>>981245

в процедурном программировании нет понятия объект, дадут тебе примитивы и ебись без смазки, как хочешь, но чтобы кофе мне было.
Аноним 27/04/17 Чтв 23:23:26 #207 №981260 
>>981239
> делать_кофе( сотрудник, кофе-машина ) : кофе
Только сотрудник, кофемашина и кофе - это массивы байтов.
Аноним 27/04/17 Чтв 23:23:31 #208 №981261 
1386443358450.jpg
>>981239
>Эту функцию легко протестировать, она не зависит от внешних условий
А еще она требует от пользователя дохуя лишних знаний, про кофе-машины всякие, про сотрудников и прочую малафью. А пользователь не хочет ничего этого знать, он хочет вызывать Сделать_кофе(): кофе безо всяких там зависящих от реализации аргументов.
Аноним 27/04/17 Чтв 23:23:46 #209 №981262 
>>981257
Есть как минимум структура
Аноним 27/04/17 Чтв 23:28:03 #210 №981264 
>>981261
Если ты спрятал сложность, то она не исчезает. Она начнет ебать тебя в самый неподходящий момент и ты ничего не смодешь сделать.

Чо делать, если внезапно появилась вторая кофе-машина? Править все объекты и молиться чтобы ничего не сломалось?
Аноним 27/04/17 Чтв 23:29:43 #211 №981265 
>>981264
> вторая кофе-машина
Она не умеет делать кофе?
Аноним 27/04/17 Чтв 23:33:31 #212 №981267 
>>981262

> Сделать_кофе( сотрудник, кофе-машина ) : кофе
> Есть как минимум структура

Пока у тебя одна структура, сложностей нет.

А когда появится десять структур типа сотрудник - все похожие, но чуть-чуть разные, и пара кофе-машин, то твоя процедура разрастется до неприличных сотен строк.

И удачи, в добавлении 11 структуры или третьей кофе-машины.
Аноним 27/04/17 Чтв 23:33:34 #213 №981268 
>>981265
Умеет. В объекты сотрудников надо добавлять вторую кофе-машину?
Аноним 27/04/17 Чтв 23:38:32 #214 №981271 
>>981268
Почему не был сделан интерфейс ICoffeeMaker с одним методом Coffee MakeCoffee()?
Аноним 27/04/17 Чтв 23:40:05 #215 №981272 
>>981267
Элементарно

Кофе-машины [] = {кофе-машина1, кофе-машина2, кофе-машина3}
Найти_ближайшую_кофемашину(сотрудник, кофе-машины) : кофе-машина
Сварить_кофе( сотрудник, кофе-машина ) : кофе

Заметь, добавилась только 1 новая функция, а старый протестированный код я не трогал
Аноним 27/04/17 Чтв 23:40:55 #216 №981273 
>>981268
Выдавать интерфейс кофемашины через load balancer, а сотрудников поставить в очередь и залочить метод Сделать_кофе, чтобы пидорахи не ломились, расталкивая друг друга. Энтерпрайз решение.
Аноним 27/04/17 Чтв 23:41:11 #217 №981274 
>>981271
А где реализация?
Аноним 27/04/17 Чтв 23:42:44 #218 №981277 
>>981274
Зачем тебе её знать?
Аноним 27/04/17 Чтв 23:43:04 #219 №981279 
14287767835510.jpg
>>981264
>Чо делать, если внезапно появилась вторая кофе-машина? Править все объекты и молиться чтобы ничего не сломалось?

Ничего тебе не понадобится править, если у тебя обязнности между объектами распределены правильно. Раньше сотрудник получал на вход интерфейс КофеМашина с методами какПройти(моиКоординаты): маршрут и сваритьКофе(): кофе - и теперь он будет получать его же. Просто при инициализации сотруднику будет подсовываться не сама кофе машина, а брокер кофе-машин с тем же интерфейсом, который направит сотрудника к ближайшей свободной машине, да еще и сварит кофе аккурат к его приходу, чтобы ждать не пришлось. Сотрудник опять-таки ничего не заметит, продолжать жить, как будто кофе-машина по-прежнему одна.

Ох и развелось же в /зк/ долбоёбов. Надеюсь, ты хотя бы из перезвоним-треда сюда пришел, а не пишешь очередного франкенштейна, проебывая деньги работодателя.
Аноним 27/04/17 Чтв 23:43:18 #220 №981280 
>>981273
А до akka скоро дойдем?
Аноним 27/04/17 Чтв 23:44:13 #221 №981282 
>>981277
Все объекты реализуют этот интерфейс. А где реализация? Как создавать эти объекты без реализации интерфейса?
Аноним 27/04/17 Чтв 23:45:02 #222 №981284 
>>980185
>Весь код состоит из набора stateless функций.
Такое можно и в ооп-стиле сделать. Объекты - чистые данные, объекты - чистые функции, а между ними объекты с логикой использования(бизнес-парвила). Для такой подхода функциональное петушение не нужно.

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

Про тестируемость вообще смешно. Алё, у вас там на знаменах написано ВЕРЕФИЦИРУЕМОСТЬ, а тесты можно написать для хорошо написаной программы в любом стиле. Но до верефецируемости фп-петухам как до китая раком. Никакая истеричная борьба за нулсафети к ней не приводит, а только прождает еще большую кучу проблем. Я не видел ни одного программиста на фп-языках, который это понимал бы.
Аноним 27/04/17 Чтв 23:45:19 #223 №981285 
>>981272

Не прикидывайся дурачком, структуры сотрудников не гомогенные, тебе нужно учитывать особенности каждой. Иначе выпилишься с эксепшеном, когда Василий пошлет тебя нахер, т.к. он не любит варить кофе. С каждым новым сотрудником твоя процедура будет расти.
Аноним 27/04/17 Чтв 23:45:31 #224 №981286 
>>981279
Вообще у тебя должен быть КофеМашинаСервис, интерфейс которого абстрагирован от количества кофе машин. А замену одной реализации (с одной кофемашиной) на другую (с тремя) берет на себя di фреймворк.
Аноним 27/04/17 Чтв 23:45:45 #225 №981287 
>>981282
Зачем тебе что-то создавать? Контейнерный гном выдаст тебе твой ICoffeeMaker в конструкторе
Аноним 27/04/17 Чтв 23:46:02 #226 №981288 
Проскочили. Уже RabbitMQ.
Аноним 27/04/17 Чтв 23:46:24 #227 №981289 
>>981288
>>981280
Аноним 27/04/17 Чтв 23:46:54 #228 №981290 
>>981271
>Почему не был сделан интерфейс ICoffeeMaker с одним методом Coffee MakeCoffee()?
А какое кофе вернет метод? С сахаром, черный, капучино? Может сотруднику нужен не абьстрактный кофе, а конкретный.
Аноним 27/04/17 Чтв 23:47:03 #229 №981291 
>>981288
Jmx != Akka
Аноним 27/04/17 Чтв 23:47:26 #230 №981292 
>>981288
>>981289
А если я не люблю централизованные MQ и хочу долбиться в Ø?
Аноним 27/04/17 Чтв 23:48:01 #231 №981293 
>>981290
Опять же, контейнерный гном всё и так знает.
Аноним 27/04/17 Чтв 23:49:52 #232 №981294 
>>981290
А если я на работу с литровой кружкой хожу, халявный кофе пить? А? А? A?
Аноним 27/04/17 Чтв 23:49:57 #233 №981295 
>>981292
Ебашь на чистом Erlange.
Аноним 27/04/17 Чтв 23:51:13 #234 №981296 
>>981295
Слишком больно, прости.
Аноним 27/04/17 Чтв 23:52:03 #235 №981297 
>>981293
Нихуя он не знает. Ему надо в инициализаторе пояснить. Если ты спрингобоярин, то будешь делать это через XML.
Аноним 27/04/17 Чтв 23:53:15 #236 №981298 
14335877609610.jpg
>>981286
>у тебя должен быть КофеМашинаСервис
Нет, это дорога в ад. У меня должно быть ровно то, что мне необходимо, а мне необходима именно кофе-машина, а не какой-то там ебучий сервис, от которого рукой подать до абстракт-кофе-машина-фэктори-бин. Сотрудник не должен знать ни про какие сервисы и вообще про то, что кофе-машин в офисе много.
Аноним 27/04/17 Чтв 23:55:12 #237 №981301 
>>981297
Я не жавапидор, сорян. Мой гном умнее, ему можно через [Dependancy] аттрибуты всё объяснить всё прямо внутри класса.
Аноним 27/04/17 Чтв 23:56:22 #238 №981302 
>>981298
> что кофе-машин в офисе много
Должен конечно. Иначе пока Ерохин варит кофе себе и Еотовой, Сычевы омежки будут ждать потупя очи.
Аноним 27/04/17 Чтв 23:57:03 #239 №981303 
>>981298
Ты уж выбирай. Либо ты знаешь то что знаешь (в офисе кофемашина), либо ты вставляешь слой абстракции на случай расширения (в офисе n кофемашин). Вместе никак.
Аноним 27/04/17 Чтв 23:59:51 #240 №981305 
>>981293
Если такая система управления кофе машинами самая оптимальная, хли ни в одной реальной кофе машине она не применена?
Шах и мат.
Аноним 27/04/17 Чтв 23:59:51 #241 №981306 
>>981298

идешь вместо кофемашины к Кукушкину, он говорит тебе где сегодня кофе со слифками.
Аноним 28/04/17 Птн 00:01:16 #242 №981307 
>>981305
Добрый день, Василий. IoC контейнерам исполняется сто лет в обед, а для вас это всё еще новость.
Аноним 28/04/17 Птн 00:01:56 #243 №981309 
>>981302
>Иначе пока Ерохин варит кофе себе и Еотовой, Сычевы омежки будут ждать потупя очи
Так они и не будут, их сервис направит к другой кофе-машине которая как раз сломается и ошпарит паром, но не суть. Омежкам будет казаться, что кофе-машина в офисе одна, просто перемещается с места на место постоянно почему-то.
Аноним 28/04/17 Птн 00:03:38 #244 №981310 
>>981303
>Ты уж выбирай. Либо ты знаешь то что знаешь (в офисе кофемашина), либо ты вставляешь слой абстракции на случай расширения (в офисе n кофемашин). Вместе никак.
Выше уже написал, как не вставлять заранее никому кроме твоей мамки, конечно же.
Аноним 28/04/17 Птн 00:07:39 #245 №981312 
Если Магомед не идет к кофемашине, то кофемашина идет к Магомеду.
Аноним 28/04/17 Птн 00:08:21 #246 №981313 
>>981284
>Такое можно и в ооп-стиле сделать
Это и есть ООП стиль, убогий.

Еще раз.
Для особо упоротых идиотов.
ООП подход не требует наличия абстракции объектов в коде и языке.
Аноним 28/04/17 Птн 00:10:40 #247 №981314 
>>981313
Хоть сколько то современное ооп пляшет от интерфейсов и композиции. Боги, да классика банды четырех начинается с пояснения превосходства композиции над наследованием.
Аноним 28/04/17 Птн 00:14:25 #248 №981317 
14131074285190.jpg
>>981313
>ООП подход не требует наличия абстракции объектов в коде и языке.
Формально - нет, конечно, можно хоть на ассемлере с ООП пердолиться. На практике, конечно, лучше иметь поддержку на уровне языка, чем вручную реализовывать иерархии типов.
Аноним 28/04/17 Птн 00:14:29 #249 №981318 
>>981314

Интерфейсы - гарантируют наличие метода, но ООП работает и без этий гарантий. Уточка крякает, и б-х с ней, это уточка, хуй с этим сертификатом для нее.
Аноним 28/04/17 Птн 00:22:24 #250 №981322 
Хорошо поболтали, расходимся, до завтра.
sageАноним 28/04/17 Птн 01:22:03 #251 №981335 
>>981313
Что-то убогий тут только ты.
>Это и есть ООП стиль
Это не единственный стиль в ооп. Монолиты никто не отменял. В маленьких программах их делать быстрее и проще, чем петушиться чистыми функциями и слабой связаностью.
Аноним 28/04/17 Птн 02:35:42 #252 №981354 
С изменением предка не должно быть проблем, наследование нужно как раз для того чтобы пихать в базовый класс дублирующий код, который во всех наследниках одинаковый. Если нужно исключение, пишется виртуальный метод.
Сам наследование стараюсь не использовать, хотя бы чтобы IDE не предлагала сотню левых методов, лучше сделать базобый объект приватным полем.
Аноним 28/04/17 Птн 07:31:30 #253 №981378 
>>979992
>3. коллбек-хелл
Ну это уже не смешно. Как там, в 2010?
Аноним 28/04/17 Птн 07:31:46 #254 №981379 
>>981354
С изменением предка наипреогромнейшие проблемы, библиотеки нужны как раз для того чтобы пихать в каждую из них дублирующий код, который во всех программах одинаковый. Если нужно исключение, пишется виртуальный метод.
Сам библиотеки стараюсь не использовать, хотя бы чтобы IDE не предлагала сотню левых перфокарт, лучше сделать точку входа в библиотеку приватной перфокартой.
Аноним 28/04/17 Птн 09:31:39 #255 №981392 
1402478392745.jpg
>>981354
>С изменением предка не должно быть проблем, наследование нужно как раз для того чтобы пихать в базовый класс дублирующий код, который во всех наследниках одинаковый.

Ловите этого и бейте по голове до тех пор, заставляя после каждого удара повторять: "fragile base class - фундаментальная проблема ООП". Я про таких дегенератов уже писал вот здесь >>980793. Искренне желаю ему, чтобы его предки IRL так же мучительно утонули в говне, как и базовые классы его авторства.

Наследование в ООП - оно, блять, для создания иерархии полиморфных типов, а не для того, чтобы классы с верхних этажей срали на головы тем, что живут пониже. В подавляющем большинстве случаев от дублирующегося кода можно и нужно избавляться при помощи агрегации, а если таки возникает нужда наследовать реализацию - должен быть жесткий контракт между предком и наследниками. Пусть наследники пользуются публичным интерфейсом предка на крайняк, или жестко ограниченным подмножеством защищенного интерфейса.
Аноним 28/04/17 Птн 09:54:52 #256 №981402 
11111.webm
>>981335
>Что-то убогий тут только ты.
Чейэто ты так взорвался, аж сажу прилепил?

>Это не единственный стиль в ооп.
Да, не единственный.

>чем петушиться чистыми функциями и слабой связаностью.
>и слабой связаностью
Мущи-мущи.
Земля вызывает убогого, ответь, убогий.
Повторяю, ООП - это отсутствие связи между получателем сообщения, и отправителем.
Повторяю, отсутствие связи.
Связь только через сообщение, повторяю, сообщение.
Если у тебя отправитель связан с получателем, то это НЕ ООП.
Это кодолапшевая интерпрайз дристня.
Повторяю, дристня.


Аноним 28/04/17 Птн 09:56:42 #257 №981405 
>>981317
>Формально - нет, конечно, можно хоть на ассемлере с ООП пердолиться. На практике, конечно, лучше иметь поддержку на уровне языка, чем вручную реализовывать иерархии типов.
Иерархии типов не имеют к ООП вапще никакого отношения.
Более того, они в 120% случаев ломают ООП.
Аноним 28/04/17 Птн 09:58:22 #258 №981406 
15981463146973-550x391.jpg
>>981318
>Уточка крякает, и б-х с ней, это уточка, хуй с этим сертификатом для нее.
Сказал как боженька.
Аноним 28/04/17 Птн 10:00:56 #259 №981408 
>>981392
>а если таки возникает нужда наследовать реализацию
Не возникает, никогда.
Это чисто религиозный позыв может быть.
Аноним 28/04/17 Птн 10:03:32 #260 №981409 
>>981405
>ломают ООП
Что-то они делают?..
Аноним 28/04/17 Птн 11:42:47 #261 №981431 
1468383668174880516.png
>>981406
Обратное тоже верно.
Уточка крякает, и х-й с ней, это уточка, главное, что сертификат есть, и бог с ней с єтой реализацiей её.
Аноним 28/04/17 Птн 12:42:24 #262 №981452 
>>979641 (OP)
>Вот же объекты поделены, вот они взаимодействуют, никто внутрь другого объекта не лезет, за переменной через весь проект тянутся не нужно, что же не так?
Просто твой тимлид - хуесос. У тебя и был настоящий ООП, анончик. Уходи оттуда, если не ушёл ещё.
Аноним 28/04/17 Птн 13:58:38 #263 №981470 
вся суть обсуждений ооп в интернетах:
250 постов и ни строчки кода
Аноним 28/04/17 Птн 16:08:29 #264 №981518 
>>981470
Тут вкатывальщики с лабами2 за архитектуру энтерпрайза рассуждают, не мешай.
Аноним 28/04/17 Птн 16:20:17 #265 №981523 
> за архитектуру энтерпрайза

Бтв, друг рассказывал, ООП в 2,7 раза веселее, при активном использовании метапрограммирования в ран-тайме, энтерпрайзу и не снилось.
Аноним 28/04/17 Птн 16:30:57 #266 №981530 
>>981523
В рантайме - это долбоебизм. Раскрытие макросов должно происходить перед компилляцией.
Аноним 28/04/17 Птн 16:33:47 #267 №981533 
>>981530

Не обижай @dhh, плохой ты мальчик. Смотришь на рантайм депенденси ресолвер менеджер релисы и просветляешься.
Аноним 28/04/17 Птн 16:38:12 #268 №981535 
>>981533
Похуй на интерпретируемую парашу. В нормальнах языках депенденсы резолвятся через граф зависимостей.
Аноним 28/04/17 Птн 16:39:28 #269 №981537 
>>981535

Ну и живи дальше в своем ко-ко-компилируемом манямирке, противный.
Аноним 28/04/17 Птн 18:36:52 #270 №981588 
>>981537
А вот и динамикогоспода подъехали. Вечер в хату, подходи, присаживайся возле двери
Аноним 28/04/17 Птн 19:55:38 #271 №981616 
>>981518
ну, епт, они даже на реализацию adhoc полифорфизма в крестах не сагрились
обычно если есть в треде фп задрот он сразу на это визг поднимает
в общем, слабенько
Аноним 28/04/17 Птн 22:12:31 #272 №981666 
>>980020
Не совсем согласен. По моему мнению, для ООП достаточно существования объектов (внезапно, да). Что такое объект - это некоторый отдельный кусок данных и некоторый набор функций, которые связаны с этим куском данных. То есть скорее всего примерно тоже самое, что и модуль в твоём посте, но только не модуль, а некоторая единица, которая в принципе может и не поддерживать сокрытие данных на уровне языка.
Аноним 28/04/17 Птн 22:24:03 #273 №981674 
>>981666
Нет, я не прав. Объект - это просто набор функций, пользователю объекта не обязательно даже знать, что у объекта есть какие-то данные.
Аноним 28/04/17 Птн 23:01:12 #274 №981704 
>>981301
Двачую .NET господина, а ещё все кофе машины - стандартные и работают только под Windows, впрочем как и офис с работниками.
>>981470
System.Console.WriteLine("Ydy, podmoysya, Manyaaa!");
Аноним 28/04/17 Птн 23:45:19 #275 №981719 
>>981704
System.out.println("Sosi hui bidlo!");
Аноним 29/04/17 Суб 00:11:25 #276 №981731 
>>981719
Джава рулет, пасаны угорайте по кроссплатформенности, бейте спермохлебов, ломайте винду, пишите смело прямо в интерпретатор:
0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #3; //String Wuindows must die!
5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
Аноним 29/04/17 Суб 00:15:14 #277 №981733 
>>981731
Байт код?
Аноним 29/04/17 Суб 08:35:48 #278 №981797 
Почему шитый код так мало используется?
Аноним 29/04/17 Суб 08:56:19 #279 №981808 
>>981674
>Объект - это просто набор функций, пользователю объекта не обязательно даже знать, что у объекта есть какие-то данные.
Это пространство имён.
Объхекты — они именно с данными. В єтом йих смысел.
Аноним 29/04/17 Суб 13:05:30 #280 №981883 
>>981797
Потому что даже для форта сейчас есть нормальные компиляторы с оптимизацией.
Аноним 29/04/17 Суб 17:29:43 #281 №982040 
>>981470
Не, ты чо, пехапешник написал запрос в мускул. Что в общем-то тоже отражает суть: пока остальные пиздят, пехапешники хуярят.
Аноним 29/04/17 Суб 17:31:47 #282 №982044 
>>982040

Тот пехапешник, что реквесты к бд из вьюх хуярит? Сильный ООП-программист, ничего не скажешь.
Аноним 29/04/17 Суб 17:46:47 #283 №982060 
>>982040
>пока остальные пытаются питаться правильно или хотя бы вовремя добегать до туалета, пехапешники снимают штаны и хуярят
Ну такой себе повод для гордости.
Аноним 29/04/17 Суб 18:29:27 #284 №982075 
14139084448770.jpg
>>981470
>250 постов и ни строчки кода
А зачем тебе код? Ты не способен мыслить абстрактно? Какой же ты тогда программист. Ты, наверное, из этих, из джявистов? Стек-оверфлоу-дривен девелопмент во все поля, да? Даже на борде уже попиздеть не можешь без того, чтобы код откуда-нибудь скопипастить, мразь.
Аноним 29/04/17 Суб 19:41:38 #285 №982119 
>>982075

Проверь ancestors у слоника, чёт он какой-то неправильный и грустный.
Аноним 29/04/17 Суб 19:55:21 #286 №982133 
>>982119
У него Fragile base class
Аноним 30/04/17 Вск 00:47:49 #287 №982237 
14194512491460.gif
>>982133
>У него Fragile base class
Не у него, а он и есть этот самый класс. Будьте же людьми, говорит, не складируйте в меня сладкий хлеб.
Аноним 30/04/17 Вск 03:31:43 #288 №982266 
67ba8fa0ea67.jpg
>>979641 (OP)
> как работать с ООП правильно
Правильно работать так:
1) в случае если сам себе хозяин - как тебе удобно;
2) в случае команды - как тимлид велит.
И ниибёт.
Аноним 30/04/17 Вск 11:28:19 #289 №982310 
>>979641 (OP)
>но тимлид говорил "Неее, это процедурщина, давай заново"

ООП - это и есть процедурщина, лол.

>я открыл гугл и охуел

Ну да, ооп не существует. То есть оно существовало когда-то, но было сто раз закопано и превратилось в базворд, спасибо маркетолухам.

Вообще ооп всегда было чисто маркетологической фичей. ООП должно было решить проблему "кризиса программирования". Что такое кризис программирования? Маркетологи обычно отвечают что-то вроде: "ну тип все писали маленькие программы и копипастили код, а потом понадобилось писать большие программы и повторно использовать код, чего обычный процедурный подход не позволял делать".

Это, конечно же, ложь. До ооп код был более чем модульным, см те же емаксы, юниксы и техи.

В действительности кризис программирования выражался в следующем: все больше компаний вливалось в ойти, требовалось все больше программистов. Но чтоб писать модульный и красивый код на сях, лиспе или любом другом не ооп языке, нужно иметь скилл. Симула-стайл ООП придумали для того, чтоб создать инструмент, насильно принуждающих говнокодеров писать более модульный и абстрактный код с реюзом и проч.

Иными словами симула-стайл ооп придумали для того, чтоб макаки тоже могли писать код. Надо ли объяснять, что вскоре макаки придумали, как писать лапшу на жабе, и все вернулось на круги своя (только кода теперь в десять раз больше, ибо вместо простых конструкций теперь десятиэтажные иерархии)

http://loup-vaillant.fr/articles/deaths-of-oop
Аноним 30/04/17 Вск 11:32:33 #290 №982313 
>>979992
>function в качестве лямбда-оператора

Это ты сейчас ml из функциональных языков выписал, умник? Ох уж эти хаскеллисты местные.
Аноним 30/04/17 Вск 11:38:45 #291 №982316 
>>980020
Вот тут под каждым словом подпишусь.
Аноним 30/04/17 Вск 13:07:39 #292 №982346 
> нет никакого четкого однозначного ответа, примера о ООП
Java Cryptography Architecture
.NET Security
Аноним 30/04/17 Вск 20:10:34 #293 №982600 
>>981666
>которая в принципе может и не поддерживать сокрытие данных на уровне языка.
Ну так я ж и говорю, в той же Модуле и Обероне можно было определить что ты выставляешь из модуля наружу, а что нет.
Аноним 30/04/17 Вск 23:10:08 #294 №982668 
>>980185
Еще один пидорас разделяет ООП и функциональщину, найс
Аноним 30/04/17 Вск 23:14:11 #295 №982669 
То есть ООП это отказ от естественного синглтон паттерна в модульной парадигме, при возможной максимальной открытости? Ну в целом зайдет, но отсутствие ипкапсуляции - ну не знаю, хуево это.
Менянет якатаю 01/05/17 Пнд 01:44:37 #296 №982718 
>>979659
>(OP)
>Чем все закончилось-то с тимлидом?
Послал нахуй этого мохрового долбоеба, ибо это у него процедурщина.
Менянет якатаю 01/05/17 Пнд 01:47:19 #297 №982721 
Че за срач, я не пойму? Ооп мне помогает тем, что наследование и прочая хуйня есть, чего нет в процедурках. И код короче и понятнее.
/тред нахуй
Аноним 01/05/17 Пнд 03:14:01 #298 №982737 
>>982721
>что наследование помогает
Увозите этого в дурку
Аноним 01/05/17 Пнд 03:36:10 #299 №982738 
>>982737
Школьник, уймись
Аноним 01/05/17 Пнд 05:58:56 #300 №982741 
>>982738

За ультимативный вскукарек, о том что тебе помогают сильные формы связи, за это сажают на бутылку. И правильно делают. Предпочитай композицию над наследованием.
Аноним 01/05/17 Пнд 10:11:40 #301 №982767 
>>982310
Какой жи ты мерзкий петухан.

Ну да, огня из кремня не существует. То есть он существовал когда-то, но было сто раз закопан и превратился в базворд, спасибо маркетолухам.

Вообще огонь из кремня всегда было чисто маркетологической фичей. Кремень должен был решить проблему "кризиса огня". Что такое кризис огня? Маркетологи обычно отвечают что-то вроде: "ну тип все как лохи палочки терли, экстремалы за молниями бегали, потом как лохи за кострами смотрели, а внезапно понадобилось разводить повторно огонь и забить на блядские палочки".

Это, конечно же, ложь. До кремня огонь был святым посланием богов в виде молнии, см те же наскальные рисунки и узелковые послания.

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

Иными словами Кремень-стайл огонь придумали для того, чтоб ленивые макаки не сдохли от холода. Надо ли объяснять, что вскоре хилые макаки придумали, как жарить мясо, и все вернулось на круги своя (только огня теперь в десять раз больше, ибо вместо специальных людей и шаманов теперь кто угодно)

пещерный человек об огне и способах его добычи
Аноним 01/05/17 Пнд 10:37:06 #302 №982773 
>>982721
студентик, плес
Аноним 01/05/17 Пнд 11:02:27 #303 №982784 
>>982721
Давай объясню. Когда ты наконец-то закончишь свою шарагу и попадёшь в уютненькую говноконторку, тебе дадут какой нибудь ультрапримитивный таск, типа сделай архивирующую сохранялку для нашего кокореша. Начав делать таск, ты обнаружишь, что в проекте уже есть сохранялка, только не архивирующая. Ты создашь её наследника, что-то там в нём переопределишь и доимплементируешь, всё простестишь и закроешь таск. На ближайшем код ревью, тима поставит тебя к стенке, обольёт из брандспойта и ебанёт пару раз шокером. Таск будет справедливо завёрнут на реимплементацию.
На второй раз ты что-то вспомнишь про композицию, и на этот раз напишешь чистый класс, в котором создаётся объект обычного логгера и оборачивается слоем архивирующей логики. На близжайшем код ревью тебя опять же поставят к стенке, обольют из брандспойта и ебанут шокером пару раз.
Наконец, на третий раз, когда ты что-то вспомнишь про агрегацию и используешь DI, таск будет принят, и ты, волосатая макака, будешь приучена как нужно делать правильно. Жаль конечно, что всё такими вот примитивными средствами обучения, но что поделать, если ты, сука, тупое животное.
Аноним 01/05/17 Пнд 11:06:38 #304 №982786 
>>982767
>Петушиные кривлянья, опущенские понты, и мерзкое юродство.
>Какой жи ты мерзкий петухан.
Мда.

Тот анон на 90% прав.
А твоя петушиная "аналогия" в корне ошибочна.
Аноним 01/05/17 Пнд 11:10:01 #305 №982787 
>>982669
Инкапсуляция есть как в ООП так и в модульном программировании. Просто в ООП, у тебя вместо модуля его первоклассные экземпляры. Это всё принципиальное отличие.
Аноним 01/05/17 Пнд 12:19:29 #306 №982801 
>>982767
>До кремня огонь был святым посланием богов в виде молнии, см те же наскальные рисунки и узелковые послания.

>был святым посланием богов

Как ООП-макака видит код настоящих программистов, лол, посланием богов. Действительно, TeX и UNIX - послания богов в сравнении с типичным тырпрайз поделием в виде морде к бд на 20млн строк кода.
Аноним 01/05/17 Пнд 12:55:40 #307 №982808 
>>982786
>>982787
>>982801
Ебал твою мамашу.
Аноним 01/05/17 Пнд 12:58:25 #308 №982811 
>>979810
тяны вообще дают или как?
Аноним 01/05/17 Пнд 12:59:25 #309 №982812 
>>982811
Мамка твоя дает.
Аноним 01/05/17 Пнд 13:07:00 #310 №982823 
>>982801
>код настоящих программистов
Тупопездное выражение. Любой кто управляет выч.техникой - программист без градаций настоящести.

Так-то программирование граммотность 21 века, потому умерь свой снобизм и представь себя в конце 19 века, такого красивого, умного, умеющего читать и писать на трех языках один из которых функциональный мертвый и вдруг такой обсер перед деревенским быдлом: ЩА ТУТ ШОП МЕНЯ ЧЕРНЬ УЧИЛА ЧИТАТЬ ДА У МЕНЯ ПОТОМСТВЕНЫЕ ГЕНЫ ПЕРЕВОДЧИКА А МОЙ ДЕД ПЕРФОКАРТЫ ЕБАЛ
Аноним 01/05/17 Пнд 13:14:03 #311 №982832 
>>982823
>без градаций
Вовсе нет, бывают просто говнокодеры - а бывают и безнадежные дебилы, вроде тебя.
Аноним 01/05/17 Пнд 13:36:42 #312 №982846 
>>979641 (OP)
Есть люди, которые узнали про какой-то принцип и думают, что его нужно придерживаться всегда, иначе произойдет что-то страшное, какой-то большой-большой взрыв. Это долбоебы. Когда пишешь код нужно руководствоваться не абстрактным говном, а практическими соображениями: насколько код понятный, насколько легко его будет поддерживать. Думать наперед, короче.

Что касается конкретно ООП: использовать какую-то одну парадигму в чистом виде - это полнейший долбоебизм. Человек не мыслит только в объектно-ориентированном стиле или только в функциональном или еще в каком-то. Человек использует абстракции из разных парадигм. Нужно писать так, чтоб было понятно и хорошо поддерживалось. Это единственный критерий. Любой нормальный современный ЯП должен быть мультипарадигменным. Пока что лучше всего в этом плане Scala.

Может возникнуть вопрос, как узнать, что будет понятно другим людям? Ну, нужно не быть дауном, изучать CS и математику, всякие общие для программирования принципы, иметь широкий кругозор. Индусы так не могут, поэтому молятся на ТДД, паттерны из ГОФ, СОЛИД и прочую индусскую хуету, а как только видят, что кто-то их религии не придерживается, у них сразу начинает идти пена изо рта.

Аноним 01/05/17 Пнд 13:40:21 #313 №982849 
>>982846
>2ch.mail.ru/зк
>Думать
>не быть дауном
>изучать CS и математику
>иметь широкий кругозор
 
привет ты че охуел))))
Аноним 01/05/17 Пнд 13:46:55 #314 №982859 
>>982846
Добавлю все-таки, что СОЛИД не такая уж хуета, нормальные принципы, части из них я стараюсь следовать, но эти принципы можно понять просто читая чужой код и руководствуясь здравым смыслом, не нужно их специально учить и, тем более, воспринимать так серьезно, как это делают некоторые адепты.
Аноним 01/05/17 Пнд 13:47:32 #315 №982861 
>>982741
Поучи меня еще, щенок. Я тебе ебало сломаю и обоссу еще в добавок.
Аноним 01/05/17 Пнд 13:48:32 #316 №982862 
>>982861
>эта фантазирующая девственная омежка
Ясно.
Аноним 01/05/17 Пнд 13:50:16 #317 №982865 
>>982784
> На ближайшем код ревью, тима поставит тебя к стенке, обольёт из брандспойта и ебанёт пару раз шокером.
Не будет такого.
мимо-тимлид
Аноним 01/05/17 Пнд 14:01:10 #318 №982877 
>>982865
ЗАО "Пилим госзаказы", надо полагать?
Аноним 01/05/17 Пнд 14:07:18 #319 №982881 
>>982877
Нет, работаем только с бизнесом, в том числе с зарубежным. Не галера.
Аноним 01/05/17 Пнд 14:10:30 #320 №982884 
>>982865
Будет, будет
мимо тимлид из нормальной конторы
Аноним 01/05/17 Пнд 17:12:17 #321 №983015 
Инкапсулирование - это не только ограничение доступа к интерфейсам, но и ограничение по видимости переменных экземляра класса, даже когда те находятся в public.
Аноним 01/05/17 Пнд 18:51:52 #322 №983096 
1388143396070.jpg
>>982846
>Человек не мыслит только в объектно-ориентированном стиле или только в функциональном или еще в каком-то. Человек использует абстракции из разных парадигм. Нужно писать так, чтоб было понятно и хорошо поддерживалось. Это единственный критерий. Любой нормальный современный ЯП должен быть мультипарадигменным.
Очень часто встрачаю этот тезис, и всякий раз удивляет и смешит одно и то же: произносящий его человек, как правило, не умеет привести внятного примера ситуации, в которой ООП даёт сбой, то есть категорически неэффективен. В лучшем случае кукарекают про конечные автоматы на метках, но это как бы не совсем хороший пример, да и ирл с конечными автоматами на практике сталкиваются единицы за пределами институтских лаб. Удиви меня, а? Ну пожалуйста.

Еще раз, чтобы исключить слив на холивар: я не утверждаю, что таких ситуаций нет, но я хочу, чтобы именно ты, как автор процитированного вскукарека, привел внятный бытовой пример, не связанный с численными методами и оптимизацией под высокие нагрузки. Вот где-то там на уровне всех этих кофе-машин выше по треду, плиз.
Аноним 01/05/17 Пнд 18:58:59 #323 №983098 
>>983096
bool fileExists = Net.OS.Windows.MustDie.Filesystem::Static::This.Self->FileExists(Net.OS.Windows.MustDie.Filesystem::CHECK_EVERYWHERE, Net.OS.Windows.MustDie.Filesystem::IGNORE_FUCK_YOU as Boolean) or die(Net.OS.Windows.MustDie.OOP::SUXX::USE_NAMESPACES_INSTEAD);
Аноним 01/05/17 Пнд 19:14:11 #324 №983109 
>>982823
>Так-то программирование граммотность 21 века

И че, теперь каждый, кто писать умеет - Лев Толстой, и может называться писателем?

Ну уж хуй, есть программисты, а есть говнокодеры.
Аноним 01/05/17 Пнд 20:37:22 #325 №983225 
images.duckduckgo.com.jpg
>>983109
>Ну уж хуй, есть программисты, а есть говнокодеры.

Спешу развеять твои наивные мечты.
Хоть джава программист, хоть пишешь ты на си.
Неважно где и как, ты хаскель изучил.
Ученым ты не стал, и миру не открыл,
Ни новых горизонтов, ни истин старых быль.
Ты просто грязный раб, конвейерный дебил.
Аноним 01/05/17 Пнд 20:37:45 #326 №983227 
14161304026610.jpg
>>983098
Нет-нет, это пример не самого удачного дизайна с применением замаскированного под ООП процедурного подхода. Так и знал, что начнешь сливаться с темы, петушок, ну ёбаный же стыд.
Аноним 01/05/17 Пнд 20:38:21 #327 №983228 
>>983225
>Ученым ты не стал, и миру не открыл,
Wrong.
Дальше не читал.
Аноним 01/05/17 Пнд 20:38:57 #328 №983229 
>>983098
bool fileExists = Filesystem->fileExists(CHECK_EVERY_WHERE | IGNORE_FUCK_YOU);
Что за хуйню ты написал? Причем тут ООП?
Тебе спросили где ООП дает сбой а не просили срать тут

другой анон
Аноним 01/05/17 Пнд 20:41:05 #329 №983232 
rfdff44wewrdg.jpg
>>983227
>Покажите мне неудачный дизайн
>Нет-нет, это пример не самого удачного дизайна
>Так и знал, что начнешь сливаться с темы, петушок

Аноним 01/05/17 Пнд 20:42:29 #330 №983234 
>>983228
>Wrong.
>Дальше не читал.
Стол учоным на харкаче?
Доктор анонимных наук?
Доцент траллинга?
Открыл принцип сохранения батхерта?
Аноним 01/05/17 Пнд 20:45:15 #331 №983236 
>>983228
Если ты ученый, то ты уже не программист.

А то, с тем же успехом ученый может называться грузчиком, от того, что дома временами мебель переставляет.
Но это ж необычный грузчик, есть будлогрузчки, а есть тру грузчики.
Аноним 01/05/17 Пнд 20:46:21 #332 №983237 
pistonidrisov.jpg
>>983232
>Покажите мне неудачный дизайн
Перестань долбиться в глаза и прочитай еще раз, что я просил:

...привести внятный пример ситуации, в которой ООП даёт сбой, то есть категорически неэффективен

Не пример неэффективного ООП и не смищнявочки вроде тех, что ты тут высрал, а пример задачи, которую в принципе нельзя эффективно решить через ООП.
Аноним 01/05/17 Пнд 20:53:56 #333 №983246 
>>983237
Оке, весь SOLID - доказательство неффективности ООП. Классы, состоящие из 1 метода. Придумывание названия абстрактным фабрикам билдеров декораторов, передача инстанса класса для выборки из коллекции вместо лямбды.

Да пиздец, без элементов функциональщины ООП жрать могут только отборные копрофаги
Аноним 01/05/17 Пнд 20:56:10 #334 №983251 
>>983237
Ну тогда погугли «Linear Algebra and its Applications». Любая вычислительная задача, которая вызывает большое количество прыжков по оперативной памяти — решается процiдурным быдлокодом. Потому, что всё упирается в кеш процессора, вот почему.
Аноним 01/05/17 Пнд 21:37:45 #335 №983278 
>>983237
>и не смищнявочки вроде тех, что ты тут высрал
Ты меня с кем-то путаешь.
Я в шоке от 15летних ньюфагов путающих имейджборду с форумом.
Сириусли, раньше школьники легко определяли собеседников.

>пример неэффективного ООП
Критерий эффективности коков?

Тот кот, приведенным тем аноном, вполне себе пример, вполне себе неэффективности.
Неудачный дизайн, внезапно, неэффективен.
А ООП ведет к неудачному дизайну почти везде.
По крайней мере джава ооп.

А ООП вообще -> >>983246 >>983251
Аноним 01/05/17 Пнд 21:51:41 #336 №983286 
>>983251
>вычислительная задача, которая вызывает большое количество прыжков по оперативной памяти
Я это специально оговорил, см. пассаж про конечные автоматы и численные методы.
Аноним 01/05/17 Пнд 22:27:41 #337 №983298 
1398346327604.jpg
>>983278
>ООП ведет к неудачному дизайну почти везде
Такое же безапелляционное утверждение, как и исходный вскукарек. Поясни на примере с контрпримером, использующим другую парадигму.
Аноним 02/05/17 Втр 00:30:04 #338 №983343 
>>983298
>как и исходный вскукарек
Это ты о чем?

>Такое же безапелляционное утверждение
Тебе кажется.
Апеллируй сколько душе угодно.

>Поясни на примере с контрпримером, использующим другую парадигму.
1) Что ты под "другой" парадигмой подразумеваешь? ООП это принцип, а не парадигма. Или ты о джаве?
2) Извинись за свое хамство в отношении меня, и за свое мерзкое поведение в целом. Тогда я подумаю, стоит ли тебе что либо объяснять, или нет.
Аноним 02/05/17 Втр 01:32:21 #339 №983357 
>>983343
О, эти жалкие манявры. Как я и предсказывал, петушок не понимает смысла собственного же кукарекания.

>лээ блэт извинис, ваша парадигма не парадигма, маам ну скажи им
Не продолжай, все уже всё поняли.
Аноним 02/05/17 Втр 01:39:17 #340 №983361 
>>983343
> ООП это принцип, а не парадигма
Без гугла сможешь рассказать, в чем разница, и доказать, что ООП - не парадигма?
Аноним 02/05/17 Втр 01:49:56 #341 №983364 
>>983361
Только на хаскеле.
Аноним 02/05/17 Втр 02:08:13 #342 №983369 
>>983357
Как насчет перестанешь маняврировать и ответить на >>983246?

Аноним 02/05/17 Втр 02:11:52 #343 №983370 
>>983369
Как насчет навернуть /го/вна.
Аноним 02/05/17 Втр 02:13:41 #344 №983372 
>>983369
Я думаю ему лет 12, если не 10.
Так что просто забей.
Аноним 02/05/17 Втр 02:22:51 #345 №983375 
>>983372
Как ты узнал что мне 11?
Аноним 02/05/17 Втр 05:04:05 #346 №983388 
>>983375
По твоей фотке с флажком в жопе из /b/
Аноним 02/05/17 Втр 05:29:58 #347 №983391 
>>983388
Зарепортил педофила.
Аноним 02/05/17 Втр 05:36:31 #348 №983392 
>>979641 (OP)
Немного философии.
ООП это программирование на уровне сущностей.
Каждый объект, как маленький живой организм, клетка. Есть функции рождения и смерти, размножения и реакции на окружающую среду.
И вся ООП программа получается как большой организм. Насколько он будет живучим, зависит от качества программирования, от живучести всех составных объектов.
Процедурки - это программа-механизм или одноклеточный монолитный организм. Может как нибудь реагировать на внешние и внутренние события, присоединять и отсоединять свои части, но рождается и умирает при запуске и завершении программы.
Аноним 02/05/17 Втр 05:44:48 #349 №983393 
.jpg
>>983392
Аноним 02/05/17 Втр 05:48:43 #350 №983394 
>>983391

Ну ты тоже хорош: «Ко-ко-ко приведи пример кагда ниработает‽¿» Зачем возводить все в абсолют? Даже думать не хочу сколько абстракций нужно возводить на обработку чего-нибудь асинхронного, если для решения достаточно шпонькнуть каллбек на замыкание, это буквально две скобочки поставить. И это круто если в оопе можна юзать функцие первого порядка, пусть они и называются по-другому. Так что вскукареки о мультипарадигменности не понимаю. Другой анончик
Аноним 02/05/17 Втр 06:08:15 #351 №983395 
>>983393
возможно
Аноним 02/05/17 Втр 10:59:46 #352 №983437 
>>983369
>Как насчет перестанешь маняврировать
Ну а на что там отвечать-то? На "солед гавно"? Там там на каждую букву можно отдельный срач развести, это ж тупо очередная попытка слиться. Если ты имел в виду, что вон, мол, к этому вашему ООП еще инструкции в виде соледов-хуёледов читать надо, чтобы не срать в штаны - ну так я тебя разочарую: нет и не будет парадигмы или механизма, заставляющего писать хорошо. В том числе на твоих любимых блямбдах макароны пишутся, пожалуй, еще более ветвистые, чем на классах.

>>983394
Ну вот ты и привел более-менее нормальный пример. Собственно, я от него примерно это и хотел бы услышать, но результат был немного предсказуем.

>>983392
>И вся ООП программа получается как большой организм.
Ага, единый организм говно.
Аноним 02/05/17 Втр 11:08:12 #353 №983443 
>>983437
>Ну а на что там отвечать-то? На "солед гавно"?
Ты жопой читаешь.
Аноним 02/05/17 Втр 11:09:12 #354 №983445 
0026DavidHurn.jpg
>>983246
>Придумывание названия абстрактным фабрикам билдеров декораторов
Вот тут, кстати, отдельным постом выскажусь, ибо повод для отдельного срача.

Дело в том, что язык (человеческий я имею в виду) в программировании очень важен, про это все время забывают. Это прекрасный детектор говнища. Если для класса или метода трудно придумать название, как в примере выше - значит, выделены хуевые абстракции и надо делать по другому. Любовь масс к элементам функциональщины зачастую обусловлена именно тем, что лямбдам можно не давать имени. Так шахтеры, заебавшись выскакивать из забоя раз в полдня из-за постоянно срабатывающего газоанализатора, вырубают его нахуй; ура, план план перестает проебываться = но, увы, через некоторое время проебывается шахта вместе с планом и шахтерами.
Аноним 02/05/17 Втр 11:25:23 #355 №983456 
>>983392
>Немного философии.

Это неудачная аналогия, а не философия.
Аноним 02/05/17 Втр 11:35:37 #356 №983459 
>>983445
>Дело в том, что язык (человеческий я имею в виду) в программировании очень важен, про это все время забывают. Это прекрасный детектор говнища.
Тащемто, ты реально "философствующий" школьник, натырыбонькался из википедии всякого, и давай умствовать.

>повод для отдельного срача
Так ты просто срач разводишь? Покакулин?

Дело в том, что в компутере, нет ничего человеческого.
Единицы и нолики, регистры, кеши, прочие машинные потроха.
Поэтому человеческий язык, для управления комлуктером, не подходит от слова совсем.
И чем более человеческим языком ты пытаешься комплуктером управлять, тем хуже и непредсказуемее получается результат.
Аноним 02/05/17 Втр 11:58:05 #357 №983468 
>>983459
>Дело в том, что в компутере, нет ничего человеческого.
Спорное утверждение. Как минимум он продукт человеческой мысли и реализует механизмы, придуманные человеком.
>Единицы и нолики, регистры, кеши, прочие машинные потроха.
Ты только что сам себя опроверг, описав эти механизмы нормальным человеческим языком.
>Поэтому человеческий язык, для управления комлуктером, не подходит от слова совсем.
Утверждение основано на ложном тезисе и, таким образом, само является ложным.
>И чем более человеческим языком ты пытаешься комплуктером управлять, тем хуже и непредсказуемее получается результат.
Заблуждение пошло ветвиться и развиваться.

Вся история развития языков программирования демонстрирует постепенный переход от внутренних абстракций вычислителя к абстракциям, удобным для понимания и выражения человеком для человеческих же задач. Ты просто пытаешься прикрыть уязвленное самолюбие софизмом и жалобными воплями про шкальников и википузию.

Я утверждал и продолжаю утверждать, что если у погромиста вызывает затруднение именование некой абстракции - это верный сигнал того, что абстракция хуевая, что сфера ответственности этой абстракции размыта, что в будущем с хорошей вероятностью приведет к катастрофе.
Аноним 02/05/17 Втр 12:18:21 #358 №983480 
>>979992
JS, конечно не функциональный ЯП, но это не отменяет что ты высираешь информацию о том, чего абсолютно не знаешь. Ознакомся с предметом для начала, чтобы дебилоидом не выглядеть.
Аноним 02/05/17 Втр 12:24:57 #359 №983485 
>>983468
Он прав, а мамкин словоблуд тут ты, причем очень унылый. У компьютера свои абстракции, своя терминология и особенности, и пытаться адаптировать этот мирок в мирок привычный для человека работает до определенной степени, но в конце-концов когда дело доходит до передовых и реально нужных вещей все спускаются с маняоблачка привычных человеку ОБЫЧНОМУ понятий и описывают мир в понятиях придуманых специально для машины и удобства вычислений.
А все твои мартыханские описания предметной области естественным языком работают только в тех рамках, на какие хватило ума писавшим очередную говнобиблиоткеку.
Аноним 02/05/17 Втр 12:38:31 #360 №983489 
>>983468
>Спорное утверждение. Как минимум он продукт человеческой мысли и реализует механизмы, придуманные человеком.
Это софистика.
Можно в чем угодно пытаться узреть человеческое.
Даже в небе, даже в Аллахе.
Можно прийти к телесности мира и спящему Адаму.

>Ты только что сам себя опроверг, описав эти механизмы нормальным человеческим языком.
Я их описываю человеку. Поэтому язык человеческий.
На самом деле язык неформальный, но ты такой упоротый, что об этом лучше даже не пытаться говорить. Компьютерам подходят формальные языки, причем не все, а только те, которые близки к внутреннему устройству компутера.
А вот ДЛЯ КОМПЬЮТЕРА, решение задачи нужно описывать компьютерным языком, он, человеческого не понимает.

>Утверждение основано на ложном тезисе и, таким образом, само является ложным.
Тезис верный. См выше.
А ты совершаешь смешные логические ошибки, и вообще, просто "умствуешь", о вещах, в которых ничерта не понимаешь.
Более того, даже размышлять ты не умеешь, логика ломается через каждые два слова.

>Вся история развития языков программирования демонстрирует постепенный переход от внутренних абстракций вычислителя к абстракциям, удобным для понимания и выражения человеком для человеческих же задач.
1. Нет. Не демонстрирует.
2. Подобная очевидная потенция не отменяет того факта, что программы с таким подходом работают хуже.

>Ты просто пытаешься прикрыть уязвленное самолюбие софизмом и жалобными воплями про шкальников и википузию.
Я думаю, в скором времени, станет возможным давать задание комплуктеру неформальным языком. Постепенно эти технологии внедряются, и вероятно лет через 20, потребность в идиотах вроде тебя, вбивающих код, отпадет.

>Я утверждал и продолжаю утверждать, что если у погромиста вызывает затруднение именование некой абстракции - это верный сигнал того, что абстракция хуевая, что сфера ответственности этой абстракции размыта, что в будущем с хорошей вероятностью приведет к катастрофе.
Нет ничего идеального.
Аноним 02/05/17 Втр 15:48:20 #361 №983586 
>>981537
Пиздец, мамкины хаскелисты весь тред засрали.
Аноним 02/05/17 Втр 17:23:20 #362 №983638 
>>983246
>весь SOLID - доказательство неффективности ООП.
Чот не могу понять этот кукарек. Как рекомендации по написанию классов могут быть доказательством чего-то.

Сам солид ведет к очень хорошему дизайну, если не расшибать лоб об крайности в 1 класс = 1 метод (для такого годятся статические стейлесс хелперы с кучей похожих методов).

>передача инстанса класса для выборки из коллекции вместо лямбды
Лол, это норма. Твоя ебаная лямда имеет захваченые аргументы т.е. некоторое состояние и функцию предиката выборки - т.е. она суть каноничный объект класса, и я не понимаю, какой укурок догадался запихиваь его в функцию у которой очень неочевидные правила захвата переменых. Функционально-петушиное лабоуми не иначе.
Аноним 02/05/17 Втр 17:27:12 #363 №983639 
>>983445
Дико двачую. Если чему-то трудно дать нормальное имя без слов-маркеров размытой всеобщности, то это говно.
Аноним 02/05/17 Втр 18:06:05 #364 №983656 
>>983015
Опять же, было ещё в модульном программировании.
Аноним 02/05/17 Втр 18:42:16 #365 №983672 
>>983638
Какое ещё состояние? Под состоянием обычно понимается что-то мутабельное, в то время как в нормально ФП языке захваченную переменную ты изменить не можешь, ни снаружи, ни изнутри, так что referential transparency не нарушается, в отличие от маняобъектов, для которых, к тому же, даже не определена операция композиции.
Аноним 02/05/17 Втр 19:47:15 #366 №983710 
>>983639
> Если чему-то трудно дать нормальное имя без слов-маркеров размытой всеобщности, то это говно.

> это говно.
Или регулярное выражение.
Аноним 03/05/17 Срд 00:12:48 #367 №983874 
14711782449970.jpg
>>983489
>А вот ДЛЯ КОМПЬЮТЕРА, решение задачи нужно описывать компьютерным языком
Ну так и описывай на здоровье. Только вот компьютеру внезапно насрать, как ты обзываешь свои абстракции. Он перемелет все, что проектанты хуевы вроде тебя выблевали в IDE. А кому не все равно, догадаешься сам или подсказать, хомски ты комнатный?

>того факта, что программы с таким подходом работают хуже
Настало время охуительных фактов. Ну-ка, поведай миру, как абстракции вроде abstractComponentModuleFactoryBean, $x1 или movEaxEbx() заставляют программы работать лучше.

>Нет ничего идеального
Так можно говорить про хорошие вещи, дальнейшие попытки улучшения которых приводят к неприемлемым сайд-эффектам. Про говнище, которое ты привык высирать в виде кода и которое ты тут пытаешься оправдать, так говорить нельзя.
Аноним 03/05/17 Срд 00:44:06 #368 №983889 
14820046182740.jpg
>>983672
>в то время как в нормально ФП языке
Так речь не про "нормальные", а про объектные с блямбами. Например, в легендарном языке PHP объекты всегда передаются по ссылке, таким образом, захваченному в переменной объекту можно менять состояние в два смычка. А в популярном языке JavaScript захваченная переменная просто видна изнутри как локальная, этим часто пользуются для создания аналога private-переменных.

Так что в целом я согласен с предыдущим оратором: блямба в целом эквивалентна объекту с методом. В довольно узком ряде случаев они бывают удобны (в основном когда их объявление и использование происходит в пределах одного блока кода), но вот передавать их аргументами в методы в общем случае вряд ли можно считать хорошей практикой.
Аноним 03/05/17 Срд 00:55:55 #369 №983895 
>>983889
> А в популярном языке JavaScript захваченная переменная просто видна изнутри как локальная, этим часто пользуются для создания аналога private-переменных.
По твоему если ты передаешь javascript объект, егj состояние нельзя менять в два смычка?
Аноним 03/05/17 Срд 01:02:33 #370 №983897 
>>983895
>По твоему если ты передаешь javascript объект, егj состояние нельзя менять в два смычка?
Может, и можно, не помню уже. Явная немутабельность вообще не так уж и часто в языках встречается, в расте вот разве что.
Аноним 03/05/17 Срд 01:16:39 #371 №983898 
>>983897
Rust
ML
Haskell
Clojure
Erlang
Ada
Swift
Не так уж и редко
Аноним 03/05/17 Срд 01:21:56 #372 №983902 
1395648189806.gif
>>983898
>Haskell
Такого языка не существует, это локальный мем /зк/.
Аноним 03/05/17 Срд 01:23:31 #373 №983904 
>>983889
>>983672
>>983638

Мутировать захваченные объекты тебе никто не запретит. Как и писать ебанутые иерархии наследования с god-классами, которые не используют IoC. Хочешь стрелять себе в ногу - пожалуйста. Писать говно можно используя любую парадигму.

managedByVasya= users.Where(new UserFilterByManager(managerName: "Vasya")) требует написания никому нахуй ненужного класса UserFilterByManager (имплементацию опустил потому что нахуй всё это нужно).

managedByVasya = users.Where(user => user.Manager.Equals("vasya")) лаконично делает то же самое.

Нет никакого смысла писать код ради кода.
Аноним 03/05/17 Срд 01:26:18 #374 №983905 
>>983897
Учитывая что все современные компьютеры построенны на гарвардской архитектуре - если тебе очень-очень хочется, ты сможешь мутировать всё что угодно. Даже код. Было бы желание.
Аноним 03/05/17 Срд 01:27:43 #375 №983908 
ЭЙ ТАМ ЗА ОКНОМ! ДА-ДА, ВЫ, АЛКАШНЯ! А НУ ХВАТИТ ШУМЕТЬ! СЕЙЧАС ПОЛИЦИЮ ВЫЗОВУ!
Аноним 03/05/17 Срд 01:36:25 #376 №983912 
>>983904
>Мутировать захваченные объекты тебе никто не запретит.
Як не запретит, запретит. Вон >>983898 цельный список запрещаторов накатал. Но не суть.

В твоем коде как раз узкая задача (фильтрация) и использование сразу после объявления, здесь блямба отлично зашла.
Аноним 03/05/17 Срд 01:43:51 #377 №983914 
>>983904
Кстати, тут хорошая такая мина замедленного действия из-за этой блямбы. В отличие от сконфигурированного фильтра, она не поддается сериализации, а значит, как только возникнет необходимость, скажем, вывести базу юзеров в микросервис, мамкин функциональщик заебется все это рефачить.

Это не значит, естественно, что так нельзя делать, просто важно понимать, что там, где задействованы лямбды, масштабированию пришел пиздец заранее.
Аноним 03/05/17 Срд 01:47:06 #378 №983915 
>>983912
>узкая задача (фильтрация)
Хуя, блять, узкая. В нашем 5М LOC проекте примерно 15% кода - работа с коллекциями.
Аноним 03/05/17 Срд 01:50:54 #379 №983918 
g♥.png
НЕТ, ВЫ ПОСМОТРИТЕ НА НИХ. ОБМАЖУТСЯ СВОИМ ООПЕ И ДОЛБЯТСЯ ДРУГ В ДРУЖКУ И ДОЛБЯТСЯ. ПОЛИЦИЯ! ПОЛИЦИЯ!
Аноним 03/05/17 Срд 01:52:34 #380 №983919 
>>983915
Узость задачи никак не связана с частотой.
Аноним 03/05/17 Срд 01:55:13 #381 №983920 
>>983914
1) Если вы выделяете что-то в микросервис, в первую очередь надо думать над API к нему. Мамкин функциональщик наткнется ровно на такое же кол-во проблем, что и оопидор.
2) Сериализацию лямбд в expression tree никто не отменял.
Аноним 03/05/17 Срд 02:01:31 #382 №983922 
>>983920

ПИУ! ПИУ! РАБОТАЕТ СПЕЦНАЗ! ВСЕМ ЛЕЖАТЬ! ВЫ АРЕСТОВАНЫ! СОПРОТИВЛЕНИЕ БЕССМЫСЛЕННО! ПИУ! ПИУ!
Аноним 03/05/17 Срд 02:02:47 #383 №983923 
аноны, матанопитухи спрятались под шконарь и нехуя за базар не поясняют. НАХУЙ функциональное программирование нужно? в чем его преимущество перед процедурным и ооп? какие бля задачи я не смогу без него решить? ну это же очередной развод хипстерков лошков, со стороны жидоматематиков, ну еб.
Аноним 03/05/17 Срд 02:05:43 #384 №983924 
>>983923
Брейнфак - тьюринг полный. На нем можно решать все вычислимые задачи. Поясняй, нахуй нужны другие языки программирования.
Аноним 03/05/17 Срд 02:08:23 #385 №983925 
>>983924
>Брейнфак
>На нем можно решать все вычислимые задачи
ну решай, вычисляй, поддерживай, кто тебе не дает
Аноним 03/05/17 Срд 02:09:55 #386 №983926 
>>983923

> НАХУЙ функциональное программирование нужно?

кококо Quipper (диалект хаскеля) кококо Квантовые вычисления кококо Гугл. Ну как-то так.

Ходят слухи, что передовой функциональный петушатник гугла пытается в квантовые алгоритмы на Квиппи. Больше не знаю зачем нужна.

АХ ДА РУКИ НЕ ОПУСКАТЬ, ДЕРЖАТЬ НА ВИДУ, НОГИ НА ШИРИНЕ ПЛЕЧ, ПОПКУ ВПЕРЕД! ВЫ АРЕСТОВАНЫ ЗА НЕЗАКОННЫЙ МИТИНГ У СЕБЯ НА КУХНЕ.
Аноним 03/05/17 Срд 02:10:26 #387 №983927 
>>983925
Итак, где твое объяснение зачем нужны другие языки программирования?
Аноним 03/05/17 Срд 02:12:52 #388 №983929 
>>983927
>Итак, где твое объяснение зачем нужны другие языки программирования?
объясняю, они уже есть, есть библиотеки, есть обученные люди, есть продукты. теперь ты объясняй, нахуй нужна функциональщина?
Аноним 03/05/17 Срд 02:13:54 #389 №983930 
>>983929
Не объяснение нихуя.
Аноним 03/05/17 Срд 02:15:09 #390 №983931 
>>983929
объясняю, она уже есть, есть библиотеки, есть обученные люди, есть продукты.
Аноним 03/05/17 Срд 02:16:22 #391 №983932 
>>983926
>квантовые алгоритмы
на квакваквантовом кампутере? лол
Аноним 03/05/17 Срд 02:18:05 #392 №983933 
>>983931
>объясняю, она уже есть, есть библиотеки, есть обученные люди, есть продукты.
джва с половиной хипстера и их лисапед?
Аноним 03/05/17 Срд 02:21:06 #393 №983934 
>>983926
>Quipper
Само по себе существование такого языка с высокоуровневыми абстракциями и реализованными на нём алгоритмами поможет в создании новых алгоритмов для квантовых компьютеров, считают авторы языка Quipper.

а, ну теперь понятно, авторы этой хуеты считают, что нужно.
Аноним 03/05/17 Срд 02:23:02 #394 №983935 
>>983933
Ты и твоя мамаша.
Аноним 03/05/17 Срд 02:25:55 #395 №983938 
>>983935
лямбду тебе защеку
Аноним 03/05/17 Срд 08:22:22 #396 №983977 
NgGUXTgt-7M.jpg
>>983920
>Если вы выделяете что-то в микросервис, в первую очередь надо думать над API к нему.
При чем здесь API? Речь идет о выделении уже написанного фрагмента программы, а не изначальном проектировании.

>Мамкин функциональщик наткнется ровно на такое же кол-во проблем, что и оопидор.
Оопидору придется только переписать реализацию Where, захуярив оттуда обращение к микросервису, и допилить сериализацию фильтра, если ее еще не было. Сам код переписывать не придется.

>Сериализацию лямбд в expression tree никто не отменял.
НЕТ НИКАКОГО СМЫЛА ПИСАТЬ КОД РАДИ КОДА, лол.

Все эти элементы функциональщины в ОО-языках - обычное срезание углов, жертвование гибкостью ради сиюминутной экономии. Где-то можно и пожертовать, но подавать этот тришкин кафтан как неебический прогресс просто смешно.
Аноним 03/05/17 Срд 09:30:31 #397 №983998 
>>983904
>managedByVasya = users.Where(user => user.Manager.Equals("vasya")) лаконично делает то же самое
Нет не делает, а поощряет копипасту и говнокод.

Три таких лаконичных лямды в разных местах программы делают тебя снчало грустным, а потом упаковываются в объект предиката, который обладает внезапно большими возможностями фильтрции, чем вытесянет половину скобочно-стрелочной копипастной дрисни из проекта.
Аноним 03/05/17 Срд 10:57:59 #398 №984036 
>>983998
А предикат инициализируется лямбдой. Оухенно, ящитаю.

>>Сериализацию лямбд в expression tree никто не отменял.
>НЕТ НИКАКОГО СМЫЛА ПИСАТЬ КОД РАДИ КОДА, лол.
В нормальных языках это есть из коробки.

>Оопидору придется только переписать реализацию Where, захуярив оттуда обращение к микросервису, и допилить сериализацию фильтра, если ее еще не было. Сам код переписывать не придется.
То же самое с мамкиным функциональщиком
Аноним 03/05/17 Срд 15:04:45 #399 №984148 
>>984036
>В нормальных языках это есть из коробки.
Да вот только микросервис может быть написан на другом языке, так что коробку свою на хуй себе надень.
Аноним 03/05/17 Срд 19:54:36 #400 №984300 
>>983096
> в которой ООП даёт сбой, то есть категорически неэффективен
При чем тут категорически неэффективен? Можно и на чистом си все писать, и работать будет, но зачем?

Полно примеров, когда уродливо и в 10 раз больше кода, чем должно быть. Например, до 8й джавы не было лямбд и чтобы передать коллбэк создавали анонимный класс. Есть такой поехавший адепт ООП Егор Бугаенко, который считает, что так до сих пор и надо делать, лямбды нельзя использовать, потому что это не в духе ООП.
Аноним 03/05/17 Срд 21:43:16 #401 №984383 
>>984148
Я лучше себе твой анус на хуй надену.
Аноним 03/05/17 Срд 22:26:52 #402 №984412 
>>984383
Кто о чем, а функциональшик об анусах.
Аноним 03/05/17 Срд 22:32:45 #403 №984417 
>>984412
Снимай штаны уже.
Аноним 03/05/17 Срд 23:17:59 #404 №984456 
14170287438350.jpg
>>984300
>Полно примеров, когда уродливо и в 10 раз больше кода, чем должно быть. Например, до 8й джавы не было лямбд и чтобы передать коллбэк создавали анонимный класс.
Надо же, как все уцепились за эти лямбды, прям кушать не могли без них. Они хороши для набросков, для прототипов, но они не фиксируют контракта, это мусор, записки на туалетной бумажке, примотанные скотчем. Это нормально - иметь какие-то локальные компактные помойки такого рода в коде; но постоянно раздаются голоса о некоем прорыве. Хуй знает, что там у кого прорвало, по мне так у нас есть теперь удобная туалетная бумажка для набросков, только и всего.

> Есть такой поехавший адепт ООП Егор Бугаенко
Обожаю его, настоящий больной ублюдок, рекурсивный тролль. Очень полезно его читать и разбирать, в чем его ошибки.
Аноним 03/05/17 Срд 23:31:28 #405 №984460 
>>984456
> но они не фиксируют контракта
Ты ебанутый? Лямбда это функция, её контракт это её тип. И в отличие от маняобъектов, операция композиции функций определена. ООП по типу контрактности вообще сосёт, и как показал Эфель, единственный способ это исправить - ебашить ассерты до и после каждого вызова.
Аноним 03/05/17 Срд 23:42:34 #406 №984466 
>>984460
Как будто в фп контракты не сосут, лол
Аноним 04/05/17 Чтв 00:25:11 #407 №984479 
>>984460
>Лямбда это функция, её контракт это её тип
Удачи с переносимостью этого дерьма.
Аноним 04/05/17 Чтв 01:48:05 #408 №984503 
>>984479

Сер, у вас микросервис головного мозга. Проверьтесь на переносимость!

С анонимными функциями в ООПе связана другая опасная неожиданность - каждый раз когда ты её шпонькаешь, где-то умирает один котик - причем в роли котика выступает сборщик мусора, который немножко охуевает, так можно и незаметить, как твоя программа засрет всю свободную память и будет искать чтобы засрать еще. Или попробует вызвать удаленный объект, что приведет к событию #ПИЗДЕЦ!1!!1!1

> Надо же, как все уцепились за эти лямбды

Это очевидный контр-пример against your вскукарек о мульипарадигменности. Все сравнений с функциоОНАЛьщиной ООП обоссать даже попроще - оно тупо не в состоянии полноценно заменить специализированные инструменты наподобии б-жественного Structured Query Language. Ну или твои конченные автоматы, на примере регулярок - эти тоже плохо поддаются ООПизации.

Очевидный вывод - очевиден, ООП имеет узкую степень применимости в реальном мире.
Аноним 04/05/17 Чтв 01:53:39 #409 №984504 
>>984503
Мань, это мой первый пост и пишу я на плюсах, с микросервисами дел не имею к сожалению ( или нет ).

Под переносимостью я имел ввиду неоднозначность интерфейса функции в зависимости от контекста: поддерживает язык мультиметоды/не поддерживает, поддерживает язык функции высшего порядка/не поддерживает, поддерживает язык неявные пользовательские преобразования типа или нет. И еще дохуя подобных факторов ломают однозначность функционального интерфейса в пользовательском контексте. А ведь если взять тот же .net или jvm то учитывать придется сразу множество языков. Плюс версионирование от которого правила вывода аргументов точно так же варьируются.
Аноним 04/05/17 Чтв 01:59:34 #410 №984506 
>>984504
>пишу я на плюсах
Это прямо как в конеебле признаться.
Аноним 04/05/17 Чтв 02:01:26 #411 №984511 
>>984506
>...
поне- ?

А на самом деле у лаборанта выше просто про каких-то коллекторов пассажи, решил уточнить.
Аноним 04/05/17 Чтв 02:08:41 #412 №984514 
>>984504
Нахуй ты собрался язык менять посреди испольнения программы?
Аноним 04/05/17 Чтв 02:12:18 #413 №984516 
>>984514
Обыкновенная практика в этих ваших байткододрочильнях, VB->C#->F#->IronPython и все в одном домене.

Но ты можешь это пропустить и прочитать первую часть, про контекст в рамках одного языка.

Имея

foo ( int, wchar )
foo ( long, wchar )

Надо знатно поебаться чтобы гарантировать какие-то последовательности исполнения для

foo ( user_struct_castable_to_double, user_struct_castable_to_short_and_wchar)
Аноним 04/05/17 Чтв 02:27:26 #414 №984520 
>>984516
Кресты правда так калечат?

x86 ассемблеру поебать на то, какие классы, интерфейсы и абстракции ты написал на своих спермокрестах. Он знает про регистры процессора, опкоды инструкций и указатели на разные области памяти. Все спеки на x86 у тебя есть.

MSIL/JVM bytecode высираются при компиляции по такому же принципу: будь добр сгенери байткод, который с поймет твоя виртуальная машина. Похуй какие у тебя там сверху абстракции, высри мне байткод по спекам JVM/MSIL.
Аноним 04/05/17 Чтв 02:29:29 #415 №984521 
>>984520
Так он тебе именно что и высрет. Только ты не будешь значить что именно происходит для произвольного ввода. При чем тут ассемблер?
Аноним 04/05/17 Чтв 02:35:53 #416 №984522 
>>984521
Зачем ты споришь с этим дауном? На ущербов топящих за парадигму X и хуесосящих Y надо только харкать и ссать.
Аноним 04/05/17 Чтв 02:37:24 #417 №984523 
>>984521
Есть спек, который показывает однозначно, как перевести из MSLI/JVMbytecode в нужный язык. Где все описанные тобой нюанусы уже описаны
Аноним 04/05/17 Чтв 02:39:09 #418 №984524 
>>984522
Ебучие ситы, возводят всё в абсолют.
Аноним 04/05/17 Чтв 07:31:18 #419 №984546 
>>984456
>рекурсивный тролль
Это что-то новое, поясни это как?
Аноним 04/05/17 Чтв 07:52:05 #420 №984548 
>>984546
Троллит сам себя. Очевидно же.
Аноним 04/05/17 Чтв 08:04:00 #421 №984550 
зачем.jpg
>>984548
Но зачем?!
Хотя мне кажется, что тролит сам себя - это self-troll, а рекурсивный, это когда он затралил кого-то, то ещё кого-то и т.д.
Аноним 04/05/17 Чтв 08:04:35 #422 №984551 
>>984550
тот*
Аноним 04/05/17 Чтв 11:31:34 #423 №984617 
>>984550
>рекурсивный, это когда он затралил кого-то, тот ещё кого-то и т.д.
Так и есть, просто этим "кем-то" всякий раз оказывается сам Егорушка.
Аноним 04/05/17 Чтв 12:11:05 #424 №984638 
Меня зовут Геннадий возбудитель телок. Вы про меня слыхали нет?
Аноним 04/05/17 Чтв 12:15:44 #425 №984644 
>>983874
>Только вот компьютеру внезапно насрать, как ты обзываешь свои абстракции.
Наверное.

>проектанты хуевы вроде тебя выблевали в IDE
Ну вот, начал с софистики, а скатился в мерзкую клоунаду и хамство.

>Настало время охуительных фактов. Ну-ка, поведай миру, как абстракции вроде abstractComponentModuleFactoryBean, $x1 или movEaxEbx() заставляют программы работать лучше.
Ты говоришь о языках, или о политике именования в них?

Названия переменных\функций\модулей должны быть лаконичными, отражать максимально смысла в минимальном объеме.
Или по твоему не должны?
Причем, лаконичность во многом зависит от общепринятых контрактов в том или ином языке(матаппарате).

>Так можно говорить про хорошие вещи, дальнейшие попытки улучшения которых приводят к неприемлемым сайд-эффектам.
Можно.

>Про говнище, которое ты привык высирать в виде кода и которое ты тут пытаешься оправдать, так говорить нельзя.
У тебя шизофрения. Я тебе своего кода не показывал. И уж тем более не пытался в чем либо перед тобой, либо еще кем-то, оправдываться.
Аноним 04/05/17 Чтв 12:16:18 #426 №984647 
>>984644
Ты про меня слыхал нет?
Аноним 04/05/17 Чтв 12:21:02 #427 №984655 
>>984647
Да, сегодня шел в банк мимо школы, обналичить свои 300к\c и видел как один школьник опускал тебя в мусорное ведро, а два других распотрошили твой портфель и вырывали страницы из дневника.
Аноним 04/05/17 Чтв 12:31:41 #428 №984658 
452523456251.jpg
>>984647
>Ты про меня слыхал нет?
Егор?
Илья?
Шизик?
Аноним 04/05/17 Чтв 12:47:42 #429 №984663 
1.webm
>>983923
Multithreading
sageАноним 04/05/17 Чтв 12:57:08 #430 №984669 
>>984658
>Шизик?
Бинго!
ну и дебилы вы тут все, это просто пиздец - что шизик с обострением, что очкастый дятел с "хамством" головного мозга
Аноним 04/05/17 Чтв 13:21:24 #431 №984675 
>>983923
многопоточность, можно делать нормальные системы с обработкой большого количества данных в дохуя потоков не пердолясь с всратыми локами как дебил
еще код легче читается и система прозрачней.
Аноним 04/05/17 Чтв 14:34:23 #432 №984701 
>>984663
нужно не
assertEqual f(x), f(x)
а,
assertEqual f(getCurrentState()), f(getCurrentState())

вот что вернет getCurrentState() ты не знаешь. в фяп или еще где, пофиг.
в erlang ты передаешь состояние как параметр и меняешь его отсылая сообщение или tail recursive call. в других яп ты просто по другому его меняешь. я поулачал блокировки на erlang. но я не опытен.
sageАноним 04/05/17 Чтв 14:56:38 #433 №984708 
>>984701
я имею ввиду, что sort(x) == sort(x) в любом яп. если что сложнее, то всегда есть состяние которое меняется.
в веб, у тебя состояние определяется параметрами браузера, данными в бд. в какой-то момент ты просто не знаешь что сейчас за состояние. хотя все обработчики запросов, чистые - не используют глобальные переменные, если не считать бд глобальной переменной.
Аноним 04/05/17 Чтв 15:18:08 #434 №984721 
>>984701>>984708
https://www.youtube.com/watch?v=7Zlp9rKHGD4

Посмотри хотя бы 30 минут видео, там объясняется, почему любые переменные - это изменение стейта программы. Нет присвоения переменных - стейт остается одинаковым в любой момент времени, ничего не меняется.
>в веб
Что веб? Веб - это пользователь в браузере отправил запрос, твоя программа его обработала и отправила ответ, от работы с вебом никакой уникальности в работе программы не появляется и появиться не может.
Аноним 04/05/17 Чтв 15:59:06 #435 №984747 
11423245.webm
>>984721
>там объясняется, почему любые переменные - это изменение стейта программы. Нет присвоения переменных - стейт остается одинаковым в любой момент времени, ничего не меняется
Любые переменные, это область в ОЗУ компьютера.
Любое изменение ОЗУ\кеша\регистров - изменение стейта.
Нет изменений памяти - стейт остается одинаковым, ничего не меняется.
)))
Как же хочется выстрелить дробовиком тебе в лицо )))

>16:56
>Functional
>Like a function
>y=f(x)
>no external force, believe me 11111111111

>y=f(t)
>Not like a function
>Not functional111111111

Боже, это видео можно разбирать тобою написанное бесконечно.
Аноним 04/05/17 Чтв 16:07:30 #436 №984752 
>>984721
> от работы с вебом никакой уникальности в работе программы не появляется и появиться не може

Писать отрытые, statelessness айпопишки чревато неконтролируемыми нагрузками. Хранить информацию о соединениях на стороне пользователя бессмысленно - прошаренный мамкин хакир удалит куку и будет таков.

Поэтому забудь про RESTful, чтобы хуяк-хуяк и запоминал с какого айпи-адреса и токена сколько пришло запросов. И в зависимосте от состояния ОТДАВАЛ или 200 код или 403.

Это ведь так очевидно, твоя фасоленка не способна принимать в себя толпы озлобленных папуасов с > 20 см (а хотелось бы, да?).
Аноним 04/05/17 Чтв 16:10:14 #437 №984753 
>>984721
Нет серьезно.
Это пушка на пушке.
Просто пиздец.
Состояния нет, поехавшие.

У любой программы есть минимум 2 состояния.
Блядь.
Не бывает систем без "побочных эффектов".

> int x=1 //x is an id that has a value
Блядь. Нет. Это псевдоним для адреса в ОЗУ.
Идиоты с расплавленными мозгами.

>x=x+1 //now x changed state
Нет, теперь процессор извлек значение из памяти в регистр, регламентировал его, и записал обратно в память.
И эта простая операция потребовала несколько последовательных изменений состояний компутера.

Операция присваивания это запись информации память.
А запись информации - оператор присваивания.
Пиздец, от присваивания они избавились, ублюдки безмозглые.
Аноним 04/05/17 Чтв 16:11:45 #438 №984755 
>>984753
>регламентировал
инкрементировал
Аноним 04/05/17 Чтв 16:13:12 #439 №984756 
>>984747
>>984753
Вот что бывает когда жс-дегенерат пытается выдать себя за байтоеба.
Нет, они конечно тоже охренительно далеко не гении - но ты-то вообще дебил, мартышка.
Аноним 04/05/17 Чтв 16:18:34 #440 №984760 
>>984655
Ты петух ебаный бывший сотрудник пизда тебе
Аноним 04/05/17 Чтв 16:18:56 #441 №984761 
>>984655
Сука очкобарсук ебать я тебя обманываю хахаха
Аноним 04/05/17 Чтв 16:19:16 #442 №984762 
>>984655
Хахаххахаха ебасоска тупая малолетка блять хаха тупой лох а ты обманка
Аноним 04/05/17 Чтв 16:19:39 #443 №984763 
>>984655
Хаха чмырдяйко афанасиевич тупой дибилоботан
Аноним 04/05/17 Чтв 16:20:05 #444 №984764 
>>984655
Маня плиз маня маня ахахахаха дебич плиз инфибо что в 2к17
Аноним 04/05/17 Чтв 16:20:25 #445 №984765 
>>984655
Ахаха лох тебя попустили
Аноним 04/05/17 Чтв 16:20:59 #446 №984766 
>>984747
Что сказать-то хотел? Словами сформулируй, а не хрюканьем.
>>984752
Наркоман, никто не говорит, что ты не можешь хранить данные на сервере или что нужно отказаться от БД, потому что это ужасный стейт.
Аноним 04/05/17 Чтв 16:21:22 #447 №984767 
>>984669
Хахаххахаха шизик дебич прийми таблетки маня
Аноним 04/05/17 Чтв 16:21:44 #448 №984768 
>>984766
Хахаххахаха лох тупой угораю с тебя
Аноним 04/05/17 Чтв 16:27:05 #449 №984769 
Стикер
>>984655
>Да, сегодня шел в банк мимо школы, обналичить свои 300к\c и видел как один школьник опускал тебя в мусорное ведро, а два других распотрошили твой портфель и вырывали страницы из дневника.
>>984760>>984761>>984762>>984763>>984764>>984765
Аноним 04/05/17 Чтв 16:33:02 #450 №984771 
>>984766
>Наркоман, никто не говорит, что ты не можешь хранить данные на сервере или что нужно отказаться от БД, потому что это ужасный стейт.

Обоснуй вскукареки о функциональщине - то стейты у вас не мутабельные, то отдельные состояния изменяемые. Или вы из этих, которые на два стула?
Аноним 04/05/17 Чтв 16:33:02 #451 №984772 
>>984753
>Нет, теперь процессор извлек значение из памяти в регистр, регламентировал его, и записал обратно в память.
То есть значение поменялось в результате какого-то действия, это и есть изменения стейта, хуй знает, чего ты так раскукарекался.
>Операция присваивания это запись информации память.
Не операция присваивания, а операция присваивания переменной. Слово переменная тебе объяснять нужно или сам значение знаешь?

https://8thlight.com/blog/uncle-bob/2012/12/22/FPBE1-Whats-it-all-about.html - Можешь еще почитать, там по сути то же самое, что и в видео, но статьей. А то тебе как-то сложно дается новая информация в таком формате, судя по всему.
Аноним 04/05/17 Чтв 16:45:36 #452 №984780 
>>984771
В мире нет ничего идеального, если ты конечно не школьник-максималист. В идеальном мире ФП - да, стейт не меняется и вообще все всегда заебись. В реальном - иногда можно, но это не поощряется и нужно прыгать через жопу для достижения цели, поэтому подобное зарезервировано для крайних случаев, в остальных - просто нерационально.
Аноним 04/05/17 Чтв 18:39:14 #453 №984826 
>>984772
как я понял

1. https://medium.com/everydayhero-engineering/elixir-variable-rebinding-342c5d0fd961
в elixir - erlang vm -- можно менять identity. но дело в том, как это работает.

2. дело в scope.
в elixier, при присваивании, в родительском контексте, значение не изменится. дело не в операции присваивания, а в том, как мы ее используем.

в видео и в статье пример с циклом. это прост опример.
если процедура не использует и не меняет переменные из родительской области видимости, то все ок, всегда: assetEqual foo(x), foo(x) -- для любого языка.

функ. языки гарантируют
assertEqual foo(x), foo(x) -- для любой foo.

но у сложной программы есть состояние. тебе как-то его нужно менять. могут быть и блокировки и что там еще.
то-есть то, что программа написана на яунк. языке еще не гарантирует что не будет блокировок.
Аноним 04/05/17 Чтв 19:47:33 #454 №984850 
Я УКРАЇНЕЦЬ ПОВАЖАЙТЕ МОЮ БАТЬКІВЩИНУ
Аноним 04/05/17 Чтв 20:45:19 #455 №984872 
>>984850
ФПзадрот закукарекал, заместо процедуры.
Аноним 04/05/17 Чтв 21:58:39 #456 №984902 
21321.jpg
>>984772
>Слово переменная тебе объяснять нужно или сам значение знаешь?

Переменная - это абстрактная хуйня.
CPU не знает никаких переменных.

Абстрактной хуйней нельзя сделать несостоятельной состоятельную систему.
А следовательно и избавится от "побочных эффектов".

"Лекция" в приведенном видео - нелепа, и больше похожа на мотивирующие выступления сектантов вылезаторов.

В общем, есть мнение, что несостоятельные функции, и несостоятельный подход в программировании, несостоятелен.

О чем, кстати, говорится в выступлении с видео, мол
>мы хотим делать несостоятельно, но вот у нас тут есть состояния, и тут вот есть состояния, и от присваивания мы не избавились, но мы как бы будем считать что это несостоятельный код, потому что, а хуй, вот почему.

Про время которое все портит я вообще молчу, это пушка из пушек из пушек из пушек. Гипер фрактальная рекурсивная пушка.
Переформулировав,- нет IO нет проблемы.
Сумасшедшие.


Теперь понятно откуда ноги растут у доказательстве теорем через функциональщину.
Нет времени нет проблемы.
Ага.
И неважно что без времени любые расчеты бессмысленны.
И неважно, что в реальном мире на вход приходят какие угодно данные(и года угодно), которые никак обобщенно не формализировать.
И что с вычислительной системой может произойти все что угодно.


В общем это пиздец и сектанство.
Я проваливаю с этой планеты.
Аноним 04/05/17 Чтв 22:11:26 #457 №984910 
>>984902
Поддвачну мьсе
Аноним 04/05/17 Чтв 22:24:59 #458 №984911 
>>984902
>CPU не знает никаких переменных.
Вселеная не знает никаких CPU. Сложатся звезды - и стуннелируют электроны через квантовые барьеры, и всё - пизда рулю.
Аноним 04/05/17 Чтв 22:37:26 #459 №984916 
>>984911
>Вселеная не знает никаких CPU. Сложатся звезды - и стуннелируют электроны через квантовые барьеры, и всё - пизда рулю.
И такое происходит периодически.
Потому ECC память и изобрели. А еще обработку ошибок.
Аноним 04/05/17 Чтв 22:49:35 #460 №984926 
>>984916
Ты все врешь.
Аноним 04/05/17 Чтв 23:09:20 #461 №984931 
>>984902
Не стоит так расстраиваться: мнение данного оратора можно смело проворачивать на хую - его единственным актуальным занятием является продажа себя как говорящей головы и своих книжек. Если надо продать что-то ФП-манькам, он сделает соответствующую лекцию. Одно время он даже лисперам пытался что-то впарить, но его вроде как погнали.

Собственно, библиография красноречиво поясняет:

Designing Object-Oriented C++ Applications using the Booch Method. — Prentice-Hall, 1995. — ISBN 0-13-203837-4.
Agile Software Development: Principles, Patterns and Practices. — Pearson Education, 2002. — ISBN 0-13-597444-5.
Agile Principles, Patterns, And Practices in C#. — Prentice Hall, 2007. — ISBN 0-13-185725-8.
Clean Code: A Handbook of Agile Software Craftsmanship. — Prentice Hall PTR, 2008. — ISBN 0-13-235088-2.
The Clean Coder: A Code of Conduct for Professional Programmers. — Prentice Hall, 2011. — ISBN 0-13-708107-3.

Несколько раньше он точно так же двигал за ООП.
Аноним 04/05/17 Чтв 23:17:23 #462 №984933 
>>984916
что не гарантирует что ЕСС сработает ибо электроны в парити бите тоже стуннелировали.
Аноним 04/05/17 Чтв 23:42:05 #463 №984943 
>>984931
>Agile Principles, Patterns, And Practices in C#
Где-то на хабропараше читал, что в одной из своих книжек по шарпу он полностью игнорит тему делегатов/эвентов, а использует допотопные обсерверы в джава-стайле. Ну и в книге копипасты много из аналогичной книги про джаву. Такой-то халтурщик-наебщик, лол.
sageАноним 05/05/17 Птн 00:27:23 #464 №984958 
ебать тут байтослесаря разорвало на пол треда))
Аноним 05/05/17 Птн 10:09:29 #465 №985053 
>>984902
Ты ебанутый школьник-максималист, никто не говорит, что нужно избавиться от IO или от любой динамики. Это сравнение ФП с другими парадигмами в вакууме. И примеры там очевидно детские, потому что лекция 40 минут и для широкой аудитории.
>>984931
>его единственным актуальным занятием является продажа себя
И? Кодингом он занимался в два раза дольше, чем ты жил, и теперь захотел продать свои знания.
>двигал за ООП
Что это значит? Да, он дохуя объяснял принципы ООП-программирования, что, как, почему. Вот дал пару лекций по ФП. В чем суть твоего вскукарека? Программист должен придерживаться строго одной концепции и топить за нее, иначе он не разбирается в теме?

Ad hominem по всем пунктам.
Аноним 05/05/17 Птн 11:49:04 #466 №985077 
Не было печали, вспомнили про лямбды - и понеслась, понабежали мамкины функциоанальщики.
Аноним 05/05/17 Птн 11:56:41 #467 №985081 
>>985053
>примеры там детские
>лекция для широкой аудитории
>Ты школьник-максималист
Ну, ладно.

>Кодингом он занимался в два раза дольше, чем ты жил,
>Ad hominem по всем пунктам.
Ну, хорошо.
Аноним 05/05/17 Птн 11:59:45 #468 №985083 
>>985053
>И? Кодингом он занимался в два раза дольше, чем ты жил, и теперь захотел продать свои знания.
Не время приводит к опыту, а события.
Продавать там откровенно нечего.
Но, как говорится, без лоха, и жизнь плоха.

Скоро каждый грузчик начнет семинары проводить, о своем охуенном 30летнем опыте грузчика, вдохновлять школьников становится грузчиками, ага, лолд.
Аноним 05/05/17 Птн 12:10:26 #469 №985092 
>>985083
>Не время приводит к опыту, а события.
Бля ну я в ахуе, мне просто нечего сказать. Охуительные истории от 23-летнего тимлида.
Аноним 05/05/17 Птн 12:18:50 #470 №985098 
>>985092
>от 23-летнего тимлида.
Вообще-то 19 летнего.
И судя по всему жизнь я знаю куда лучше тебя.
Аноним 05/05/17 Птн 12:20:55 #471 №985102 
>>985092
>Бля ну я в ахуе, мне просто нечего сказать. Охуительные истории от 23-летнего тимлида.
Я таким не занимаюсь.
Но мой знакомый в 23 уже тимлидил понемногу.
Сейчас он ведущий специалист в области.

Но это к теме отношения не имеет.
Аноним 05/05/17 Птн 13:09:58 #472 №985145 
>>985053
>Кодингом он занимался в два раза дольше
Извини, но кодингом он как раз таки вообще не занимался, почти в начале своей карьеры (отработав 6 лет) съебнул на менеджмент и консалт.
Аноним 05/05/17 Птн 13:17:24 #473 №985155 
>>985145
>отработав 6 лет
Для нормального человека это много.
К дебилам уровня /зк, разумеется, не относится.
Аноним 05/05/17 Птн 14:22:58 #474 №985179 
так ты вроде все понял, а финальный вывод сделать ссыкотно?
Подозрения начинают закрадываться с самого начала - ебанутых примеров "правильного дизайна" во всех книгах - постоянные обещания хороших аналогий и метафор с прикладной областью и физическим миром (много аналогов синглтонов и абстрактных фабрик ты встречал в теории и практике финансов, документооборота или распознавании речи? то-то же.)
ООП - лажа, набор ебучих догматов построенных вокруг перфоманс хака 20-ти летней давности, а ты ждешь от набора догм внутренней непротиворечивости уровня зрелой целостной теории.

OOD, Буч, GOF, POOD, SOLID - это лажа все, братан.
Догматы, весьма открытые для интерпретации, "паттерны", "проектирование" -- ПИЗДЕЖ

Думал миллионы мух не могут ошибаться?
Не волнуйся - все просто - они не выбирают инструментарий... Еще раз - почти все программисты не выбирают инструментарий, его выбирают те кто программистов нанимает - занавес.
Ты думал Enterprise Patterns, единая платформа и вот это вот все продавались как технологическое решение? Хуй на.
Всем корпорациям единые стандарты и пул стандартизированных и сертифицированных дятлов для написания оперденей.
Фраза "правильное ООП" - маркер гандона, который считает, что те блоги которые он читает - самые охуенные, и возвышают его над окружающей чернью.
Посмотри на историю терок про OOD, GoF, TDD, BDD, SOLID - везде догматы, хуевые примитивные примеры и поливание говном несогласных. Цифр, исследований, предметной полемики с оппонентами - нет как таковых.
Сходи в футбик погоняй, не расстраивайся.
Аноним 05/05/17 Птн 15:01:02 #475 №985205 
>>985179
> "паттерны", "проектирование" -- ПИЗДЕЖ
>студентик считает себя самым умным и высрал целое полотно, оправдывая свой говнокод
Ты вообще хоть раз в жизни что-то сложнее лаба2 писал?
Аноним 05/05/17 Птн 15:15:46 #476 №985210 
>>985205
топи по тезисам или сливайся, и определение термина 'сложнее' сформулируй четенько, когда будешь перезадавать вопрос
Аноним 05/05/17 Птн 15:19:05 #477 №985213 
>>985210
За щеку тебе топил.
Аноним 05/05/17 Птн 15:50:04 #478 №985235 
>>985210
По каким тезисам, ебанутый? Сначала напиши проект на хотя бы 5к+ строк кода, не следуя никаким паттернам, а просто хуяря говнокод, потом будем слушать твое кукареканье, когда придется его поддерживать.

Паттерны - это определенные правила, которые люди придумали, исходя из накопленного опыта, чтобы не срать под ноги себе и другим программистам в команде. Но тут высирается студент, у которого опыт нинужон, паттерны нинужны, а любая организация кода - это заговор жидокомпаний. Ты меня троллишь тупостью или реально дебил уровня /зк?
Аноним 05/05/17 Птн 15:58:57 #479 №985244 
>>985235
Та утрись петух, у меня 9 15-75 KLOC проектов.
"Люди придумали исходя из опыта" уязвимо к интерпретации (людей-то нет тут, а кто из нас правильнее книжку понимает - большой вопрос), ну и про фальсификационизм погугли, чмо малолетнее. Плюс когда в команде работаешь - человеческий фактор вылазит. Ну и best practices мягко говоря эволюционировали и сегментировались за 15 лет нихуево.
Аноним 05/05/17 Птн 15:59:16 #480 №985245 
>>985235
>проект на хотя бы 5к+ строк кода
Один из проектов: вспомогательный - 1.5к, основной - 6к.
Ебал все патерны, принципы, и вообще всё и всех.
Но вам так лучше не делать.
 
И да, я не этот дебил >>985179 если что.
Аноним 05/05/17 Птн 16:04:52 #481 №985250 
>>985244
Это уже слишком толсто, попробуй что-нибудь кукарекнуть по делу.
>>985245
Никто и не спорит, что написать можно хоть 20к строк без всяких паттернов. Проблемы вылезают, когда нужно этот говнокод поддерживать, рефакторить и добавлять что-то новое. А если программу нельзя улучшать и изменять, то я не знаю, нахуя такая программа нужна любому бизнесу.
Аноним 05/05/17 Птн 16:08:31 #482 №985255 
>>985250
Ой блядь, ты ж даже не понимаешь что значит "по тезисам"
Аноним 05/05/17 Птн 16:11:09 #483 №985257 
>>985255
У тебя не было никаких тезисов, кроме одного "паттернов много, значит они все говно, я самый умный, остальные долбоебы".
Аноним 05/05/17 Птн 16:11:36 #484 №985258 
>>985250
>поддерживать
Мне бы твои сложности.
>рефакторить
С этим вообще никаких проблем никогда, люблю всё сломать нахуй и переделать лучше
>добавлять что-то новое
Тем более.
Аноним 05/05/17 Птн 16:23:10 #485 №985264 
>>985257
Для дебилов пронумерую:
1) Обещание метафоричности OOP/OOD для моделирования предметных областей - наебалово.
2) Наличие нескольких интерпретаций "хорошего объектного дизайна" сильно различающихся, блядь да изобретатель термина OOP в ахуе от того что этим термином называют.
3) Нефальсифицируемость постулатов школ OO
4) Преобладание апелляции к авторитету в дебатах по вопросам OOP

5) Плюс ты, мышонок забываешь, что технической составляющей во многих паттернах не так много - они выполняют важную коммуникационную роль - стандартный набор подходов и терминов в команде , для чего ясен хуй необходимо их схожее понимание между членами команды, ну или диктатура архитектора.

Одиночка и дизайн - это вообще другая вселенная.

В 2000-2005 тут у джавистов был первый архитектурный коллапс - когда на рынке зарплата и тайтл стали сильно зависеть от количества паттернов названных на собеседовании - тут же появилась прослойка мальчиков, которые их задрочили в количестве трех десятков и лепили куда ни попадя.
Аноним 05/05/17 Птн 16:29:57 #486 №985269 
^ Неосиляторы оправдываются.
Аноним 05/05/17 Птн 16:36:51 #487 №985278 
>>985264
Удваиваю сего оратора.

>>985255
>Ой блядь, ты ж даже не понимаешь что значит "по тезисам"
Тут 90% анонимусам 16 лет не исполнилось еще.
И 90% из этих 90% клинические дебилы, постсовок же.
Аноним 05/05/17 Птн 16:54:50 #488 №985290 
>>985264
>Обещание метафоричности OOP/OOD для моделирования предметных областей - наебалово.
Суть ООП не в охуительной метафоричности, суть ООП в >>980304
>Наличие нескольких интерпретаций "хорошего объектного дизайна"
И что? Почему тебя это смущает? У каждого подхода есть плюсы и минусы и каждый формировался в иной среде и в разное время. Нужно сравнивать конкретно, а пока это звучит как "многа подходов эта плоха!!! дайте меньше выбора!!"
>постулат
>нефальсифицируемость
Значение знаешь?
>Преобладание апелляции к авторитету в дебатах по вопросам OOP
Людям свойственно допускать логические ошибки в любом дебате, каким образом это должно быть связано с OOP?
>они выполняют важную коммуникационную роль
Одна из целей, но обычно она сама собой подразумевается и никогда не является главной.

>Одиночка и дизайн - это вообще другая вселенная.
До определенного момента, но рано или поздно отсутствие дизайна и выливающийся из него говнокод дают о себе знать.

>прослойка мальчиков, которые их задрочили в количестве трех десятков и лепили куда ни попадя.
Каким образом неправильное/необдуманное применение паттернов говорит об их хуевости или ненужности?
Аноним 05/05/17 Птн 17:37:23 #489 №985308 
Удивляюсь с убогости здешних ОО-хейтеров. Так упорно вайнить на то, в чем не разбираешься.

По сути, ООП - это три простых, логичных и необходимых принципа:
1. Инкапсуляция - когда ты вместо дрочева с полями структур грамотно выделяешь операции над каждым классом объектов, и используешь только их, гарантируя сохранение инвариантов класса и увеличивая реюз кода.
2. Полиморфизм - когда ты замечаешь, что для некоторых классов объектов можно выделить общие наборы операций и обрабатывать их единообразно. Тогда ты создаешь для них интерфейс и пишешь для этого интерфейса обобщенный код.
3. Наследование - когда ты выделяешь общие части кода для объектов, реализующих один интерфейс - чтобы не копипастить, или чтобы гарантировать соблюдение инвариантов, и делаешь базовый класс.

Если тупорылым функциональным кретинам это кажется ненужным и они больше любят копипасту лапши и вытаскивание наружу кишок класса без шансов что-то потом отрефакторить, то вряд ли имеет смысл что-то с ними обсуждать. Каждому адекватному человеку совершенно ясно, что описанное выше - единственный разумный способ разработки программ. Ну а сахарок в виде клож и алгебраиков совершенно спокойно добавляется поверх ООП.
Аноним 05/05/17 Птн 17:37:53 #490 №985310 
>>985290
Твоя попытка ответа - неплохая иллюстрация к озвученным замечаниям. Дать каноническое определение ты - несмогла, а упомянутая цитата заканчивается признанием практической несостоятельности подхода. Выделение и перенос (метафора, сучка) объектов из предметной области - первый шаг OOA.
>> И что? Почему тебя это смущает?
Проблема идентичности дорогуша, cобственно выходит что никакого OOP нет - и если тебе нравится какая-то школа, то ты и выдвигай тезис, мол есть такие-то люди - я их мнение уважаю. А то не ясно за какой OOP базар (и так, все время, блядь - родовое проклятие).

Это, кстати, похоже на терминологический софизм - обогащай вокабуляр.
> Людям свойственно допускать логические ошибки в любом дебате, каким образом это должно быть связано с OOP?
Ну - в рамках дебатов - это показывает интеллектуальную несостоятельность одной из сторон - я ща примеры приведу:
>Значение знаешь?
Это уход от вопроса,и переход на личности.

>Одна из целей, но обычно она сама собой подразумевается и никогда не является главной
Это отрицание без контр-тезиса. (Бля, cерьезно?)

>До определенного момента, но рано или поздно отсутствие дизайна и выливающийся из него говнокод дают о себе знать.
Это - подмена тезиса:
Программы дизайнили до OOA/OOD/OOP, SOLID и будут дизайнить после.

> Каким образом неправильное/необдуманное применение паттернов говорит об их хуевости или ненужности

Эээ, как каким - через приведение примера практической несостоятельности.

Смысл в методологии которая обещая эффективность и прочие плюшки дает говно на выходе? Ну и с моей точки зрения это ожидаемо учитывая отсутствие единой четкой формулировки, открытость к интерпритации.
sageАноним 05/05/17 Птн 17:48:10 #491 №985319 
>>985310

>Говнокодили до OOA/OOD/OOP, SOLID и будут говнокодить после.
Кто б сомневался.

>неправильное/необдуманное применение
>через приведение примера практической несостоятельности
Осталось пример привести.

>Смысл в методологии которая обещая эффективность и прочие плюшки дает говно на выходе?
Спроси у ФП-фанатиков. Они должны знать.

>интерпритации
иди домашку по русскому делай.

другой анон
Аноним 05/05/17 Птн 17:50:17 #492 №985324 
[iИнтерпритировал[/i] вам за щеку.
Аноним 05/05/17 Птн 17:51:08 #493 №985325 
>>985308
Но как определить - действительно ли ты ООП-бро, или просто гад, зазубривший Три Святые Тайны ООП,и втирающийся к нам в доверие?
Аноним 05/05/17 Птн 17:52:23 #494 №985326 
>>985310
Ты - типичный софист, который собственных логических ошибок не замечает, но в остальных их детектит на каждом шагу, в большинстве случаев притягивая за уши.
Аноним 05/05/17 Птн 17:54:37 #495 №985327 
>>985325

Когда захочешь писать %(рефакторить код в)% классы по одному методу - значит ООПизация мозга практически завершена.
sageАноним 05/05/17 Птн 17:54:38 #496 №985328 
>>985325
>Каждому адекватному человеку совершенно ясно, что описанное выше - единственный разумный способ разработки программ
>зазубривший Три Святые Тайны ООП
Зачем мне втираться в доверие к функциональным макакам?
Аноним 05/05/17 Птн 17:56:06 #497 №985329 
Дорогуши, вы у меня не единственные: на сегодня - все - идите подмывайтесь
sageАноним 05/05/17 Птн 17:59:18 #498 №985333 
>>985329
Ух ты, шизик.
Аноним 05/05/17 Птн 18:03:06 #499 №985337 
>>985327
У нас так - так мы и поняли, что приемлемый примитив - метод/функция, и мы на пути к ФП, хоть сами не понимали.
sageАноним 05/05/17 Птн 18:20:05 #500 №985346 
>>985337
>Классы с 1 методом
cool story
Аноним 05/05/17 Птн 19:33:29 #501 №985374 
>>979641 (OP)
суть ооп - уйти из плоскости логики машины в плоскость моделей реальных обьектов. все остальное - лишь реализации
Аноним 05/05/17 Птн 21:24:27 #502 №985471 
>>985374
Реальный абстрактный фактори бин прокси синглтонов.
Аноним 05/05/17 Птн 21:32:52 #503 №985480 
>>985179
>OOD, Буч, GOF, POOD, SOLID - это лажа все, братан.
>Догматы, весьма открытые для интерпретации, "паттерны", "проектирование" -- ПИЗДЕЖ
Бааа, еще один познал ИСТИНУ. Собственно, такие слова выдают того кто хочет волшебную таблетку от всего, хотя никто никогда и не задумывал ООП как оную. И если ты реально задрачивал всю хуйню что перечислил и вообще ничего не нашел полезного в этом - ну не знаю, проблемы в тебе наверное, т.к. все это просто способы удобней организовать свой говнокод. Т.е. даже простой пример с абстрактной фабрикой - на самом деле хорошая штука, только всякие долбоебы плюются и подрываются. Ну или тот же СОЛИД - да бля, не вижу особых проблем в том что бы хуярить классы с одним методов и конструктором, т.к. это легко может затянуть на 30-50 строчек кода, и когда этот класс логически составляют одну сущность/сервис так тупо удобнее поддерживать эту писанину. Ну, не исключаю что такие хейтерки работают в уёбищных галерах где погонщики сами особо не вдупляют что к чему и пихают все это в проекты потому что ТАК НАДО, более чем реальная картина.
Аноним 05/05/17 Птн 21:50:50 #504 №985499 
>>985480
> все это просто способы удобней организовать свой говнокод.
Лол, это 'просто' способы организовывать код, а то что он будет удобнее - не факт.
> пример с абстрактной фабрикой - на самом деле хорошая штука
Больной уебок

Аноним 05/05/17 Птн 21:53:29 #505 №985502 
>>985499
>а то что он будет удобнее - не факт.
Не факт что у тебя вообще получится что-то дальше чем "laba2", но тем не менее.
>Больной уебок
Лол. Тут как бы стоит заметить, что до фактори любой нормальный погромизд сам своими умозаключениями доходит даже не зная понятия проетирование, а если ты не можешь понять зачем нужна абстракция над ней - ты просто не дорос, в общем.
Аноним 05/05/17 Птн 23:01:47 #506 №985547 
lol+i+dunno+just+got+shot009a053522929.jpg
>>985290
>Суть ООП не в охуительной метафоричности

На самом деле он отчасти тоже прав. В мире существует как бы джва ООП, друг с другом не связанных: одно - это как его втюхивают менеджерам и как его понимают шкальники всех сортов (абстракции как в реальном мире, автоматическое решение всех проблем разработки и поддержки, хуяк-хуяк объединили данные с методами и в продакшен), и другое - как с ним работают профессиональные разработчики.

Фундаментальная ошибка первой группы товарищей - это святая вера в то, что набор неких практик заменит им мозг или хотя бы сильно ограничит необходимость его напрягать. Неудивительно, что их постигает жестокое разочарование, как, видимо, и твоего оппонента. Для профессионалов же ООП - всего лишь набор подходов, облегчающий при умелом использовании написание хороших программ. Таким образом, отмежевавшись от первой группы товарищей, тот анон поступил правильно.

Он также прав в том, что в паттернах как таковых смысла довольно мало. Они важны скорее для анализа подхода к решению типовых задач, чем для прямого применения; тем не менее, в реальности мы видим миллионы поехавших, пытающихся натягивать эти несчастные паттерны на самые невероятные части тела своих программ. Я регулярно слышу, как словосочетание "применять паттерны" употребляют в смысле улучшения кода; то есть, по их мнению, код без паттернов - говно, а с паттернами он сразу становится лучше. Эти люди совершенно не поняли идею, и именно от них чаще всего приходится слышать, что она не работает.

И вот здесь вот он еще очень сильно прав:
>>985310
>Программы дизайнили до OOA/OOD/OOP, SOLID и будут дизайнить после.

Главное и основное - это дизайн как таковой. Конкретная методология (ООП, ФП и т.д.) вторична. Даже в этом итт треде часто звучит: вот, если ты не придерживаешься ООП, то твоя программа - говно. Несмотря на то, что чаще всего это утверждение верно, необходимо понимать, что дело тут вовсе не в ООП.

мимо автор процитированного тобой поста
Аноним 06/05/17 Суб 00:20:51 #507 №985570 
>>985547
>то дело тут вовсе не в ООП

Как раз таки в нем. ООП и ФП это два способа размазывать говно по проекту, написанное в лучшем случае процедурно. ООП требует меньшего от программиста, а следовательно оно лучше. ФП требует сильно много дохуя, чтобы начать извлекать профиты самого ФП - следовательно стоит использовать исключительно под ответственность того кто пишет. Говнокод будет в обоих случаях, разнится только вероятность того что он обернется в итоге продуктом.
Аноним 06/05/17 Суб 01:03:14 #508 №985573 
>>985547
пацаны, катитесь к хуям с этой лажей про 'правильное использование', 'в умелых руках' и вот это вот все - я прекрасно помню как стада таких профи аплодировали Бучу, молча наблюдая как EJB доросло до второй версии (с 5 java файлами на сущность, сука) - это был отраслевой стандарт, и толпы сертифицированных блядей с умелыми руками его прославляли, и если бы опенсорц фрики не провернули бы все это движение на своем мощном фаллосе PORO движения, то щаз было бы 7 java файлов и 4 XML на сущность, а сертифицированные профи бляди с умелыми руками все так же аплодировали бы.
Курс движа OOP/OOD/OOA менялся и расщеплялся несколько раз, и по ходу движения обсирались все - Sun, Oracle, ASF.
Девочкам будете встегивать про то, что OOP - это что-то конкретное и сформулированное, и про то как абстрактные фабрики переливаются в ваших умелых руках, я вашего брата наблюдал 20 лет - и уже после 2005 стало окончательно понятно, что король голый, и проблем с OOP/OOD/OOA больше чем решений - собственно приблизительно тогда и начался расцвет языкового разнообразия, продолжающийся до сих пор.
Аноним 06/05/17 Суб 01:41:15 #509 №985590 
gondonvkurtke.jpg
>>985573
Лучший псто треда, я так не ржал с самого начала. Видать, и впрямь наболело, лол.

Я джява-мир наблюдаю лишь опосредованно, и каждый день наблюдений лишь подтверждает высказанный мною вот здесь >>980827
>Джява - это язык, созданный с целью получения максимально сложных систем силами большого числа минимально компетентных сотрудников.
Так вот, на работе я ежедневно наблюдаю кодлу ведроидных котлинистов, которые время от времени советуются со мной по ряду вопросов. Всё то, от чего их милостиво предохраняла добрая джява, послано к хуям. Это, блять, праздник непослушания, а не программирование. Мне стоило серьезных усилий довести до понимания ихнего тимлида, что эти их ебучие инфиксные функции, применяемые без четкого понимания их ограничений - это не то что дорога в ад, это он самый и есть, здесь и сейчас. Причем дошло это до него только тогда, когда он наткнулся яйцами на остутствие приоритетов наколхоженных "операторов"; до этого у него ехало удобство через лаконичность, блять.

Под "правильным использованием" и "умелыми руками" я понимаю именно исконный смысл этих понятий, а не то, что с ними сотворила джява при попустительстве отцов-основателей.

Надо же, довели до бамплимита, сучечки.
Аноним 06/05/17 Суб 01:44:03 #510 №985591 
>>985573
Как боженька пояснил.
Аноним 06/05/17 Суб 01:46:16 #511 №985592 
Внимательно прочитал тред, понял что лучше чем ООП ничего нет. Можете закрывать.
Аноним 06/05/17 Суб 01:49:01 #512 №985594 
>>985573
Внезапно из твоего поста понял следующее: в треде есть две категории людей - те, кто софт еще не писали но очень хотят (или так думают) и медленно но верно обмазываются зависимыми типами и прочими практиками. Те, кого этот цирк с конями уже заебал и они хуесосят все и вся, частично обоснованно. Третьей категории нет - она, собственно, натужно тянет свои галеры прямо здесь и сейчас ночью субботы исправляя очередной прокси фактори бин. Такие дела.
Аноним 06/05/17 Суб 01:53:32 #513 №985595 
bact-to-the-future.jpg
>>985594
>прямо здесь и сейчас ночью субботы
Аноним 06/05/17 Суб 01:54:27 #514 №985596 
Деда мороза несуществует, бтв.
Аноним 06/05/17 Суб 01:54:43 #515 №985597 
>>985595
Сейчас ночь и сейчас суббота. Что тебе не так?
Аноним 06/05/17 Суб 01:57:55 #516 №985598 
14206975723630.jpg
>>985597
Сейчас утро субботы, утиный типизатор ты мамкин.
Аноним 06/05/17 Суб 02:01:27 #517 №985599 
>>985598

На картинке не ту надпись шпонькнул, должно быть что-то кодика обросшего нехорошей зависимостью.
Аноним 06/05/17 Суб 02:05:40 #518 №985600 
>>985598
Каким хуем два часа ночи - это утро?
Аноним 06/05/17 Суб 02:10:23 #519 №985601 
zdravstvujte-ya-vasha-tetya.jpg
>>985600
>Каким хуем два часа ночи - это утро?
Таким, что ночь субботы бывает после дня субботы, но никак не раньше.
Аноним 06/05/17 Суб 02:11:37 #520 №985602 
>>985601
После дня субботы бывает вечер субботы. Т.е. сейчас по твоему 2 часа утра, а три часа назад было 11 часов ночи? Я правильно понял твои монады?
Аноним 06/05/17 Суб 02:14:02 #521 №985603 
У кого небыло бумажного календаря, тот не умеет из сегодня перемещаться в послезавтра =/
Аноним 06/05/17 Суб 02:15:24 #522 №985604 
14420821640570.jpg
>>985602
>Я правильно понял твои монады?
Полиморфировал в голос.
Аноним 06/05/17 Суб 02:19:45 #523 №985607 
>>985594
> сейчас ночью субботы

а вы не думали, может этот анон говорил про абстрактное сейчас?
Аноним 06/05/17 Суб 02:21:29 #524 №985608 
>>985607
>>985601
Хорошо, вот вам на двоих задачка. Вася говорит Маше: чет хуево мне сегодня ночью спалось. О каком времени говорит Вася?

Отвечать надо так, как если бы вы хотели что бы вам обязательно перезвонили.
Аноним 06/05/17 Суб 02:25:54 #525 №985610 
>>985608
> если бы вы хотели что бы вам обязательно перезвонили.
Чот в голос
Аноним 06/05/17 Суб 02:33:43 #526 №985612 
>>985608

Вася - космонавт и в своем настоящем он говорит о будущем для Маши.

Когда до неё дойдет сообщение, то для обоих - будет прошлое, причем для Марии более удаленное относительно момента отправки сообщения Василия.

И да, Васе нужно принимать таблетки перед разгоном - они улушают сон и пищеварение.
Аноним 06/05/17 Суб 09:17:40 #527 №985660 
Развели блять. Ночь субботы длится с 00:00 до 23:59 субботы.
Аноним 06/05/17 Суб 10:59:03 #528 №985698 
>>985660
Двачую этого адеквата - все спать, навеки вечные. Или только у субботы ночь длится 24 часа?
Аноним 06/05/17 Суб 17:04:13 #529 №985882 
MacApp1.png
MacApp2.png
>>985179
>ООП - лажа, набор ебучих догматов построенных вокруг перфоманс хака 20-ти летней давности, а ты ждешь от набора догм внутренней непротиворечивости уровня зрелой целостной теории.
И кое-кто из здесь присутствующих даже помнит, как это было.
Аноним 06/05/17 Суб 17:13:59 #530 №985885 
>>985319
>>Говнокодили до OOA/OOD/OOP, SOLID и будут говнокодить после.
>Кто б сомневался.
ВРЁТИ.
На обыкновенных пространствах имён делали, с очередью сообщений в единственном потоке. Погугли «C Interfaces and Implementations», хотя это прошлый век сейчас.
Аноним 06/05/17 Суб 20:11:35 #531 №985975 
>>985885
Что еще раз подтверждает тезис о том, что если ты говнокодер сам по себе то никакая парадигма не сделает твой код менее говнистым от одного факта ее применения. Другое дело, что ООП зачастую это последний шанс выпрямить руки юному дарованию.
Аноним 07/05/17 Вск 00:23:50 #532 №986150 
Перекот.
>>986149 (OP)
>>986149 (OP)
>>986149 (OP)
>>986149 (OP)
>>986149 (OP)
>>986149 (OP)
Перекот.
Аноним 13/05/17 Суб 03:00:22 #533 №989814 
>>980020
Блестяще.
Аноним 14/05/17 Вск 12:35:14 #534 №990343 
>>981107
В SICPе эту концепцию называли "чёрный ящик" и применяли в рамках ЛИСП-а, который, как вы все знаете, функциональный язык.
Я ньюфаг, но как это понимаю-то, братишки: все эти парадигмы-хуигмы это просто концепция, методология, если хотите. Возможность использования конкретной методологии выражается в инструментарии языка. Очень грубо говоря: если язык поддерживает возможность писать функции, это УЖЕ значит, что можно кодить в "функциональном" стиле. Вопрос в количестве инструментов.
А ещё я не понимаю, почему ООП это такое волшебство? Есть же концепция модульности, например, которая в ООП называется ИНКАПСУЛЯЦИЯ. Винегрет какой-то, бля, для опущей.
comments powered by Disqus

Отзывы и предложения