Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


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

Тред закрыт.


Check this out!


<<
[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 495 | 31 | 96

Светоча ООП тред II Аноним 04/02/18 Вск 06:46:11  1131879   Обсуждение закрыто  
ebalo.jpeg (16Кб, 400x400)
uselessobjects.jpeg (47Кб, 600x900)
oop.jpeg (34Кб, 600x732)
Бложик его, что мудростью полон:
http://www.yegor256.com/

GitHub его, с кодом что эталоном ООП является:
https://github.com/yegor256

Голос его, что жавомакак с хачкелистами дрожать заставляет:
https://youtu.be/GMrjuuczZkQред предыдущий:

Да будет его шизофрения струиться по ноосфере нашей,
поджигая гузки да споры праведные распространяя.
Аминь.

Тред предыдущий:
https://2ch.hk/pr/res/1084449.html
Аноним 04/02/18 Вск 07:18:44  1131881
>>1131879 (OP)
Проигрываю с его гитхаба. 76(!!!) репозиториев, и все сплошной булшит вроде:

>True Object-Oriented Java Web Framework
>XML Formatting Static Validator
>Object-Oriented Java primitives, as an alternative to Google Guava and Apache Commons
>Requirements Specifications Automated
>PhantomJS Java DOM Builder
>Jekyll plugin with simple and nice tools for better blogging
Аноним 04/02/18 Вск 11:29:11  1131936
EJoxlkaa.jpg (17Кб, 385x400)
>>1131879 (OP)
https://github.com/yegor256/cactoos
>To write a text into a file:
>new LengthOf(new TeeInput("Hello, world!", new File("/code/a.txt"))).intValue();
Аноним 04/02/18 Вск 11:34:56  1131938
>>1131881
>>1131936
Зато он успешный разработчик
>We are not fully ready yet. Please, come back in January 2017 February 2018.
и инвестор
>As an investor at SeedRamp.com, I've made a few investments, but I've got no results yet :)
Аноним 04/02/18 Вск 12:06:06  1131949
https://www.youtube.com/watch?v=RdE-d_EhzmA
https://www.youtube.com/watch?v=DOyNfmqwR98

Еще светочей ООП вам принес.
Пухлик это автор книжки object thinking.
Аноним 04/02/18 Вск 12:38:47  1131964
>>1131881
Ты еще в его русскую версию бложика загляни
http://ru.yegor256.com/
Аноним 04/02/18 Вск 12:47:43  1131974
>>1131964
>Егор Бугаенко о политике
лучше не надо
Аноним 04/02/18 Вск 13:58:47  1132025
>>1131974
Нормальный же чел, траллет пидоранов и какелов
Аноним 04/02/18 Вск 19:43:45  1132242
> Software development and coding are two different things.
И сразу сажи этому претенциозному говнарю
Аноним 05/02/18 Пнд 11:38:44  1132719
>>1132242
писарь порвалася. иди пиши программы разработанные программистами.
Аноним 05/02/18 Пнд 12:10:06  1132736
index (2).png (4Кб, 212x238)
Аннотации плохо, но чем можно заменить аннотации?
Например, аннотации используются для сериализации. Не писать же все время вручную сериализацию для каждого класса
Аноним 05/02/18 Пнд 12:41:12  1132757
>>1132736
Аннотации для простой логики (сериализация/десериализация, простая кодогенерация) - норм, а остальное можно заменить с помощью фп.
Аноним 05/02/18 Пнд 13:42:47  1132800
>>1132736
Аннотации - костыль для языков, которые не могут в нормальное метапрограммирование. Соответственно, если у тебя язык by design говнишко, то ничем особо их не заменишь - костыли же не от балды костылят, а от практической нужды.
Аноним 05/02/18 Пнд 14:55:14  1132873
>>1132757
Как бы ты сделал сериализацию без аннотаций?
Как в C++ делают без аннотаций?
Аноним 05/02/18 Пнд 15:05:57  1132878
>>1132873
>Как бы ты сделал сериализацию без аннотаций?
>Как в C++ делают без аннотаций?

UCLASS()
class AMyActor : public AActor
{
GENERATED_BODY()

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage")
int32 TotalDamage;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Damage")
float DamageTimeInSeconds;

UPROPERTY(BlueprintReadOnly, VisibleAnywhere, Transient, Category="Damage")
float DamagePerSecond;
...
}
Аноним 05/02/18 Пнд 15:28:38  1132891
>>1132878
>без аннотаций
Но UPROPERTY это аннотации которые парсятся собственным движком
Аноним 05/02/18 Пнд 16:02:12  1132910
Главная идея ООП (принимаемая в том числе долбоебом с ОП пика) в том чтобы расписать различные виды объектов и чтобы эти объекты создавали другие объекты и как бы плавали в свободном супе объектов или вели себя как клетки живого организма. Потом мы высекаем искру жизни командой старт и все это добро начинает делать то что мы от него хотим. Короче ЭТА ИДЕЯ В КОРНЕ НЕ ВЕРНА. Подход более-менее работает в природе если мы хотим подождать миллиарды лет для эволюции и миллиарды миллиардов вариаций проб и ошибок. Но вообще то при разработке мы хотим заниматься intelligent design'ом и для этого нам нужны соответствующие инструменты для построения и интроспекции, а подход ООП к ним совсем не относится.
Аноним 05/02/18 Пнд 18:05:22  1133004
>>1132910
Предлагаю все-таки разделять Ъ-ООП (тот, который про асинхронность, динамичность и примитивы) и кресты-жаба-хуй-пизда-в-говне-ооп, который про индусов, слесарей и гуманитарщину. Второй корректнее называть "ГОП" (govno-oriented programming).
Аноним 05/02/18 Пнд 19:05:38  1133043
>>1133004
Это относится к обоим. ГОП даже получше будет т.к. дает не-Ъ обходные пути чтобы создавать хоть что нибудь работоспособное.
Аноним 05/02/18 Пнд 21:00:14  1133125
>>1133004
java хороший язык (синтаксис, стандартная библиотека конечно ужасная), но ей не хватает дисциплины.
почему так хорош фп - потому что в нем нет оператора присваивания, и этомпринуждает программистов к определенной дисциплине.
если убрать из java все о чем говорит бугаенко в своем видео, то java несомненно будет лучше
Аноним 05/02/18 Пнд 21:02:50  1133126
>>1133125
то есть грубо говоря в фп меньше шансов написать плохой код, и эта дисциплина, сейфовость языка может быть кому-то приятна.
в java много лишнего, и люди без опыта просто теряются и совершают ошибки, а винят язык
Аноним 06/02/18 Втр 09:31:30  1133321
>>1132873
Тык я написал же, что для сериализации - норм, для простой логики - норм (типа валидации), а когда их начинают пихать во что-то мало-мальски непростое, то начинается ад и Израиль.
Аноним 06/02/18 Втр 14:28:17  1133458
По сути аннотации это инструменты кодогенерации. Взять тот-же protobuf, например. Он ничем не отличается от аннотаций, только нужно явно генерировать код. Аннотации просто удобнее, не нужно создавать отдельные файлы.
Аноним 10/02/18 Суб 17:08:16  1135998
Хотелось бы обсудить read only vs immutable объекты.
Может нам на самом деле нужны read only, а не immutable объекты?
read only объект, это такой объект, интерфейс которого не содержит членов для изменения состояния объекта, но состояние этого объекта может быть безопасно изменено в другом месте, например, в объекте, который инапсулирует этот объект.
Что вы думаете по этому поводу?
Аноним 10/02/18 Суб 17:33:00  1136013
>>1135998

Поздравляю, ты придумал паттерн delegation велосипед.
Аноним 10/02/18 Суб 18:17:09  1136044
>>1136013
Нет, это другое. Это разделение чтение и записи данных на 2 объекта
Аноним 10/02/18 Суб 19:37:00  1136108
>>1135998
Ты не понимаешь, зачем нужна иммутабельность.
Аноним 10/02/18 Суб 19:56:13  1136118
>>1136108
Зачем?
Аноним 10/02/18 Суб 19:58:08  1136120
>>1136118
Занадом.
Аноним 10/02/18 Суб 20:14:25  1136128
>>1136120
>пук
read only object и immutable имеют одни и те же достоинства
Аноним 10/02/18 Суб 22:03:53  1136229
>>1136044
> Это разделение чтение и записи данных на 2 объекта

Так ты хочешь два раза делегировать и иметь три объекта на сущность? Гавно какое-то.
Аноним 10/02/18 Суб 22:31:04  1136251
>>1136229
Так вообще-то много где делают.
Я просто хочу спросить зачем нужны immutable объекты, если можно использовать read only объекты.
В чем разница.
Аноним 10/02/18 Суб 22:33:15  1136255
>>1136251
Занадом.
Аноним 10/02/18 Суб 23:41:36  1136307
>>1136251

Разница такая же, как между кошкой и лампочкой. Зачем нужны лампочки, если есть кошки?
Аноним 10/02/18 Суб 23:45:36  1136310
>>1136307
Вот именно.
Не нужны.
Аноним 11/02/18 Вск 00:08:58  1136325
>>1136307
ну так объясни эту разницу, чтобы я понял. для этого я и спрашиваю
Аноним 11/02/18 Вск 00:42:52  1136346
>>1135998
Иммутабельность нужна, чтобы со стейтом не ебаться. Ридонли обжекты - обжекты, которые потенциально могут изменяться другими обжектами, то есть потенциальная ебля со стейтом. Нахуя это надо, если можно просто не ебаться со стейтом?
Аноним 11/02/18 Вск 01:31:45  1136372
Что творится в этом треде?
Что там с ООП то можно обсуждать? Берешь ебана делаешь абстрактный интерфейс класса, сам класс, класс по работе с интансами этого предыдущего класса называешь ' FooBarManager' или там 'FooBarMediator' и хуяришь там методы. Чего там еще мусолить то?
Код написанный хуевым программистом будет хуевым, хорошим программистом - хорошим, а все литие воды про какие то принципы ооп, какое то мусоленье практик - какой то идиотский поиск сверхценных идей.
Еще и иммутабельность тут обсуждают, кек. Ну пердолься с иммутабельностью если хочешь пока у тебя коллекции маленькие, а в работе с большими коллекциями какая к чертям иммутабельность, тимлид за проеб производительности к стенке поставит и в очко напинает.
Аноним 11/02/18 Вск 01:53:41  1136377
>>1136346
Потому что в конечном счеты ты так или иначе ебешься со стейтом. Сколько бы ты не делал вид, что его у тебя нет.
Аноним 11/02/18 Вск 02:25:27  1136397
>>1136377
Нет, ты просто работаешь с данными. Но для этого у тебя должна быть саунд концепция айдентити и стейта, чего ООП-языки лишены.
Аноним 11/02/18 Вск 02:26:19  1136398
>>1136372
Иммутабельные коллекции позволяют удобно работать с бесконечными коллекциями, например. Все еще слишком маленькие?
Аноним 11/02/18 Вск 03:11:51  1136408
>>1136398
но ведь не позволяют
охуенно ты придумал копировать бесконечную коллекцию при вставке элемента в ее конец, прям нобелевскую премию в программировании учередят и тебе дадут.
Аноним 11/02/18 Вск 06:10:05  1136419
>>1136408
>копировать бесконечную коллекцию при вставке элемента в ее конец
Ты не очень умный, да?
Аноним 11/02/18 Вск 06:18:33  1136421
>>1136419

Конкатенация иммутабельных стринг, так-то оче медленная операция. Догадаешься почему?
Аноним 11/02/18 Вск 07:26:16  1136430
>>1136377
Доказывай.
Аноним 11/02/18 Вск 11:43:33  1136478
>>1136421
>Догадаешься почему?
Потому что реализована обычными дебилами вроде тебя
Очевидно же.
Аноним 11/02/18 Вск 13:42:09  1136512
>>1136478
>Очевидно же.

В какой-то другой реальности, если только.
Аноним 11/02/18 Вск 14:58:43  1136593
>>1136421
>Догадаешься почему?
Я не догадался. Почему?
Аноним 11/02/18 Вск 15:02:35  1136599
>>1136346
>чтобы со стейтом не ебаться.
Что плохого в самом по себе ебли со стейтом? Ты так говоришь, как будто стейт - это причина зла в программах.
Проблема сайдов эффектов не в том, что они есть. Проблема в семантически неявных сайд эффекты и неопределенном поведении.

Например, есть класс
Rabothik {
public int zarplata;
}

zarplata может быть изменена где угодно, хотя это не ожидается, потому что семантически зарплату должен выдавать работодатель. И из-за этого может сломаться какой-то код.
Аноним 11/02/18 Вск 15:04:02  1136601
>>1136593
Потому что.
Аноним 11/02/18 Вск 15:07:53  1136605
>>1136601
А ну теперь понятно.
Аноним 11/02/18 Вск 15:08:43  1136606
>>1136599
Или например такой класс
class Gradusnik {
public int getTemperatura();
}

Температура может измениться, но ее никто не может изменить через интерфейс градусника. Этот код безопасный и ничем не отличается от иммутабельного класса.
Аноним 11/02/18 Вск 15:21:45  1136619
>>1136593

https://en.wikipedia.org/wiki/String_(computer_science)#String_buffers



Аноним 11/02/18 Вск 15:44:55  1136642
>>1136419
А ты?
Ты вообще знаешь что твоя иммутабельность означает?
Как раз таки и означает, что если иммутабельную коллекцию надо скопировать в другую иммутабельную коллекцию, если надо ее все таки изменить, потому что, сюрприз, коллекци надо изменять.
Аноним 11/02/18 Вск 16:10:48  1136660
>>1136619
Не понял, что там с конкатенацией. Но если там так всё с этим плохо, может, так не делать?
Аноним 11/02/18 Вск 16:19:21  1136665
>>1136660
Конечно, можно сделать new ConcatenatedString(string a, string b) в котором динамически копировать строки. И все.
Зачем выделять сразу целый буфер
Аноним 11/02/18 Вск 17:29:46  1136733
поясните чо за тупой форс унылого говна?
Аноним 11/02/18 Вск 17:38:40  1136737
>>1136733
Неосилятор порвался.
Это ООП дисциплина, если следовать которой, то можно улучшить качество кода на порядки.
Аноним 11/02/18 Вск 17:55:38  1136742
>>1136660
> Не понял, что там с конкатенацией.

Ты какой-то туговатый; уместное использование мутабельных объектов дает выигрыш в производительности.

>Но если там так всё с этим плохо, может, так не делать?

Ну почему же не стоит? В других кейсах иммутабельные стринги быстрее мутабельных, а в третьих - на производительность строго похуй.
Аноним 11/02/18 Вск 18:07:12  1136754
>>1136737
какие порядки, какая дисциплина, что ты несешь?
Хуевые программисты пишут хуевый код, хорошие - хороший, и никакие тру-ооп методики тут не спасут.
Аноним 11/02/18 Вск 18:13:54  1136760
Samurai-and-kat[...].jpg (16Кб, 239x300)
>>1136754
>хороший делает хорошо, а плохой плохо.
спасибо, но мы это и без тебя знаем.
чтобы стать хорошим и не быть плохим, нужно следовать определенному пути, дисциплине.
можно научиться самому, а можно следовать за учителем.
Аноним 11/02/18 Вск 18:27:47  1136767
>>1136737
Как ооп дисциплина и всратый даун с первого оппика связаны?
Аноним 11/02/18 Вск 18:29:15  1136768
>>1136421
https://en.wikipedia.org/wiki/Rope_(data_structure)
Аноним 11/02/18 Вск 18:33:02  1136770
>>1136767
это наш учитель. он нас учит ООП дисциплине.
ты что-то имеешь против? может, у тебя есть аргументы против его учения? так поделись ими с нами.
Аноним 11/02/18 Вск 18:56:49  1136795
>>1136770
ну вас нахуй сектанты ебаные.
Аноним 11/02/18 Вск 19:08:09  1136802
>>1136795
у меня сначала была такая же защитная реакция.
советую тебе вдумчиво почитать его блог прежде чем бросатьс такими громкими заявлениями.
Аноним 11/02/18 Вск 19:20:45  1136822
>>1136802
йэгор залогинься, ты заебал себя форсить.
Аноним 11/02/18 Вск 19:25:01  1136828
>>1136768

tl;dr что за говно ты принес, и какое отношение это имеет к иммутабельности?
Аноним 11/02/18 Вск 20:16:06  1136891
>>1136828
Нет шансов вылечить вас. Вы уёбок от природы.
Аноним 11/02/18 Вск 20:29:07  1136907
>>1136760
люди у которых плохо с логикой и плохо с ответственностью за свой код (а ля "и так сойдет")
зашкварят любую практику и самодисциплинироваться не смогут. Можно таких согнать в опенспейс и обложить надсмотрщиками, которые будут бить палками по пальцам за несоблюдение код стайла, это поможет да. Но вот хорошие программисты, которые любят свой код, в таких условиях не выдержат и уволятся, а в проекте останется куча выдрессированных мартых, которые все зафейлят, если столкнутся с хоть сколько-нибудь нестандартной проблемой.
Проблема как всегда в людях, а не мутабельностях или неправильно выбранном паттерне.
Аноним 11/02/18 Вск 20:50:41  1136923
Обучите его кто-нибудь php, а то из-за проблем в ООП реализации джавы уже полную хуйню городит. В статье http://www.yegor256.com/2016/12/20/can-objects-be-friends.html Пишет, что наследование класса в java не дает доступа к private атрибутам. Он предлагает решить проблему допусыванием слова Trust ChildClass в декларацию родителя. Эта хуйня в пхп давено реализована получше. Есть три типа атрибутов класса
private - доступен только сущности
protected - доступен и сущности и потомкам
public - доступен всем.

Аноним 11/02/18 Вск 20:51:50  1136924
>>1136923
Так ведь в джаве тоже есть протектед.
Аноним 11/02/18 Вск 20:53:35  1136925
>>1136924
Я не знал, но он тоже не знает? Иначе, зачем огород городит?
Аноним 11/02/18 Вск 21:02:16  1136937
>>1136925
>Я не знал
Ну тогда узнай, что все, что реализуется в PHP тащится из других языков. И сейчас PHP именно подгоняется под джаву. В PHP нет никаких концепций родных для него или выдуманных в нем.
Аноним 11/02/18 Вск 21:03:42  1136940
>>1136937
Только ни один язык не добился успеха php в вебе. Недостаточно заимствовали?
Аноним 11/02/18 Вск 21:07:02  1136943
>>1136924
>>1136925
>>1136937
>>1136940
Два дебила - это сила.
Аноним 11/02/18 Вск 21:08:57  1136949
>>1136943
Ты опять срешь в чатике, маленький засранец?
Аноним 11/02/18 Вск 21:19:42  1136960
>>1136949
>маленький
Ох уж эти проекции.
Аноним 11/02/18 Вск 21:27:23  1136965
https://github.com/yegor256/takes/blob/master/src/main/java/org/takes/misc/Base64.java
[code]
if (input[input.length - 1] == '=') {
input[input.length - 1] = 'A';
++padding;
}
if (input[input.length - 2] == '=') {
input[input.length - 2] = 'A';
++padding;
}
[/code]
 
Это даже не шизик - это просто криворукий тупой дегенерат.
Как и вы все, тащемто.
Аноним 11/02/18 Вск 21:46:03  1136985
>>1136965
>author Sven Windisch (sven.windisch@gmail.com)
ты зачем на егорку наговариваешь, сукин сын
Аноним 11/02/18 Вск 21:49:18  1136987
>>1136985
>Copyright (c) 2014-2018 Yegor Bugayenko
Просто иди нахуй, гнида безмозглая, и сдохни там в муках.
Аноним 11/02/18 Вск 22:00:06  1137001
ну эта так чо там с ооп, как его пердолить? поясняйте давайте?
Аноним 11/02/18 Вск 22:18:09  1137015
>>1137001
>поясняйте давайте?
Пояснил тебе за щеку, можешь не проверять.
Аноним 11/02/18 Вск 22:23:32  1137019
>>1137001
Настоящее ООП есть только в smalltalk-like языках. Ни в какой джаве, плюсах, пхп никаким ООП и не пахнет.
Аноним 11/02/18 Вск 22:34:00  1137032
>>1137015
Проверил и спюлнул синглтоном.
Аноним 11/02/18 Вск 22:38:59  1137041
>>1137032
>спюлнул
В следующий раз глотай, а то накажу.
Аноним 11/02/18 Вск 22:42:01  1137052
>>1137019
>в smalltalk-like
в эппловском objective-c что ли? и тут хипсторы дали пососать
Аноним 11/02/18 Вск 22:43:53  1137057
>>1137041
>накажу
Заставишь меня делать TDD?
Аноним 11/02/18 Вск 22:46:50  1137065
>>1137057
Именно, причем в хорошем темпе и разнообразными циклами :3
Аноним 11/02/18 Вск 22:49:39  1137067
>>1137065
Но ведь мы даже не делали ЮМЛ диаграммы, и вообще у меня это в первый раз...
Аноним 11/02/18 Вск 22:53:38  1137075
Мне кажется у Егоры шизофрения или психоз в рамках БАР.
Аноним 11/02/18 Вск 22:54:15  1137076
>>1137052
в js например
Аноним 11/02/18 Вск 23:31:32  1137116
>>1136987
>не отличает автора от авторских прав
Аноним 11/02/18 Вск 23:40:47  1137124
>>1137116
И правда тупая гнида.
Алсо все коммиты этого немецкого дурачка - это мелкие правки, тот самый говнокод он форкнул целиком изначально - что очевидно если посмотреть историю.
То есть очевидно всем, кроме обычных наследственных дебилов вроде тебя.
Аноним 12/02/18 Пнд 00:15:03  1137148
>>1137124
> говнокод
А что не так с кодом?
Аноним 12/02/18 Пнд 00:23:47  1137151
>>1137148
>что не так
Лично у тебя не так количество хромосом.
У автора говнокода, возможно, тоже.
Аноним 12/02/18 Пнд 01:05:41  1137187
>>1136642
>Как раз таки и означает, что если иммутабельную коллекцию надо скопировать
Во дебил.
Аноним 12/02/18 Пнд 01:08:03  1137189
>>1137151
Судя по тому, что ты не можешь ответить на простой вопрос, проблемы со здоровьем у тебя.
Аноним 12/02/18 Пнд 01:10:22  1137193
>>1137189
>ответить на простой вопрос
Услуги репетитора исключительно платно, деньги вперед.
Аноним 12/02/18 Пнд 01:14:09  1137197
>>1137193
Дурашка, я знаю на что ты тригернулся, и просто хочу вывести макнуть тебя мордочкой в твои же какашки.

return this.decode(input.getBytes(this.charset))
Аноним 12/02/18 Пнд 01:21:31  1137206
>>1137197
>эти манявры умственно неполноценного говнокодера
Ясно.
Аноним 12/02/18 Пнд 01:29:48  1137216
>>1137206
ОБОСРАЛСЯ
@
ДЕЛАЙ ВИД ЧТО НИЧЕГО НЕ ПРОИЗОШЛО

Ага, ага, шаблонный гринтекст и твёрдое "Ясно", безусловно, прикроют твой обосрамс
Аноним 12/02/18 Пнд 02:19:14  1137245
>>1137216
Егорка-дурачок, ты?
Аноним 12/02/18 Пнд 09:25:42  1137315
>>1136960 FS@UR Выходи на связь. Поздравлю с твоим прошедшим ДР.
Аноним 12/02/18 Пнд 11:28:39  1137368
>>1137315
Ты чо тут однаглазники устроил, а похавший? Пиздуй ответы мэйл отвечать.
Аноним 12/02/18 Пнд 12:19:55  1137399
>>1137368 Што?
Аноним 12/02/18 Пнд 13:10:17  1137415
>>1131879 (OP)
Классный мужик. Просмотрела видео по ООП, много чётких вещей. Прочитала статьи о том, как рассчитается рейт, где-то конечно перетолстил, но где-то чётко. В общем, я потекла.
Аноним 12/02/18 Пнд 13:58:12  1137460
>>1137415
>я потекла
конечно, МММ... КАКОЙ МУЩИНА, аммириканец пащти, гринку может сделать. Только на хуец прыгай и щитай на трактор присела.. тАКИХ ЕЩЕ ЩИНОЧКАМи РАЗБиРАЮТ А там уже на велфере за косарь, да обамакер в моями жить успешно
Аноним 12/02/18 Пнд 14:45:33  1137535
>>1137315
Живой.
Удивительно.
Аноним 12/02/18 Пнд 15:00:59  1137548
>>1137460
Думал, на двощях на такое уже не триггерятся. Каждый раз забавно.
Аноним 12/02/18 Пнд 15:27:39  1137568
ОБОЖЕКАКОЙМУЖЧИНА
подписалась на его бложик на зло бомбящим омежкам
Аноним 12/02/18 Пнд 15:37:07  1137575
>>1137535 АТО! Давай, подтягивайся, пообщаемся.
Аноним 12/02/18 Пнд 15:41:18  1137578
кстати, неплохая илея, что программисты не должны решать вопросы в чатика. Вместо этого на все создаются тикеты. Типа у когото есть вопрос по проекту, он его задаёт, ему платят за баг репорт, потом человек, ответственный за косяк, решает его и ему тоже платят. Сам сталкивался с тем, что разработка затягиваемся чатиками.
Аноним 12/02/18 Пнд 15:41:29  1137579
>>1137548
на потекла не тригяряцо?
Аноним 12/02/18 Пнд 19:48:48  1137750
>>1131879 (OP)
>on this graph you can see that the interest in oop was declining and increasing for functional programming
>обе кривые остались на том же значении, с которого они начинались
Аноним 12/02/18 Пнд 23:15:55  1137869
>>1137187
Это ты дебил, хули с другими тредами будешь делать? мьютексы вставлять? а зачем тогда твоя иммутабельность?
Аноним 12/02/18 Пнд 23:22:39  1137872
>>1137187
вот тебе и пруф, петушилла
>https://medium.com/@hussachai/scalas-immutable-collections-can-be-slow-as-a-snail-da6fc24bc688

The immutable list performed slower than the mutable one 362 times. That’s scary when you know that N is just 1,000. How bad will it perform if we increase N to 2,000?
Immutable List: 67.1715 ms
Mutable List: 0.1117 ms
Immutable List converted from Mutable List: 0.2081 ms
Now the gap is even wider. The immutable list is slower than the mutable one by 610 times!!!
Аноним 12/02/18 Пнд 23:44:21  1137878
>>1137869
Эх, сейчас бы на иммутабельные коллекции мьютексы ставить...

>>1137872
Что-то я не вижу в твоей копипасте пруфов того, что иммутабельные коллекции надо копировать, чтобы "изменить".

Ты ведь не понимаешь, что значит слово "иммутабельный", да?
Аноним 13/02/18 Втр 00:16:06  1137888
>>1137878
>>1137872

А по рюске чо за хуита эта мутабли имутабли?
Аноним 13/02/18 Втр 00:20:19  1137889
Как понять, как разбить программу на объекты?
Аноним 13/02/18 Втр 00:44:37  1137897

>>1137878
Ты дурак? Ты вообще не собираешься менять коллекции?
Иммутабельная коллекция подразумевает что при вставке элемента вся ее структура копируется в новую, отличающуюся тем, что добавлен этот новый элемент. В мутабельную добавляешь элемент и коллекция остается тем же инстансом, в иммутабельной при вставке получается новый инстанс. Сами элементы да не копируются, копируются свзяи между элементами, но это огромные накладные расходы при большом количестве элементов.
>Эх, сейчас бы на иммутабельные коллекции мьютексы ставить...
Ну вот затем чтобы мьютексы и не ставить, иммутабельные структуры и копируются
>>1137888
>А по рюске чо за хуита эта мутабли имутабли?
хуета набравшая моду ныне в мире жабаскрипта, абсолютно бесполезная в серьезной разработке. Но профаны почему то носятся с ними как со сверхценной идеей. По сути, иммутабельность - это обычный баззворд.
Аноним 13/02/18 Втр 01:03:27  1137906
>>1137897
>Иммутабельная коллекция подразумевает что при вставке элемента вся ее структура копируется в новую
Niejt. Ты бы почитал сначала, как реализуются иммутабельные коллекции. В-общем, конечно не cache-friendly, но и не тотальная дупликация данных, как ты воображаешь.
Аноним 13/02/18 Втр 01:16:15  1137911
>>1137906
И как они реализуются?
чем иммутабельный односвязный список отличается от мутабельного?
Да ничем, кроме того, что у иммутабельного после insert возвращает копию структуры куда элемент инсертится.
Аноним 13/02/18 Втр 01:37:15  1137920
>>1137911
trie и прочие вариации.
Аноним 13/02/18 Втр 01:56:19  1137930
ebff38063b30af2[...].jpg (21Кб, 300x300)
>>1137888
По-русски - неизменяемые (постоянные) структуры данных.

>>1137897
>Ты вообще не собираешься менять коллекции?
>неизменяемые коллекции

>вся ее структура копируется в новую
Ты бы хоть свою же статью по своей же ссылке прочитал. Не умеешь в английский?

>копируются свзяи между элементами
Астральные, надеюсь, связи? Пикрелейтед.

>иммутабельные структуры и копируются
Иммутабельные структуры. Копируются. Чтобы мьютексы не ставить. Ага, понятно.

>в мире жабаскрипта
Ох... Какой замечательный итт тред все-таки!
Аноним 13/02/18 Втр 02:00:43  1137934
>>1137930
> Ох... Какой замечательный итт тред все-таки!
В жабаскрипте ещё со времён царя гороха есть Object.freeze, который делает массивы и объекты неизменяемыми. Правда после него они обычно работают медленней, потому что программисты JIT-конпеляторов не заморачиваются с их оптимизацией.
Аноним 13/02/18 Втр 02:04:16  1137938
>>1137934
Еще со времен царя гороха можно было везде пихать const, да и просто ничего не изменять, нутыпонел.
Аноним 13/02/18 Втр 02:04:45  1137939
Ну и гуава и прочие гуглоколлекции, разумеется. ИНТЕРПРАЙС, пацаны.
Аноним 13/02/18 Втр 02:08:36  1137943
>>1137938
> можно было везде пихать const
Низзя. Он только Firefox'ом поддерживался, в его особенной JS1.8.5-ой форме. В ES6 его значительно изменили.
Например в 1.8.5 он напоминал `var` и имел отложенную инициализацию, что позволяло делать хуйню вроде
function() {
azaza = 5;
return azaza;
    const azaza;
}
Аноним 13/02/18 Втр 02:10:16  1137945
>>1137943
Так я про си и ко как бы.
Аноним 13/02/18 Втр 02:30:52  1137951
>>1137945

Конст - не панацея, это же не deep freeze.
Аноним 13/02/18 Втр 02:46:37  1137958
>>1137951
Поэтому я и написал текст курсивом.
Аноним 13/02/18 Втр 05:58:23  1137972
>>1137897
>коллекция остается тем же инстансом
Чем остаётся? Что это должно значить, вообще?
Аноним 13/02/18 Втр 06:21:02  1137974
>>1137972
> Чем остаётся? Что это должно значить, вообще?
Значит переменная-ссылка (или указатель, зависит от ЯП и терминологии) указывает на тот же объект, просто его содержимое изменилось.
Аноним 13/02/18 Втр 08:07:36  1137987
>>1137974
На ходу придумал? Новый смысл у термина 'инстанс'?
>тот же объект
Как понять? Он изменяется или нет? О каком 'объекте' идёт речь (в контексте ООП, или нет? что, если нет?)?
Аноним 13/02/18 Втр 08:36:25  1137989
>>1137974
>> Чем остаётся? Что это должно значить, вообще?
>Значит переменная-ссылка (или указатель, зависит от ЯП и терминологии) указывает на тот же объект, просто его содержимое изменилось.

В сях создали массив на 40 элементов, не хватило, reallocнули на 80, указатель изменился.

Отсосал, байтоеб?
Аноним 13/02/18 Втр 08:38:38  1137990
>>1137987
> Новый смысл у термина 'инстанс'?
Я откуда знаю, что тот анон вкладывал в это термин.
> Как понять?
А вот хуй его знает.

Воообще само понятие "иммутабельность" зависит от контекста и ЯП.

Есть иммутабельные коллекции, которые хранят ссылки на иммутабельные элементы и им нет нужды копировать себя вообще. Они просто копируют ссылки на нужные элементы, а элементы остаются теми же. Правда для их работы нужны как минимум счётчики ссылок, чтобы избежать утечек памяти. Пример такой коллекции - это строковый тип в JavaScript. Хоть в спеках ничего об этом и не сказано, но при выполнении str.substring(...) или str.substr(..) браузеры не копируют символы в новую строку, а создают строку на основе существующей, просто ставя другие индексы начала и конца. Конкатенация выполняется точно так же. Вместо копирования, создаётся псевдострока, которая содержит две ссылки на старые строки и описание того как они связаны (называется эта хуйня rope).
Аноним 13/02/18 Втр 09:24:32  1137993
>>1137535 Ну, резче давай, на связь, ками.
https://www.youtube.com/watch?v=hcDs51s6Vyc
Аноним 13/02/18 Втр 11:16:48  1138016
>>1137889
Эй мьютексы имутабленые, отвечать будити?
Аноним 13/02/18 Втр 12:16:26  1138047
>>1138016
«В классы обычно собираются данные, которые изменяются вместе» ©
Аноним 13/02/18 Втр 12:27:37  1138053
>>1138047
Тоесть всю программу запихать в клас, ведь она изменяется вить?
Аноним 13/02/18 Втр 12:28:44  1138054
>>1138053
В джаве с шарпом так и делают
Аноним 13/02/18 Втр 12:33:05  1138058
>>1138054
Так а нахой другие класы пейсать если программа и есть класс
Аноним 13/02/18 Втр 12:52:42  1138069
>>1138058
Д Е К О М П О З И Ц И Я
Е
Т
Ы
П
И
Д
О
Р
Ц
И
Я
Аноним 13/02/18 Втр 12:58:37  1138072
>>1138069
дети пидоры? как это поможет?
Аноним 13/02/18 Втр 13:09:44  1138082
>>1138069
И нахуя? С таким же успехом можно переменные раскидать по разным файликам? В чем смысел?
Аноним 13/02/18 Втр 13:11:11  1138083
>>1138082
> по разным файликам
Какие у тебя файлики еще в Смолтолке?
Аноним 13/02/18 Втр 14:14:58  1138119
>>1138083
ну дак я и говорю все в одном файлике писать ведь программа то это объект, его никак нидикомпозировать.
Аноним 13/02/18 Втр 14:29:57  1138130
>>1137990

> Воообще само понятие "иммутабельность" зависит от контекста и ЯП.

Разберись с основами для начала, иммутабельность значит только то, что объект не изменяется, хотя может содержать неизменяемые ссылки на изменяемые объекты.
Аноним 13/02/18 Втр 14:32:52  1138135
>>1138119
Просто твое зашоренное сознание не может принять то, что есть системы без файловых абстракций.
Аноним 13/02/18 Втр 14:49:47  1138164
>>1138130
>ссылки на изменяемые объекты.
Нахуй такую иммутабельность.
Аноним 13/02/18 Втр 15:09:41  1138188
>>1138164

C иммутабельностью все впоряде, то на что ты вайнишь - сайд-эффект «impure» programming languages. Не нравится? Ну учи хаскелль, братиш.
Аноним 13/02/18 Втр 15:17:32  1138198
>>1137911
Персистентные структуры данных, слышал?
Аноним 13/02/18 Втр 15:23:47  1138200
>>1138198

А как персистентность связана с иммутабельностью?

ЕМНИП каждая иммутабельная структура полностью персистента, но не каждая, хотя бы частично, персистентная структура иммутабельна.
Аноним 13/02/18 Втр 15:55:44  1138222
>>1138082
> С таким же успехом можно переменные раскидать по разным файликам? В чем смысел?
Компилятор джавки, например, выдаёт ошибку компилирования если каждому публичному классу не сделать отдельный файлик, название которого соответствует имени класса.
Аноним 13/02/18 Втр 16:12:33  1138231
>>1138135
а кокиие еще есть?
Аноним 13/02/18 Втр 16:13:58  1138235
>>1138222
Ну типа конпилятор жавы мешает, ок. А так в этом смысла нету получается.
Аноним 13/02/18 Втр 16:15:55  1138236
>>1138235
Да ты прав. В твоём случае каждый класс будет представляться в виде файла
Аноним 13/02/18 Втр 16:47:24  1138268
>>1137990
Очередная порция охуительных историй. Иммутабельные коллекции требуют копирования ссылок на элементы и счетчиков ссылок. Ок.

>>1138200
>каждая иммутабельная структура полностью персистента
Заебись.

В этом треде мы выяснили, что:
1) ГОП-блядки не могут в английский.
2) ГОП-блядки не могут в базовые структуры данных.
3) ГОП-блядки не могут в си и указатели, не понимают, как работает их код.
4) ГОП-блядки совершенно не разбираются в том, о чем пытаются спорить.

ГОП-блядок - не человек. Унижай его, смейся над ним.
Аноним 13/02/18 Втр 16:55:55  1138275
>>1138268
> Иммутабельные коллекции требуют копирования ссылок на элементы и счетчиков ссылок.
Не требует. Это один из способов их реализации. Так например делает эрланг. Хоть все коллекции там иммутабельны, при добавлении нового элемента в коллекцию она не копируется полностью, а просто создаётся новая структура с ссылкой на предыдущую коллекцию и новым элементом. Впрочем в языке есть средства и для полного копирования коллекции, если так надо.
Аноним 13/02/18 Втр 17:24:40  1138298
>>1138275
Зачем ты мне это пишешь? Я цитировал другого анона. Алсо, как там в 80-ых? Рефкаунт, пацаны?
Аноним 13/02/18 Втр 17:26:05  1138300
>>1138268
чо за гоп блядок? На коком это языке вообще?
Аноним 13/02/18 Втр 17:28:12  1138301
>>1138298
> Алсо, как там в 80-ых? Рефкаунт, пацаны?
Там было написано "как минимум". Можно хоть gc прикрутить. В языках по встроенным сборщиком мусора даже ничего прикручивать не надо.
Аноним 13/02/18 Втр 17:36:19  1138304
>>1138069
И как ей научится?
Аноним 13/02/18 Втр 18:53:12  1138346
>>1138304
А это интересный вопрос.
Как мне кажется, способность к расчленению чего-то на части, с соблюдением логики связи между этими частями, это часть все того же абстрактного мышления. А как научится мыслить абстрактно, это извечный вопрос на подобных форумах.
Аноним 13/02/18 Втр 19:58:46  1138377
>>1138304
Системный анализ + объектно ориентированный анализ
Аноним 13/02/18 Втр 20:13:53  1138380
>>1138300
на сиплюсплюс >>1133004
Аноним 13/02/18 Втр 20:27:57  1138390
>>1138304
https://youtu.be/agkWYPUcLpg
Аноним 13/02/18 Втр 23:33:12  1138474
>>1138275
>а просто создаётся новая структура с ссылкой на предыдущую коллекцию и новым элементом
Ну давай, расскажи мне как это сделать для двусвязного списка?
А для B+-tree или T-tree? Хотя да, я забыл, что иммутаблябляди не могут в структуры данных, которые сложнее тех, что пишут в лабах.
Аноним 13/02/18 Втр 23:51:31  1138485
>>1138474
Никак (изкаробки). Даже более того, добавлять элементы можно только в конец. Я просто привожу пример такой коллекции. У неё в эрланге даже отдельный тип есть.

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

А вообще я лично большие коллекции почти не использую. Большая часть данных у меня проходит в приложениях в потоках и обрабатывается по-одному (оно же реактивное программирование).
Аноним 14/02/18 Срд 00:08:40  1138495
>>1138474
>иммутабельный двусвязный список
Ох...
Аноним 14/02/18 Срд 00:09:46  1138496
>>1138485
Ну круто че, иммутабельность без катастрофического оверхеда возможна только для несортированных списков и простейших бинарных деревьев, в случае деревьев правда еще обязательно нужен gc.
Ну сразу очевидно же что всем срочно нужно переходить на иммутабельные коллекции и до потери сознания воевать в интернете с глубыми стейтоебами, иммутабельность - будущее!
Аноним 14/02/18 Срд 00:14:40  1138501
>>1138495
в чем проблема? можно даже сделать изменения атомарными на платформах, что поддерживают DCAS.
https://en.wikipedia.org/wiki/Double_compare-and-swap
Аноним 14/02/18 Срд 00:19:08  1138503
>>1138496
>иммутабельность без катастрофического оверхеда возможна только для несортированных списков и простейших бинарных деревьев

Ты всё неправильно понял.
Аноним 14/02/18 Срд 00:24:10  1138505
>>1137930
>Ты бы хоть свою же статью по своей же ссылке прочитал.
С чего ты взял что мне всегда нужно вставлять элементы только в конец?
>Астральные, надеюсь, связи? Пикрелейтед.
Хуяльные
>Иммутабельные структуры. Копируются. Чтобы мьютексы не ставить. Ага, понятно.
Именно, петушок. Под копированием структуры я понимаю копирование структуры, а не данных в ней. Ну то есть копирование связей между рефкаунтными нодами, что содержат данные.
>в мире жабаскрипта
>Ох... Какой замечательный итт тред все-таки!
Именно после моды на immutable.js и всякие redux в интернете и расплодилось столько кукарекающих про иммутабельность петушков. Люди знакомые с функциональными языками, а не желающие покукарекать в интернете на волне хайпа, понимают, как мало иммутабельные структуры имеют общего с реальной жизнью и серьезной разработкой.
Аноним 14/02/18 Срд 00:24:38  1138506
>>1138503
Да правильно я все понял
Аноним 14/02/18 Срд 01:59:43  1138532
>>1138501
>иммутабельный изменяемый двусвязный список
Ах...
Аноним 14/02/18 Срд 02:03:59  1138534
>>1138505
>С чего ты взял что мне всегда нужно вставлять элементы только в конец?
Ты о чем вообще?

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

>Именно после моды на immutable.js
Подозреваю, что тебе просто папа компьютер с интернетом купил только в это время :)
Аноним 14/02/18 Срд 05:44:17  1138549
>>1138082
>переменные раскидать по разным файликам
Начнем с того, что понятие "переменная" связано с понятием "файл" от слова "никак". Когда выучишь определения и начнешь их осмысленно употреблять, возвращайся, поговорим о семантике.
Аноним 14/02/18 Срд 16:17:27  1138840
>>1131879 (OP)
https://gist.github.com/rklaehn/26c277b2b5666ec4b372

Сравнение производительности джавы и скалы.
Аноним 14/02/18 Срд 18:56:35  1138909
>>1138840
Поясните что значат результаты
Аноним 14/02/18 Срд 20:52:30  1138952
>>1132736
Очевидно, тайпклассами, набором комбинаторов для них и автоматическим выводом тайпклассов с помощью компайл-тайм макросов.
Аноним 14/02/18 Срд 21:10:47  1138963
>>1138952
Кек, что - то авторам Scala2.0 (Dotty) ето не так уж очевидно.
Аноним 14/02/18 Срд 21:12:43  1138967
>>1138909
Нихуя не значат результаты. На производительность именно языка не нассать только презренных байтоебам, на которых просто нужно нассать, а не выслушать их проблемы и мнение.
У нормальных же людей производительность измеряется алгоритмов, запросов и распределенных систем.
Аноним 14/02/18 Срд 21:26:23  1138976
>>1138963
Шэйплесом обмазывайся.
Аноним 14/02/18 Срд 21:36:08  1138983
>>1138909
Скала быстрее джавы. Иммутабельные коллекции скалы немного быстрее, мутабельные коллекции скалы быстрее в разы.
Аноним 14/02/18 Срд 21:43:44  1138990
>>1138983
> Скала быстрее джавы.
> Иммутабельные коллекции скалы немного быстрее, мутабельные коллекции скалы быстрее в разы.
Это не скала быстрее жавы, а коллекции стандартной библиотеки скалы быстрее коллекций из стандартной библиотеки жавы.

Конкретно скала может быть значительно быстрее жавки только в том случае, если будет сконпелирована под .NET и активно использовать value types.
Аноним 15/02/18 Чтв 00:00:47  1139033
>>1138990
>коллекции стандартной библиотеки скалы быстрее коллекций из стандартной библиотеки жавы.
Только аутисту, который не может в контекст между двумя предложениями, нужно это дополнительно объяснять, не?
Аноним 15/02/18 Чтв 00:04:54  1139036
>>1139033
Что поделать, если первое предложение не подразумевает второе. Интересно будет посмотреть на скорость коллекций жавы, после того как там закончат вальхаллу. А так и сейчас понятно, что коллекции там немношк говно.
Аноним 15/02/18 Чтв 00:24:21  1139045
>>1138534
>ты о чем вообще?
о том что в статье про то и написано, что если не использовать оператор склейки элемента в конец иммутабельной паращи, то оверхед чудовищный
>Рефкаунт, ага
Как по твоему устроены gc функциональных языков?
>Подозреваю, что тебе просто папа компьютер с интернетом купил только в это время :)
Скок получаешь то петушок? За 2к бачей то хоть перевалил?
Аноним 15/02/18 Чтв 01:15:03  1139066
>>1139045
>что если не использовать оператор склейки элемента в конец иммутабельной паращи, то оверхед чудовищный
Прочитай уже какую-нибудь книжку по алгоритмам и узнай, как работают списки.

>Как по твоему устроены gc функциональных языков?
У языков нет gc, gc есть у рантаймов. Ты очень тупой. Жвм гц на рефкаунте, пацаны))

>Скок получаешь то
Оно еще и мамин фрилансер 300к\сек, ну просто праздник какой-то.
Аноним 15/02/18 Чтв 17:24:20  1139420
>>1131879 (OP)
жавадебилы изобретают хаскелл
лет так через сорок до стандарта Haskell 98 доберуться
Аноним 15/02/18 Чтв 21:25:23  1139632
>>1139036>>1138990
>коллекции стандартной библиотеки скалы быстрее коллекций из стандартной библиотеки жавы в данном тестировании.
мимо
Аноним 03/03/18 Суб 08:06:20  1148856
Кажется мы стали забывать как выглядит настоящий ООП.
Аноним 03/03/18 Суб 13:29:46  1148927
>>1148856
>2018
>ООП
Аноним 03/03/18 Суб 17:27:55  1149040
>>1148856
как земля он выглядит
Аноним 03/03/18 Суб 17:43:09  1149045
4146.jpg (120Кб, 1280x720)
>>1149040
красибо
Аноним 07/03/18 Срд 09:45:43  1151030
Всем привет
Аноним 07/03/18 Срд 10:10:04  1151034
>>1131879 (OP)
http://www.yegor256.com/2014/10/29/how-much-do-you-cost.html
> $100+ per hour - has a StackOverflow score above 20K;
Е Б А Н У Т Ы Й
Аноним 19/03/18 Пнд 09:08:05  1158737
Хэллоу
Аноним 06/04/18 Птн 15:14:41  1169123
Бамп
Аноним 06/04/18 Птн 17:42:50  1169198
>>1131879 (OP)
http://www.yegor256.com/2018/03/06/speed-vs-quality.html
Бля.
Аноним 06/04/18 Птн 20:03:21  1169259
.png (122Кб, 1194x810)
>>1131879 (OP)
> Object Thinking
Аноним 06/04/18 Птн 21:24:39  1169295
>>1169259
что не так?
так-то егорка - еретик, и отошел от ООП принципов на самом деле. он использует объекты не более как контейнер для одной функции.
Аноним 06/04/18 Птн 21:46:48  1169305
>>1169295
Эх, щас бы замыкания руками выписывать...
Аноним 07/04/18 Суб 01:21:07  1169439
>>1169305
на java и не такое пишут.
они там до сих пор пишут однопоточно с блокирующими IO-операциями
Аноним 07/04/18 Суб 01:43:17  1169451
>>1169439
ORLY? https://docs.oracle.com/javase/7/docs/api/java/nio/package-summary.html
Аноним 07/04/18 Суб 12:06:38  1169549
>>1169439
> однопоточно с блокирующими IO-операциями
Сейчас не 2008 год, маня.
Аноним 07/04/18 Суб 12:14:45  1169554
>>1169549
>Сейчас не 2008 год, маня.
В jave-мирке 2008 еще и не наступал. Там до сих пор 2000-ые. Язык-то мертв.
Даже javascript уже функциональнее и производительнее java

https://www.youtube.com/watch?v=REj8pJesMVI
Аноним 07/04/18 Суб 12:59:18  1169571
>>1169554
Да, по ссылке дурачок пишет http client с блокирующими операциями
Аноним 07/04/18 Суб 13:31:32  1169581
>>1169554
Понятно - ничего не знающий сектант с минимальным опытом современного программирования.

Не буду тратить на тебя время - просто нассу на тебя.
Аноним 07/04/18 Суб 14:37:00  1169620
ООП-господа, появилась такая идея.
Надоело трахаться с моками для тестов. Можно сначала объявить абстрактный класс, в который все зависимости вынести в абстрактные методы.
В конкретном рабочем классе мы указываем зависимости в конструкторе как обычно и возвращаем их через наши абстрактные методы.
А для тесты мы делаем мок этого абстрактного класса.

Как вам такая идея? Или это стандартная практика про которую я просто не знаю?
Аноним 07/04/18 Суб 14:43:00  1169621
>>1169581
>java
>опытом современного программирования
толстишь же.
Аноним 07/04/18 Суб 15:25:55  1169639
>>1169621
Сынок, java - это и есть современное программирование.
А не то, на что вы там дрочите, хлебая смузи в кофешопах, кложуристы мамкины.

Аноним 07/04/18 Суб 15:39:58  1169647
>>1169620
Открой для себя интерфейсы и библиотеку для мокирования для твоего языка.
Аноним 07/04/18 Суб 15:42:22  1169649
>>1169639
>с конца 90-х в java не добавили НИЧЕГО кроме лямбд, и то пару лет назад
>java - это и есть современное программирование
Ты уже вытекаешь из треда.
Аноним 07/04/18 Суб 15:45:56  1169650
>>1169647
Смысл как-раз в том, чтобы не использовать интерфейсы и не передавать их в конструкторе.
Потому что это все превращается в ад зависимостей, да еще и сам класс может использовать какие-то нежелательные функции типа записи в файл.

Суть в том, что мы в абстрактном классе все зависимости скрываем за интерфейсом абстрактных методов.

Аноним 07/04/18 Суб 15:50:16  1169653
>>1169620
>>1169650
Если у тебя в классе куча зависимостей, значит ты что-то делаешь не так. Алсо, если ты для мокирования зависимостей класса Х определяешь другую реализацию самого класса Х, то ты что-то делаешь не так. Если у тебя сайд-эффекты не отделены от чистой бизнес-логики приложения, то ты что-то делаешь не так. Продолжать, анон?
Аноним 07/04/18 Суб 15:59:47  1169655
>>1169653
Или я могу просто сделать абстрактные методы для абстракции зависимостей и не выдумывать хуиту и не корежить архитектуру приложения, чтобы сделать такие как надо тесты.
Аноним 07/04/18 Суб 16:00:56  1169656
>>1169650
>Смысл как-раз в том, чтобы не использовать интерфейсы

Ага, но использовать абстрактные классы, лол.

Ты пытаешься впихнуть невпихуемое.
Это всё надо делать через рефлекшн и байткод-инжиниринг.
Погули ASM (не ассемблер, блять), и прочее, лень вспоминать, если честно.

Вообще, для промышленного применения в таком случае используют Groovy, Spock etc (ASM и прочее там внутри).
Аноним 07/04/18 Суб 16:02:33  1169657
>>1169653
>Если у тебя в классе куча зависимостей, значит ты что-то делаешь не так
У меня в классе одна зависимость, но эта зависимость может возвращать другие классы, которые тоже мокить.

>Если у тебя сайд-эффекты
А если это класс суть которого в записи в файл?
Аноним 07/04/18 Суб 16:18:02  1169664
>>1169655
В смысле? Ты как раз и предлагаешь "корежить архитектуру", делая специальный код для тестов. При нормальной архитектуре тебе не нужно писать никакого дополнительного кода в классе для изменения его зависимостей на моки. Почитай про DI. Ну и выше анон тебе правильно сказал, ты походу не совсем понимаешь, что такое интерфейсы: >>1169647
Аноним 07/04/18 Суб 16:24:16  1169668
>>1169657
>но эта зависимость может возвращать другие классы, которые тоже мокить.
Ну как бы очевидно, что ты не можешь написать мок для класса, не замокив в свою очередь его зависимостей, которые утекают в интерфейс, разве не так? Запили в тред конкретный пример, давай посмотрим, как лучше сделать.

>А если это класс суть которого в записи в файл?
Я не понял вопроса. Поинт был в том, что если у тебя при тестировании класса бизнес-логики ВНЕЗАПНО возникает потребность мокать тыщу сайд-эффектных классов, то ты что-то делаешь не так. Ну типа как знаешь, некоторые упоротые в геттеры джавабинов пихают какой-нибудь код получения значения из базы и кэширования (ИНКАПСУЛЯЦИЯ ЖИ!!1), наркомания в таком духе. Бизнес-логика получает и возвращает данные, а в файл записывает уже другой лейер. Алсо, что ты собрался мокать в классе, суть которого в записи в файл?
Аноним 07/04/18 Суб 16:31:52  1169672
>>1169620
> абстрактный класс
Ну нахуй.
>Надоело трахаться с моками для тестов.
Что ты там мокаешь? Проблема может быть именно в том, что ты мокаешь там где не нужно. Что ты хочешь протестировать? Давай конкретный пример на реальной задаче.
Аноним 07/04/18 Суб 17:06:00  1169689
.jpg (184Кб, 1280x899)
>>1169650
> Смысл как-раз в том, чтобы не использовать интерфейсы
Егорка-долбоеб, eto ti?

> какие-то нежелательные функции типа записи в файл
Открой для себя принципы SOLID. В частности буквы SLID.
Аноним 07/04/18 Суб 17:38:28  1169696
>>1169664
>При нормальной архитектуре тебе не нужно писать никакого дополнительного кода в классе для изменения его зависимостей на моки.
Лел. написание кода под юнит тесты и в частности изолирование одних классов требует определенных извращений в архитектуре.

http://david.heinemeierhansson.com/2014/test-induced-design-damage.html
https://rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf
Аноним 07/04/18 Суб 17:43:57  1169697
>>1169696
Ноуп, извращения в архитектуре - это как раз отсутствие изоляции и прочий спагетти-код, который не тестируется.
Аноним 07/04/18 Суб 17:56:37  1169701
>>1169620
Короче, я подумал что в принципе все эти абстрактные методы можно вынести в интерфейс и использовать его как зависимость. Получится тоже самое, но более тест-френдли.
Аноним 07/04/18 Суб 18:10:21  1169705
>>1169701
Тогда придется делать один класс wrapper, который переводит все реальные зависимости в методы этого интерфейса.
Аноним 07/04/18 Суб 18:23:07  1169716
>>1169696
Код сразу нужно нормально проектировать, тогда и юнит-тесты легко писать там, где нужно, без модификаций кода.

А то как обычно бывает - говнокодеры пишуют лютые портянки, имеющий миллиард зависимостей, делающие все и протестировать это говнище можно только энд ту энд (интеграционными) тестами с полным поднятием контекста и тесты идут час, полтора.
Аноним 07/04/18 Суб 19:26:07  1169754
>>1169716
Ну это советы уровня зачем писать плохой код, если лучше писать хороший код.
Аноним 07/04/18 Суб 19:42:08  1169777
>>1169754
Ну почему? В тех же функциональных языках все это давно формализовано, там тебе компилятор элементарно не даст написать портянку с обращемем к базе в геттерах бинов.
Аноним 07/04/18 Суб 19:54:36  1169786
>>1169777
>В тех же функциональных языках
В функциональных языках нет и таких проблем с тестированием.
Аноним 07/04/18 Суб 19:59:24  1169787
>>1169786
Эм, ну так о том и речь, что поэтому их и нет. См.: >>1169716
Аноним 07/04/18 Суб 20:15:13  1169799
>>1137193
Ничё-ничё, уёбина, как-нибудь понадобится тебе либу какую-нибудь форкнуть чтобы добавить функционал, ты там наешься говна со своим платным репетиторством.
Выбор будет прост:
1) тебя ебёт босс за то что ты прибавил месяц к дедлайну потому что у тебя нервы отказывают ковыряться в чужом говне и ты пишешь свою либу
2) ты скрежещешь зубами и ковыряешься в чужом говне
Когда вы поймете, суки тупые, что ваши скиллы по дефолту говно и вы никто чтобы заниматься репетиторством, однако ваше мнение по конкретной теме МОЖЕТ помочь прогрессу и жабить его тупо бессмысленно.
Аноним 07/04/18 Суб 20:30:40  1169805
>>1169787
Какие могут быть проблемы с проверкой результата вычисления функции?
В функциональных языках других проблем хватает и поэтому они говно.
Ты так говоришь, кск будто легкость тестирования это краеугольный камень программирования.
Аноним 07/04/18 Суб 20:45:42  1169821
>>1169805
А какие могут быть проблемы с проверкой результата вычисления метода, лол? Чувак, ты попросту не понимаешь, о чем говоришь. Еще раз: анон написал, что
>Код сразу нужно нормально проектировать, тогда и юнит-тесты легко писать там, где нужно, без модификаций кода.
Я добавил к этому, что в тех же функциональных языках это самое "нормально проектировать" частично энфорсится компилятором и семантикой языка, так что откровенной лапши типа дб в геттерах ты написать тупо не сможешь, а потому совет того анона - это не маняэдвайс уровня "пиши хороший код, а плохой не пиши", а вполне нормальная и рабочая установка.
Аноним 08/04/18 Вск 03:07:48  1169945
>>1169620
Я угорел по абстрактным абстракциям.
Суть в том, что внутри абстрактного класса мы объявляем классы независимые от внешних классов и используем только их. Запрещено внутри абстрактного класса использовать внешние классы.
Как вам такая идея?
Аноним 08/04/18 Вск 03:15:14  1169949
image.png (69Кб, 847x677)
>>1131879 (OP)
>подайти позязя
Аноним 08/04/18 Вск 03:18:16  1169953
>>1169945
>Как вам такая идея?
Как земля. Иди лучше лабы делай.
Аноним 08/04/18 Вск 03:29:45  1169955
>>1169953
почему? ящитаю что настоящй ООП должен быть именно таким домен индепендент.
грубо говоря у объекта есть абстрактные через которые он получает данные, и абстрактные методы в которые передается результат. все.
Аноним 08/04/18 Вск 04:40:56  1169966
>>1169955
Поздравляю, вы только что изобрели интерфейсы классов, осталось миксины изобрезть.
Аноним 08/04/18 Вск 05:44:35  1169975
>>1169805
>В функциональных языках других проблем хватает и поэтому они говно.
Нука-нука. Например?
Аноним 08/04/18 Вск 08:32:58  1169981
Я вот немного не понял. Он говорит что объекты должны быть немутабельными. Что это значит? Вот я пишу игрушечку. У меня есть Alien. У него есть поле hp.

После выстрела по нему нужно удалить объект и создать новый?
Аноним 08/04/18 Вск 08:40:24  1169982
>>1169981
Не просто удалить алиена, а полностью пересоздать весь мир с поврежденным алиеном.
Аноним 08/04/18 Вск 08:45:27  1169983
>>1169982
Не, ну это шутка. Он ж вроде не говорит так делать.
Аноним 08/04/18 Вск 11:00:24  1170004
>>1169981
Ну, следуя логике функциональщиков - алиен с хп 100 перестал существовать, и появился алиен с хп 99. Это совсем другой алиен, не надо их путать , лол.

Тут где-то бродит большой специалист по Clojure - спроси у него. У них там целая теория под это подведена.
Аноним 08/04/18 Вск 11:02:50  1170005
>>1170004
Сопливые представления императивщиков о ФП.
Аноним 08/04/18 Вск 11:52:37  1170030
>>1169966
Ты не понял.
Идея в том, что абстрактный класс выступает как независимая программа. Он существует в своем собственном мирке со своими собственными классами.

Например
public abstract class Class1
{
class Data { public int i; }

protected abstract Data getData();
protected abstract Data setData();

protected abstract void process Data()
{
Data data = getData();
data.i++;
setData(data);
}
}

Потом ты наследуешь этот класс и реализуешь методы для получение данных.
Аноним 08/04/18 Вск 12:08:36  1170035
>>1170005
Ну расскажи свои не сопливые, умник.


Просто логика не в этом. Если задача ООП моделировать объекты реального мира, то странный у светоча подход. Объекты реального мира изменчивы.
Аноним 08/04/18 Вск 12:08:51  1170036
.png (20Кб, 200x200)
>>1170030
Поздравляю. На этот раз ты изобрел паттерн "Шаблонный метод".

Егорка-долбоеб, хватит страдать хуитой и пиздуй читать книги про ООП и потом наверни про паттерны, а не придумывай велосипеды, которые выглядят как велосипеды, но при этом ты говоришь, что их нельзя называть велосипедами, потому что это "машина на цепной передаче с двумя колесами".
Аноним 08/04/18 Вск 12:12:20  1170038
>>1170035
Ты бы книжки почитал, неуч.
>Если задача ООП моделировать объекты реального мира
Ой всё. Этот тоже сломался.
Аноним 08/04/18 Вск 12:22:01  1170041
>>1169198

Зачем он преподносит очевидные всем вещи как откровение?
Аноним 08/04/18 Вск 14:00:57  1170112
>>1169716
> энд ту энд (интеграционными) тестами с полным поднятием контекста и тесты идут час, полтора
Как что-то плохое. Это же не юнит-тесты.
Юнит-тесты для какого-нибудь CRUD вообще сложно придумать, если там особой бизнес-логики нет.
Если тебя смущает время, то можешь разбить тесты на группы и запускать только те, что связаны с текущими изменениями. Ну и полтора часа на тесты - это когда тестов довольно много. Значит и приложение не маленькое. За всё приходится платить. У нас тесты и по неделе гоняются (специфика такая) - такова цена за уверенность в работе.
Аноним 08/04/18 Вск 14:04:01  1170114
>>1170041
Ебальником светит. Написать чего-нибудь уиного - мозгов не хватает, а написать надо.
Аноним 08/04/18 Вск 14:06:11  1170115
>>1170114
>Ебальником светит

Еблом торгует же.
Аноним 08/04/18 Вск 14:20:59  1170120
>>1169981
Ой, блядь. Короче, смотри. Есть две разных вещи, которые часто путают: identity (идентичность объекта) и value (значение объекта). Под словом "объект" я тут подразумеваю вообще любую сущность, а не указатель на структуру с методами.

Вот пример для местных адептов МОДЕЛИРОВАНИЯ РЕАЛЬНОГО МИРА: есть у нас Петя. "Петя" - это identity. Если Петя выпьет кефир, то он все равно останется Петей, несмотря на то, что его "значение" поменялось. Давайте отрежем Пете руку. Теперь у нас есть два разных объекта (рука никуда не исчезла - она персистентна! - мы ее просто удалили из Пети). Более того, Петя с рукой и Петя без руки - это тоже два разных объекта. Но с одним identity - "Петя". То есть identity "Петя" может в разные моменты времени указывать на разные объекты.

Более вменяемый пример: вот есть у тебя числа. Числа неизменяемые. 2 + 3 не изменяет значение числа "2", как это происходит в (хуевом) ооп. 2 + 3 возвращает новое число - 5. Далее, у нас может быть identity "вес Пети в килограммах". Сегодня Петя весит 100 кг, а через месяц будет весить 120. Это не значит, что когда Петя набирает вес, он изменяет число 100. Он просто ассоциирует identity "вес Пети" с новым (иммутабельным) числом.

Это понятно? Так работает логика, математика, физика и вообще все инженерные дисциплины. Это логично и понятно. Но по историческим причинам в хуевом (процедурном) ооп мы постоянно путаем identity и value, они никак не разделены. То есть мы именно что изменяем само число 100. Это сложно, хуево и непонятно, поэтому программы получаются сложными, хуевыми и непонятными - трудно предсказывать, что где поломается в следующем коммите, и трудно рассуждать о свойствах программы, потому что она построена на хуевых, нелогичных основаниях. Причины чисто исторические: современный мейнстримный ооп - это дырявая абстракция, которая получилась натягиванием ужа на ежа (объектной системы на си). В том числе из-за этого случаются всякие забавные (ну, как забавные) казусы: например, java - язык с некорректной (unsound) системой типов. То есть если компилятор не видит ошибок типов, то это не значит, что на самом деле их нет и в рантайме она не скрашится. То есть система типов джавы на самом деле ближе к юнит-тестам, чем к системам типов - она не дает никаких гарантий, а только ловит некоторые ошибки. Не так давно нашли связанный с этим баг в спецификации (спустя 10 с лишним лет после ее выхода). При этом она используется в софте для автомобилей (потому что Аду туда пихать слишком дорого, для самолетов это оправданно, а тут - да водятлы ж и так пачками дохнут, никто и не заметит)00) Ну то есть заебись так, использовать нелогичный (внутреннне противоречивый) инструмент для таких задач. Вот реально - если бы дома строили программисты, то первая же присевшая на подоконник птичка разрушила бы весь город (или как там в оригинале было).
Аноним 08/04/18 Вск 14:33:03  1170124
>>1169981
А, да, о чем это я. Раз тут кложу кто-то реквестировал, на ней это будет примерно так:

(update-in entities [alien-id :health] - damage)

Где entities - это хэшмап из айдишников в хэшмапы со свойствами энтитей. Ну жсон видел? То же самое. Находим среди entities энтитю с нужным айди, находим у нее поле health, вычитаем из него дамаг. Это возвращает новую версию entities, но из-за того, что все иммутабельное (не изменяется), мы ничего не копируем, а просто добавляем новую ноду и ставим ссылку на старую часть entites, которую мы не трогали. Так ты, например, можешь иметь 10 копий всего игрового мира с разными хп у твоего алиена, но занимать места в памяти все десять штук будут столько же, сколько одна штука. Профит. Если у тебя, например, сетевая игра, то ты можешь хранить все состояние для последних 10 кадров и интерполировать в ожидании инпута из сети, а когда инпут пришел - взять любое из прошлых состояний и пересчитать нынешнее с учетом инпута. С мутабельностью пришлось бы все копировать - а тут это просто сразу работает как надо. Ну и ты легко можешь делать дампы всего игрового мира (для сохранений, например), можешь пересылать его по сети, что угодно короче - это просто данные, а не размазанный тонким слоем по всей программе стейт, который ты хуй достанешь из своих сотен классов. Уловил?

Алсо, все вменяемые современные клиент-сайд фреймворки используют такую же модель, гугли redux, например.
Аноним 08/04/18 Вск 14:34:48  1170125
>>1170112
>У нас тесты и по неделе гоняются
Генеративные надеюсь?
Аноним 08/04/18 Вск 15:00:22  1170136
>>1170125
>Генеративные
Дегенеративные.
Аноним 08/04/18 Вск 15:14:24  1170140
>>1170124
>Так ты, например, можешь иметь 10 копий всего игрового мира с разными хп у твоего алиена, но занимать места в памяти все десять штук будут столько же, сколько одна штука
>десять штук будут столько же, сколько одна штука
Что я, блядь, читаю?
Аноним 08/04/18 Вск 15:29:07  1170143
>>1170140
Очевидно, что он проебался с объяснением. Занимать будет почти столько же (для больших "миров").
Аноним 08/04/18 Вск 15:31:52  1170144
>>1170143
Я таки всё равно не понял, он списки для себя открыл и обращение по ссылке, или что?
Аноним 08/04/18 Вск 16:32:35  1170165
>>1170144
Ахаха, так его, кложуриста мамкиного.
Аноним 08/04/18 Вск 17:06:00  1170176
>>1170144
https://en.wikipedia.org/wiki/Persistent_data_structure
Аноним 08/04/18 Вск 17:26:06  1170188
изображение.png (12Кб, 1586x262)
Правильно я понял, что мне к вам с этим вопросом? В пхп-треде тема всё же немного другая.
Аноним 08/04/18 Вск 17:47:44  1170200
>>1170140
Анон, возьми за привычку четко формулировать свой вопрос, если тебе что-то непонятно. "яннп чоблядь?" - это не вопрос, а признание собственной беспомощности.

>>1170143
Нет. Пидору привет.

>>1170144
>Я таки всё равно не понял
В таких случаях я обычно перечитываю текст еще раз и формулирую, что именно мне непонятно. Брат жив, батя одобряет, попробуй. Алсо, стыдно путать хэшмапы со списками, анон.

Аноним 08/04/18 Вск 17:49:11  1170201
>>1170188
Все верно. Геттеры и сеттеры не нужны; это антипаттерн. Делают их просто потому что так исторически сложилось это tldr объяснение. Привыкай, анон, добро пожаловать.
Аноним 08/04/18 Вск 17:50:17  1170204
>>1170200
>признание собственной беспомощности
Конечно я, блядь, беспомощен, понять как что-то, что требует 10X памяти уместится в X памяти. Это что-то из квантовых вычислений?
Аноним 08/04/18 Вск 17:56:45  1170208
>>1170176
Так это нихуя не объясняет того, как он будет уместит десять объектов в объём, умещающий один объект. И я уже не говорю про своеобразный "контроль версий", который будет вносить оверхед и как будет охуенно потом разбираться какие изменения принадлежат какому моменту.
Аноним 08/04/18 Вск 18:15:27  1170219
>>1170208
Естественно, он передёргивает.
Он же лиспер.

И тут надо понимать, что иммутабельные объекты и классическое ооп - это музыка из разных опер.
Аноним 08/04/18 Вск 18:15:49  1170220
>>1170201
Лол. Даже САМ использует геттеры.
Если не написать get в имени функции то НИЩИТОВА, ага.
Аноним 08/04/18 Вск 18:28:59  1170234
>>1170220
>САМ
Откуда оно вообще взялось?
И зачем его форсить?
Аноним 08/04/18 Вск 18:33:43  1170239
>>1170204
фейспалм.пнг
Попробуй все-таки перечитать пост и ссылку на википедию, которую тебе выше кто-то кинул. Я уверен, что на самом деле ты вовсе не глупый, просто поленился вникнуть в написанное.

>>1170208
См. выше. Тебе на русском покидать ссылок по теме?

>>1170219
Я и не лиспер, лол. Алсо, на классическое ооп иммутабельные объекты как раз ложатся прекрасно.
Аноним 08/04/18 Вск 18:34:13  1170240
>>1170220
Не ебу, что за САМ, и мне, если честно, похуй. По теме есть чо?
Аноним 08/04/18 Вск 18:37:54  1170243
>>1170201
>Геттеры и сеттеры не нужны
Ruby FTW
Аноним 08/04/18 Вск 18:42:00  1170247
>>1170188
Что бы я мог наследовался от твоего класса и мог поменять поведение твоих функций.
Аноним 08/04/18 Вск 18:57:28  1170256
>>1170247
>наследоваться от data class-ов
Ну может быть.
>поведение в data class-ах
Вон из профессии.
Аноним 08/04/18 Вск 18:58:07  1170257
>>1170239
Ты сам-то её читал? Там ни слова не сказано о том, какой магией достигаются описанные тобой свойства. Так что либо заснуть 100 байт в десять байт, либо иди нахуй.
Аноним 08/04/18 Вск 18:58:22  1170258
>>1170239
>на классическое ооп иммутабельные объекты как раз ложатся прекрасно
Иммутабельные объекты ведут к деградации и объектам как контейнерам функций без поведений. Это не живые сущности, а процедуры, которые зачем-то вложили в объекты.
Аноним 08/04/18 Вск 18:58:46  1170259
>>1170258
То есть Егорка от одной крайности - объекты как данные - перешел к другой крайности.
Аноним 08/04/18 Вск 19:06:18  1170264
>>1170240
По какой теме?
Геттеры не могут быть плохими или хорошими. Могут быть не очень удачные паттерны.
Отдавая данные ты:
1. будешь писать больше кода, который что-то делает с этими данными, вместо того чтобы объект сам с ними делал что-то
2. нарушаешь инкапсуляцию объекта, потом будет непросто изменить объект, потому что у тебя куча зависимостей торчит наружу.
Аноним 08/04/18 Вск 19:10:11  1170267
>>1170264
То есть тут как и во всем нужен баланс. Используя геттеры получается более гибкая, но и более сложная архитектура.
С другой стороны не всегда получается заменить доступ к данным на методы, а писать десятки методов вместо одного геттера тоже не самая лучшая идея.
Аноним 08/04/18 Вск 20:23:30  1170321
>>1170257
Конечно сказано. И в моем посте я это описал. За магией, кстати, иди в /sn, а тут доска про программирование - ты точно туда зашел?

>>1170258
>живые сущности
Анон, ты биолог? Что у тебя там за живые сущности? Мы тут про разработку софта разговариваем, а не про живые сущности.

Я уж молчу про то, что ты путаешь статические классы с иммутабельными. Читни-ка thinking in java какой-нибудь для начала.
Аноним 08/04/18 Вск 20:27:25  1170325
>>1170264
>По какой теме?
По теме поста, на который ты отвечал.

Оба твои пункта используют неверные предпосылки из которых, кстати, сразу видно, что опыт ооп-проектирования у тебя ограничивается чтением статеек и воспроизведением прочитанного без критического осмысления, поэтому обсуждать их не вижу смысла. Анон выше уже тащем-то ответил: >>1170256
>Вон из профессии.
Аноним 08/04/18 Вск 20:57:05  1170353
Жырнота.jpg (68Кб, 500x490)
>>1170321
>Конечно сказано. И в моем посте я это описал
Пруфов, конечно же, не будет. Я всё ещё жду 100 байт умещённых в 10.
Аноним 08/04/18 Вск 20:58:37  1170354
>>1170325
>ко ко
очень содержательный пост
Аноним 08/04/18 Вск 21:08:36  1170359
>>1170321
живые сущности это объекты, которые изменяются в течении жизни. мертвые сущности - это иммутабельные объекты.
любой иммутабельный объект можно заменить процедурой, которая вычисляет результат. нет никакого смысла использовать оператор new и выделять память в куче.
собственно, большинство иммутабельных библиотек так и делает.
Аноним 08/04/18 Вск 21:21:46  1170369
>>1170359
ЖИВЫЕ ОБЪЕКТЫ
МЕРТВЫЕ ОБЪЕКТЫ
ЖИВАЯ ВОДА


Где тут можно зарядить воду у Оракула?
Аноним 08/04/18 Вск 21:22:00  1170370
>>1170359
я имел ввиду классы типа
class Sum
{
int a, int b;

public int intValue() { return a + b; }
}

Егорка очень любит такие "объекты".
Аноним 08/04/18 Вск 21:22:46  1170371
>>1170369
МУТАБЕЛЬНЫЙ ОБЖЭКТ
Аноним 08/04/18 Вск 21:30:15  1170374
>>1170371
Егор Кашпировский, плз.
Аноним 08/04/18 Вск 21:52:12  1170386
Люди считающие что объекты должны быть иммутабельными имеют не ООП мышление, а функциональное мышление.
Аноним 08/04/18 Вск 22:45:46  1170419
>>1170353
Пруфов чего? Перечитай мой пост, анон, - у меня нет libastral и я не знаю, что тебе непонятно.

>>1170354
Это называется "смотришь в книгу - видишь фигу".

>>1170359
>любой иммутабельный объект можно заменить процедурой
Эм, ну вообще любую структуру данных (и все ее возможные инстансы) можно заменить функциями, да. Например, любой секвенциальный дататайп может быть представлен как частичное применение fold. Это называется zoetic data. Вот только при чем тут это? Анон, ты немного запутался. Погугли, что такое "data class" (алсо pojo или java bean).

Алсо, про "объекты, которые изменяются в течение жизни" я буквально парой постов выше уже писал. Там вон анон как раз не может to comprehend что такое structural sharing - может ты тоже пост прочитаешь и ему поможешь разобраться?

>>1170370
Это не иммутабельный объект, мимокапитан.
Аноним 08/04/18 Вск 22:47:09  1170420
>>1170386
Нет никакого "ооп мышления" или "функционального мышления". Есть прагматизм и здравый смысл. Если что-то дает лучший результат, то это что-то нужно использовать. Все просто.
Аноним 08/04/18 Вск 22:52:30  1170424
>>1170420
>Нет никакого "ооп мышления" или "функционального мышления"
>Нет никаких эксравертов и интровертов
>Нет никаких технарей и гуманитариев
>Нет никаких правшей и левшей
>Нет никаких гомосексуалов и гетеросексуалов
Аноним 08/04/18 Вск 22:57:37  1170427
>>1170419
>нет final
>Это не иммутабельный объект РРЯЯЯ
Аноним 08/04/18 Вск 22:58:50  1170428
>>1170419
>ну вообще любую структуру данных (и все ее возможные инстансы) можно заменить функциями, да
А вот объект не заменишь.
Аноним 08/04/18 Вск 23:07:29  1170432
>>1170428
Объект в идеале это и есть функция. А точнее замыкание. Объект принимает сообщение и отвечает на него.
Аноним 08/04/18 Вск 23:17:12  1170444
>>1170432
>Объект в идеале это и есть функция.

Я за это ненавижу js.
Аноним 08/04/18 Вск 23:22:36  1170447
>>1170444
В js не объект есть функция, а функция есть объект. И это разные вещи.

Аноним 08/04/18 Вск 23:27:11  1170450
>>1170444
>ненавижу
Много ума не надо.
Аноним 08/04/18 Вск 23:34:44  1170455
>>1170447
> функция есть объект.

Объект с переопределяемым контекстом - не объект, а функция, ссори.
Аноним 08/04/18 Вск 23:50:07  1170462
>>1170455
function x(){}
x.bind(x)

Удачи.
Аноним 09/04/18 Пнд 00:07:38  1170467
>>1170462

function x(){}
x.bind(x)
x.apply()

Пффффф, взял и переопределил. Чем это от передачи параметров для функции отличается? А, ничем!

Объект на то и объект, что имеет свой собственный, непереопределяемый (но изменяемый) контекст.
Аноним 09/04/18 Пнд 00:14:56  1170472
>>1170467
>Пффффф, взял и переопределил
Ты не знаешь js.
После
function x(){}
x = x.bind(x)
Ты уже не можешь переопределить this у функции. Никак.
Аноним 09/04/18 Пнд 00:18:14  1170474
>>1170467
>Чем это от передачи параметров для функции отличается? А, ничем!
Вот именно, что посылка сообщений объекту , ничем не отличает от передачи параметров фкнкции. более того, в динамических языках, любая посылка сообщения это есть функция лукапа.

obj.method(x) // obj('get', 'method')('call', obj, x)
obj.field = x // obj('set', 'field', x)
Аноним 09/04/18 Пнд 00:31:22  1170480
о.jpg (90Кб, 1783x601)
>>1170472

Нет, это ты не знаешь, или неточно формулируешь. Apply на пике переопределяет контекст.
Аноним 09/04/18 Пнд 00:35:33  1170483
>>1170480
x = x.bind(x)
Аноним 09/04/18 Пнд 00:38:29  1170485
>>1170480
>на пике
>this.y
>console.log(y)
Ору с этого дебила.
Аноним 09/04/18 Пнд 00:44:36  1170488
>>1170485

Можешь орать и дальше, но ты связываешь контекстом не функцию, а ссылку на функцию. Это две разные вещи.
Аноним 09/04/18 Пнд 06:12:58  1170552
>>1170419
Пруфов того, что объект, в 10 байт ты уместишь сто байт, очевидно. Ты же не в астрале где-то хранишь старые данные.
Аноним 09/04/18 Пнд 06:54:46  1170562
>>1170552
Ты что, не знаешь о концепции бесконечного сжатия? Заводится пизданическая база данных, куда сваливаются блобы, каждому присваивается статический айдишник, без коллизий (например хэщ+контрольная + сумма+размер+еще что-то, но так, чтобы два одинаковых блоба в бд не дублировались). Все. Вот этот айдишник и есть итоговый размер сжатых данных.
Аноним 09/04/18 Пнд 17:27:09  1170792
>>1170424
Ну, все верно, за исключением правшей и левшей - они таки есть.

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

>>1170428
Анон, тебе бы основы программирования подучить. Как уже выше сказали, объекты - это синтаксический сахар для замыканий или наоборот :p. JS тут ни при чем.

>>1170552
Еще раз призываю тебя перечитать изначальный пост и статью на википедии, которую тебе скинули. Ты уже вторые сутки бьешься, анон, и не можешь понять довольно элементарного алгоритма.
Аноним 09/04/18 Пнд 19:01:36  1170843
index.jpg (5Кб, 207x243)
>>1170792
>объекты - это синтаксический сахар для замыканий
Аноним 09/04/18 Пнд 19:43:55  1170858
>>1170843
Всё так. В начале этой или предыдущей ветки давались ссылку на серию публикаций, в которой это разжевывается.
Аноним 09/04/18 Пнд 19:49:23  1170861
24508831.png (39Кб, 310x240)
>>1170792
>не можешь понять довольно элементарного алгоритма
>уместить 10х объёмов данных в 1х объёме данных
Аноним 09/04/18 Пнд 19:52:15  1170864
>>1170858
с точки зрения жс-макаки - безусловно.
Аноним 09/04/18 Пнд 20:16:53  1170872
>>1170843
Один не писал в жизни ни одного компилятора и не понимает, что такое замыкания...

>>1170861
...другой уже вторые сутки не может понять, как работает structural sharing.

Нахуя так жить, пацаны?

Еще где-то тут на нулевой болтался тред, где чувак не мог rest-клиент к чатику написать. Ну как тут не стать адептом секты ПУЗЫРЯ АЙТИ, лол. Впрочем, студенты с зекача не показатель, конечно.
Аноним 09/04/18 Пнд 20:21:22  1170874
>>1170864
>Пук
Серия статей была про систему типов родственных java, c++, eiffel. Добавил этот комментарий, т/к боюсь без пояснения ты не поймешь, к чему это.
Аноним 09/04/18 Пнд 20:22:21  1170875
>>1170872
>Замыкание (англ. closure) в программировании — функция первого класса, в теле которой присутствуют ссылки на переменные, объявленные вне тела этой функции в окружающем коде и не являющиеся её параметрами.
>Объект в программировании — некоторая сущность в компьютерном пространстве, обладающая определённым состоянием и поведением, имеющая заданные значения свойств (атрибутов) и операций над ними (методов)[1].
Аноним 09/04/18 Пнд 20:27:43  1170877
>>1170875
Твой пост напомнил.

Правдин. Дверь, например, какое имя: существительное или прилагательное?
Митрофан. Дверь? Котора дверь?
Правдин. Котора дверь! Вот эта.
Митрофан. Эта? Прилагательна.
Правдин. Почему ж?
Митрофан. Потому что она приложена к своему месту. Вон у чулана шеста неделя дверь стоит еще не навешена: так та покамест существительна.
Аноним 09/04/18 Пнд 20:32:56  1170880
Господа, помогите решить диллему. У меня есть объекты типа StreamableVideo и VideoWriter. В первом есть функции возвращающие данные, а во втором определенный алгоритм, который вызывает эти функции и записывает данные.
Очевидно, что любой тут скажет, что лучше функцию записи переместить в сам StreamableVideo. Но я не знаю как это сделать.

это выглядит примерно так:
class StreamableVideo {
Stream GetStream1();
Stream GetStream2();
bool IsSomething;
}

и в VideoWriter
void Write(StreamableVideo v) {
if (v.IsSomething)
DoSomething(GetStream1()) else
DoSomething(GetStream2())
}

Проблема в том, что я хочу сделать декоратор поверх методов StreamableVideo, а если я засуну функцию Write в этот класс, то она будет вызывать свои методы и я не смогу сделать декорирование.
Это просто сделать через наследование. Но можно ли как-то обойтись без наследования?
Аноним 09/04/18 Пнд 20:33:47  1170881
>>1170877
Дурачок, это 2 совершенно разные концепции. Это как сравнивать теплое с мягким.
Аноним 09/04/18 Пнд 20:43:06  1170889
>>1170881
> Митрофанушка as is
https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
Аноним 09/04/18 Пнд 20:47:41  1170890
>ООП все отравляет, куда лучше иммутабельность. Оверхед, тормоза? Пфф, вот у меня в редуксе все отрабатывает моментально, за несколько секунд.
> Инкапсуляция объектов - зло. У объектов не должно быть интерфейсов, они просто контейнеры для данных...Что? Мой редьюсер глобального стейта это God Pattern? А если каждый редьюсер будет знать как обрабатывать свою часть стейта? Нет, это совсем не похоже на инкапсуляцию..
>Да вообще все иммутабельное можно заменить на функции. Да что ты пристал со своим быстродействием, будем считать каждый раз. Я скозал!

Теоретические кукаретики ITT
Аноним 09/04/18 Пнд 21:23:27  1170913
>>1170875
Лол, ну вот типичный представитель "ни в чем не шарю, но прочитал еще и русскую википедию и теперь сру на джвачах". Иди лабу делай, няш.

>>1170890
Сам себе придумал какой-то не имеющий отношения к реальности бред, сам над ним посмеялся. Ты бы лучше разобрался в сабже вместо того, чтобы фантазировать, а то у тебя какая-то страшная каша в голове.
Аноним 09/04/18 Пнд 21:24:40  1170914
>>1170872
>Нахуя так жить, пацаны?
Хуйня. Гораздо страшнее, что я в свои 30 каждый вечер читаю эти срачи. Уже хуй знает сколько лет. Все одно и то же. Все одни и те же. А у меня все горит и горит.
Аноним 09/04/18 Пнд 21:26:04  1170915
>>1170880
>диллему.
Дилемму.

>функцию записи переместить в сам StreamableVideo
Зачем?
Аноним 09/04/18 Пнд 21:33:35  1170919
>>1170914
>я в свои 30 каждый вечер читаю эти срачи
жизненно ;)
Аноним 09/04/18 Пнд 22:09:02  1170947
>>1170915
>Зачем?
Егорка советует так делать. смысл этого VideoWriter только в том, чтобы хранить алгоритм. Получается, что данные отделены от кода. Мне это не нравится.
Короче или получается так, или можно наоборот в StreamableVideo инжектить strategy с методами записи. В любом случае получается несколько классов. А с наследованием получается проще.
Аноним 09/04/18 Пнд 22:11:00  1170948
>>1170914
Удвою оратора выше. И тебя, соответственно, тоже удвою. Ну, правда срачами я бы это не назвал - тут все-таки скорее жанр "просвещение современной молодежи" впрочем, не очень успешное, как мы можем видеть.
Аноним 09/04/18 Пнд 22:44:51  1170960
>>1170948
Тебе самому бы не помешало подучиться, дед, раз ты не понимаешь разницы между захватом переменных в лямбдах и объектами в ООП.
Аноним 09/04/18 Пнд 22:54:22  1170967
>>1170960
Понимаю. Тебе самому бы не помешало подучиться, дед, раз ты не понимаешь эквивалентности между захватом переменных в лямбдах и объектами в ООП.
Аноним 09/04/18 Пнд 23:31:21  1170984
>>1170967
Да забей, объяснять что-то слесарю с синдромом Даннига-Крюгера, это та же история, что и со свиньями с апельсинами.
Аноним 09/04/18 Пнд 23:37:31  1170989
>>1170967
Вот это >>1170960 писал тебе не я, которому 30. А какой-то другой хуй. И да, он не прав.
Аноним 10/04/18 Втр 01:48:00  1171039
>>1170984
>думаешь что у кого-то синдром Даннига-Крюгера,
>а на самом деле он у тебя
Аноним 10/04/18 Втр 02:06:43  1171042
>>1171039
Ну вот распишу я тебе, как кодируются объекты через замыкание, или дам ссылку, где это расписывается - что тогда?
Аноним 10/04/18 Втр 02:18:09  1171045
>>1171042
Они не настолько умны, чтобы понять, что и объекты, и замыкания - это структуры данных + исполняемый код, в который при вызове передается указатель на эти структуры.

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

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

Это все равно, что говорить с кем-то о Боге. прежде чем начинать такие споры, стоит формализовать ваши понимания Бога и убедиться, что они одинаковы и выполняют\реализуют одни и те же вещи, а не какие-то абстрактные выраженные в вашей голове.
Аноним 10/04/18 Втр 02:35:50  1171052
>>1171042
какая разница как они кодируются. в большинстве языков лямбды это просто синтаксический сахар для обычных объектов.
дело в семантике, в области применения.
Аноним 10/04/18 Втр 05:18:10  1171056
Пошли маневры >>1171052.
Аноним 10/04/18 Втр 07:24:52  1171067
images (1).jpg (6Кб, 254x198)
>>1170872
>structural sharing
>Fat node
>Fat node method is to record all changes made to node fields in the nodes themselves, without erasing old values of the fields
Ты уже обосрался
>Path copying
>Path copy is to make a copy of all nodes on the path which contains the node we are about to insert or delete. Then we must cascade the change back through the data structure: all nodes that pointed to the old node must be modified to point to the new node instead. These modifications cause more cascading changes, and so on, until we reach to the root. We maintain an array of roots indexed by timestamp. The data structure pointed to by time t’s root is exactly time t’s data structure.
Ты опять обосрался.
>A modification
>Modifying a node works like this. (We assume that each modification touches one pointer or similar field.) If the node’s modification box is empty, then we fill it with the modification. Otherwise, the modification box is full. We make a copy of the node, but using only the latest values.(That is, we overwrite one of the node’s fields with the value that was stored in the modification box.) Then we perform the modification directly on the new node, without using the modification box. (We overwrite one of the new node’s fields, and its modification box stays empty.) Finally, we cascade this change to the node’s parent, just like path copying. (This may involve filling the parent’s modification box, or making a copy of the parent recursively. If the node has no parent—it’s the root—we add the new root to a sorted array of roots.)
Ты снова обосрался.
Натурально, ссылка, про которую ты второй день визжишь, описывает ебические оверхеды по памяти и нигде там не написано, что ты десять объектов сможешь хранить в одном. Пиздец у тебя каша в голове.
Аноним 10/04/18 Втр 07:35:13  1171071
>>1132025
Нормальный и политика - это уже взаимоисключения.
Аноним 10/04/18 Втр 08:09:44  1171079
Спршу здесь.
Объясните тупому, что такое ооп в правильном понимании? Это как в Java/c++ или смолтолк (ерлангг...)?
Аноним 10/04/18 Втр 09:07:39  1171092
>>1171079
В википедии же достаточно подробно и ясно все написано. Нет никакого правильного понимания, есть несколько различных подходов и их комбинаций.

Вот скажи, как правильно, демократия или монархия? И почему?
Аноним 10/04/18 Втр 09:16:59  1171094
>>1171092
>Вот скажи, как правильно, демократия или монархия? И почему?
Монархия правильнее, демократия - это загнивание и бездуховность.
Аноним 10/04/18 Втр 09:37:32  1171100
photo2017-09-21[...].jpg (196Кб, 810x1080)
>>1171094
Ну вот и поговорили
Аноним 10/04/18 Втр 09:48:13  1171103
>>1171100
Ох, сникерс. Я зашёл в супермаркет. Там толпа ребят с местной школы разбирали ящики сникерса. Я решил посмотреть причину такого наплыва и оказалось, что снизили цену до 10 рублей за штуку для почти вышедших из срока годности сникерсов. Я эту историю не добил, у неё нет заключения и поучительной концовки.
Аноним 10/04/18 Втр 09:50:17  1171106
photo2017-08-18[...].jpg (63Кб, 1047x578)
>>1171103
Эх жаль что я картинку с гачимучи тебе не поставил в ответ, наверняка тоже ахуительную историю получил бы.
Аноним 10/04/18 Втр 11:32:09  1171166
>>1171056
А все объекты кодируются в байтах.
Объект и байт это одно и то же!
Ты или пытаешься так уныло троллить, или ты и правда очень тупой.
Аноним 10/04/18 Втр 11:36:07  1171169
>>1171166
Ты прав бро, возвращаемся к теме топика.

http://www.yegor256.com/2017/07/11/how-to-redesign-equals.html
Аноним 10/04/18 Втр 12:06:39  1171190
>>1171166
У тебя еще и проблема в понимании различии множества и элемента множества.
Аноним 10/04/18 Втр 12:07:54  1171191
>>1171094
В таком случае правильнее радикальный ислам, а ты неверный, и тебе стоит перерезать горло.
Аноним 10/04/18 Втр 13:39:55  1171224
>>1171166
Блядь, ну и дебил же. Третий вариант, что слово "кодировка"/"encoding" перегружено по значениям, и что ты просто не понял, что написано, тебе не приходил в голову?

Ты бы сначала загуглил бы тему, на ключевые слова, но нет, ты предпочтешь бегать ИТТ с засранными подштанниками.

Продолжай.

Вначале мне было больно от твоего невежства и обскурантизма, теперь это даже забавно.
Аноним 10/04/18 Втр 14:51:10  1171244
15095613923521.jpg (15Кб, 201x283)
>>1170947
>данные отделены от кода. Мне это не нравится
Аноним 10/04/18 Втр 14:53:59  1171250
>>1170984
>>1170989
:3

>>1171045
Блядь, анон, а ты на этом явно собаку съел. Постом ниже ровно то, что ты описывал, лол. Апплодирую стоя.

>>1171052
>дело в семантике
Так тебе и говорят о том, что как раз семантика у них одинаковая, дурилка ты мелкобуквенная.
Аноним 10/04/18 Втр 14:55:53  1171252
>>1171067
На третьи сутки он таки смог прочитать статью, правда ничего не понял, лол.

>десять объектов сможешь хранить в одном
>Пиздец у тебя каша в голове.
Посоны, нувыпонели. Проигрываю в голос.
Аноним 10/04/18 Втр 15:06:03  1171258
>>1171079
По сути вопроса тебе уже ответили; добавлю, что одна из основных проблем ооп как раз в том, что никто не знает, что же на самом деле это "ооп" значит.

>>1171169
>2018
>ооп-чудики все еще не знают проверить два объекта на равенство
Эх.
Аноним 10/04/18 Втр 15:07:23  1171259
>>1171252
>Так ты, например, можешь иметь 10 копий всего игрового мира с разными хп у твоего алиена, но занимать места в памяти все десять штук будут столько же, сколько одна штука.
Ну это уже пиздец толстота. Ты сам-то хоть раз попробовал бы натянуть свою охуительную идею натянуть на один из предложенных на твой же педивикии вариантов. Чисто в образовательных целях.
Аноним 10/04/18 Втр 17:37:15  1171305
>>1171259
>свою охуительную идею
>свою
Проиграл. Ты с какой деревни, чебурек?
Аноним 10/04/18 Втр 17:40:04  1171307
decorator hell.jpg (33Кб, 476x287)
>>1170880
ДЕКОРАТОР САМ СЕБЯ НЕ ЗАДЕКОРИРУЕТ

Егорка называет это декораторами, но по сути это не что иное как деревья выражения (expression tree), которые эвалуируются и возвращают какой-то результат.
В разработке игор я тоже часто использую этот шаблон в виде behavior tree.
Аноним 10/04/18 Втр 17:56:07  1171312
>>1171307


Что это за извращения с тернарными операторами? А ну унеси обратно.
Аноним 10/04/18 Втр 18:05:21  1171315
>>1171312
Ты что, не слышал что if - это плохо?
Алсо, По другому в конструкторе нельзя. Приходится добавлять пустые узлы ради ЭЛЕГАНТНОСТИ.
Аноним 10/04/18 Втр 18:10:27  1171318
>>1171315
>Алсо, По другому в конструкторе нельзя.

Разве в джяве такая шняга не :

> condition && (result)

возвращает нужный ресюльт?
Аноним 10/04/18 Втр 18:13:14  1171320
>>1171318

А не, у него другое, я в глаза продолбился с этими переносами. Все равно, выглядит как говно.
Аноним 10/04/18 Втр 18:31:38  1171326
>>1171305
С той, что твоему селу за щеку даёт, а что? Пруфы-то будут как ты в одном объекте десять таких умещаешь, или так и будешь дальше позориться?
Аноним 10/04/18 Втр 18:36:59  1171332
>>1171326
Хорошо, давай я объясню тебе так, чтобы даже даун из пту понял, но только если ты скажешь "пожалуйста" :3
Аноним 10/04/18 Втр 18:48:33  1171338
>>1171332
Мне кажется тебе залупы за воротник хватит.
Аноним 10/04/18 Втр 19:00:08  1171342
>>1171338
Кхм. Господа, призываю вас поднять уровень дискусси на более приемлемый уровень.
Аноним 10/04/18 Втр 19:26:36  1171346
>>1171342
Так дискуссии-то нету. Студентик уже третьи сутки тут бьется и просит, чтоб ему объяснили, как работают persistent data structures (и, на секундочку, сжатие информации в целом как явление). В ответ на резонные предложения сформулировать, с чем именно у него трудности, сыплет гринтекстом и мамкоебством. Ну, это издержки анонимности, что тут еще сказать - всех дураков ведь все равно не перебанишь. Один вон тут не может понять, чем замыкания отличаются от объектов ничем, ему всем тредом объясняют. Другой не верит в эквивалентность лямбда- и SK-исчислений - как так без аппликаций-то, нипанятна! Третий вот не может даже вообразить, как 100 кб повторяющихся данных ужать в 10 кб. Было бы очень смешно, если бы это все был один и тот же вытекающий из нуботреда шизик, лол. Щито тут поделать, сайт все-таки развлекательный, а не образовательный - матан-капчи не завезли-с.
Аноним 10/04/18 Втр 19:31:53  1171351
>>1171346
Это не тут доказываешь что байты, лямбды и объекты это одно и то же?
Аноним 10/04/18 Втр 19:36:55  1171353
>>1171351
Про байты не слышал, а очевидное для любого, кто изучал CS утверждение об эквивалентности лямбд и объектов тут озвучили минимум три разных анона, если у меня детектор не барахлит, и я их, разумеется, поддерживаю. Утверждать обратное - это примерно как с пеной у рта доказывать, что Земля плоская. Ну, то есть смешно конечно, но в то же время немного грустно.
Аноним 10/04/18 Втр 20:04:44  1171371
>>1171353
посоны, я мимо проходил, киньте прочитать на тему
> утверждение об эквивалентности лямбд и объектов
Аноним 10/04/18 Втр 20:15:22  1171374
narkoman.jpg (28Кб, 316x310)
>>1171346
>бьется и просит, чтоб ему объяснили, как работают persistent data structures (и, на секундочку, сжатие информации в целом как явление)
Лол. Ты делаешь какие-то убогие заявления про хранение десяти объектов, которые места занимают как один, а потом удивляешься, что тебе ссут на лицо.
Ты сам-то свои охуительные истории читал? Хранить предыдущие версии объекта, архивировать их, а потом ещё в рантайме интерполировать по ним! Нахуй скорость, нахуй память, а потом ещё и сборщик мусора окончательно добьёт твою гениальную систему.
Аноним 10/04/18 Втр 22:28:10  1171436
>>1171371
Вот тебе по рабоче-крестьянски:

class Multiplier {
int factor = 2;
int op(int i) {return factor x i}
}

Доходчиво?



Сам класс - набор полей и методов по сути отображение множества имен в значения, и анонимные функции, та же функция, на примере объявленного класса:
Multiplier :: Names -> Int | Int -> Int

С переходом к объектам немного сложнее, т/к требуется вводить Y-combinator (тоже функция) для конструирования значений. Если это сделать, получим:

new Multiplier().op(2) ~ Y[Multiplier]('op')(2)

Подробнее здесь http://www.jot.fm/issues/issue_2002_09/column4.pdf
Аноним 10/04/18 Втр 22:41:03  1171444
>>1171436
инкапсуляция уровня pr
Аноним 10/04/18 Втр 22:45:28  1171447
>>1171444

Инкапсулировал тебе за щечки, няша.
Аноним 10/04/18 Втр 22:51:41  1171449
Какого хуя ещё не было?
https://jug.ru/2018/04/bugayenko/
Аноним 10/04/18 Втр 23:29:14  1171458
>>1171371
SICP
@
HTDP

А вообще, стыдно классику не знать: https://ru-lambda.livejournal.com/27669.html
Вы небось и про xkcd не слышали, кек.
Аноним 10/04/18 Втр 23:30:26  1171460
>>1171374
>Хранить предыдущие версии объекта, архивировать их, а потом ещё в рантайме интерполировать по ним!
У пхп-макаки КУЛЬТУРНЫЙ ШОК, спешите видеть. Проигрываю в голос.
Аноним 10/04/18 Втр 23:35:23  1171463
>>1171436
По рабоче-крестьянски, кстати, можно давать ссылку сюда: https://doc.rust-lang.org/book/first-edition/closures.html#closure-implementation - но тут, как ты понимаешь, это не особо поможет, кек.
Аноним 11/04/18 Срд 00:03:38  1171472
>>1171458
>>1171463
не хочется разрушать твой дивный манямир, но кто-то должен это сделать. предметы характеризуются не по материалу, из которого сделаны, а по признакам.
табуретка и бумага сделаны из одного материала, но у них разные признаки.
есть ли у лямбд признаки объектов, например наследование, инкапсуляция и полиморфизм? можно ли создать новый объект из лямбды? есть ли у лямбды члены?
Аноним 11/04/18 Срд 00:26:06  1171477
>>1171472
Не спутал ли ты объекты с классами?
Аноним 11/04/18 Срд 01:08:33  1171490
>>1171472
>можно ли создать новый объект из лямбды?
Да

>есть ли у лямбд признаки объектов, например наследование, инкапсуляция и полиморфизм?
Да, читай книжечку A Theory of Objects - там всё объясняется.

Мимо этот >>171436
Аноним 11/04/18 Срд 02:39:10  1171507
>>1171490
зачем мне твоя высосанная из жопы "теория" про какие-то абстрактные объекты в вакууме, дурачок?
наследуй мне лямбду в java.
Аноним 11/04/18 Срд 02:46:17  1171508
сам факт того, что есть категории объектов и лямбд говорит уже о том, что у этих предметов разные признаки. иначе бы они назывались одной категорией.
семантически, синтаксически, функционально это 2 совершенно разные вещи.
Аноним 11/04/18 Срд 04:18:16  1171528
>>1171507
сначала ты продемонстрируешь наследование одного объекта от другого в своей жаве. может потом поймешь, что ты путаешь инстансы с классами.
Аноним 11/04/18 Срд 07:04:09  1171535
>>1171460
>пхп-макаки
Чини детектор, маня.
Аноним 11/04/18 Срд 07:24:57  1171536
hqdefault.jpg (11Кб, 480x360)
>>1171460
>PHP
>Рантайм
Аноним 11/04/18 Срд 11:16:04  1171591
>>1171528

Этот ебабо >>1171507 не может лямбду от замыкания отличить, куда уж там.
Аноним 11/04/18 Срд 11:34:44  1171596
>>1171507

cat Main.java

public class Main {
@FunctionalInterface
public interface Sosi {
void sosi();
}

@FunctionalInterface
public interface SosiHui extends Sosi {
default void hui() {
System.out.println("bydlo");
}
}

public static void main(String ... args) {
}
}
Аноним 11/04/18 Срд 12:34:15  1171616
>>1171536
Еще какой, с гарбаж коллехтуром, все дела.
Аноним 11/04/18 Срд 12:37:31  1171617
>>1171596
Это ты класс отнаследовал, а тебя попросили объект.

Г-ди, сколько жира и сектантской незамутненности в этих тредах, обожаю их. Егор - настоящий санитар леса.
Аноним 11/04/18 Срд 12:40:19  1171618
>>1171616
Зачем гарбаж коллектор скрипту который выполняется за секунду и уничтожается весь сразу?
Аноним 11/04/18 Срд 12:58:24  1171624
>>1171596
А причем тут лямбды? Лямбды - это функции. А у тебя классы.
Ты знаешь что такое функция?
Аноним 11/04/18 Срд 13:00:49  1171626
>>1171591
Потому что замыкание - это признак лямбд. А лямбды - это анонимные функции.
Аноним 11/04/18 Срд 13:03:36  1171627
>>1171626
>замыкание - это признак лямбд
Ничоси!
Аноним 11/04/18 Срд 13:47:35  1171641
Бля, борщееды ебаные, даже в рабочее время срутся.
Аноним 11/04/18 Срд 13:57:30  1171644
>>1171641

Да я даже ночью в кровати срусь
Аноним 11/04/18 Срд 15:36:24  1171727
>>1171617 >>1171624
Вот же подрыв Митрофанушек.

>ты класс отнаследовал, а тебя попросили объект.
Вот тут подробнее, про наследование объектов.

>сколько жира и сектантской незамутненности
Это даннинг-крюгер говорит в тебе. Алсо, в чем выражается секстанство?

>Лямбды - это функции. А у тебя классы.
> эта дверь - прилагательная. а та дверь - существительная
Какие классы, дебил? Интерфейсы с аннотацией @FunctionalInterface, про семантику которых сам можешь почитать


Sosi ololo() {
SosiHui sosi = () -> { System.out.println("ebat' debil"); };
Sosi dada = sosi::hui;

return System.currentTimeMillis() % 2 == 0 ? sosi::hui : sosi;
}

public static void main(String ... args) {
Main ololo = new Main();
ololo.ololo().sosi();
}
Аноним 11/04/18 Срд 15:39:31  1171731
>>1171508
>семантически, синтаксически, функционально
вау-вау, три умных слова, в значении которых едва ли разбираешься. Потише братишка.
Аноним 11/04/18 Срд 16:00:48  1171752
>>1171472
>>1171508
Проигрываю в голос с мелкобуквенного с конкретным мышлением.

>>1171535
Починил, макака :3

>>1171536
>>1171618
Цирк-шапито, лол. Ни разу не видел столько идиотов в одном месте.

>>1171617
Ну, строго говоря, в ООП классы - это объекты, мимокапитан.

>>1171624
>Лямбды - это функции. А у тебя классы.
И еще раз в голосину.
Аноним 11/04/18 Срд 16:41:28  1171759
>>1171752
ты какой-то тупой. ты не разбираешься в элементарной семантике языка.
тебе говорят, что функции - это функции, а объекты - это объекты. у них разные признаки.
а ты начинаешь нести какую-то чушь про двери. нет, нет, пажаждите, они хранятся в памяти как сигналы электричества, а уголь на котором работает электростанция производит лямбды! вот оно как!
Аноним 11/04/18 Срд 16:46:44  1171761
>>1171759
короче, тут просто речь о разных уровнях абстракции. лямбы и объекты это высшие понятия, конкретно на языке программирования лямбы делаются как сгенерированные классы и объекты. в еще более низкой абстракции сами объекты это структуры данных и функции. еще ниже это ассемблерный код и т.д.
Аноним 11/04/18 Срд 17:50:06  1171788
http://www.yegor256.com/2018/04/10/learning-by-refactoring.html
Аноним 11/04/18 Срд 18:54:49  1171812
15166515935880.jpg (54Кб, 808x721)
>>1171759
>а ты начинаешь нести какую-то чушь про двери
Чего блядь?
Аноним 11/04/18 Срд 18:55:29  1171813
>>1171759
Тебе отвечают несколько человек, и почему-то ты игноришь эти посты

>>1171436
>>1171490
>>1171596
>>1171727

или что-то невнятное кукарекаешь в ответ.

Тебе (или твоему собрату по несчастью) уже давали ссылки, где на нужном уровне строгости доказывается эквивалентность (при известных допущениях).
Нет, продолжаются кривляния и споры на уровне персонажа Чеховского письма.
Аноним 11/04/18 Срд 19:15:50  1171819
Посоны, а давайте запилим отдельный designated тред для унижения птушников и прочих оопущенцев?

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

Только надо будет этих самых птушников туда как-то заманивать. На что они обычно слетаются? Может vue.js как-то в шапку треда впендюрить? Типа, "клуб по вкатыванию в айти через изучение жс на хардкор уровне", что-то такое.
Аноним 11/04/18 Срд 19:24:54  1171821
>>1171813
ты даун тупорылый. как-же ты заебал своей тупостью. я тебе уже сказал что это просто полезные абстракции. все можно свести к сложению и умножению.
нет, манька продолжает что-то верещать про идентичность объектов и функций с ДОПУЩЕНИЯМИ.
с допущениями я ебал твою мамку.
Аноним 11/04/18 Срд 19:36:48  1171830
>>1171821
С ДОПУЩЕНИЯМИ - да, специально оставил, когда редактировал, загадал что подорвешься на этом. Содержательно же ты не способен ответить.

cat Main.java && javac Main.java && java Main

public class Main {
interface FooBarable {}
static class Foo implements FooBarable {}
static class Bar extends Foo {}

@FunctionalInterface
interface Makeable {
FooBarable apply();
}

@FunctionalInterface
interface FooMakeable extends Makeable {
Foo apply();
}

@FunctionalInterface
interface BarMakeable extends Makeable {
Bar apply();
}


public static void main(String... args) {
FooMakeable fooMaker = () -> new Foo();
BarMakeable barMaker = () -> new Bar();

Makeable maker = fooMaker;
System.out.println(maker.apply()); // ау, таков синтаксис вызова

maker = barMaker;
System.out.println(maker.apply());
}
}
Main$Foo@27082746
Main$Bar@66133adc
Аноним 11/04/18 Срд 20:01:26  1171840
>>1171830
опять ты какую-то нерелейтед чушь пишешь.
язык программирования - это в первую очередь язык, знаковая система. в этой знаковой системе есть разные категории, вроде класса, полей класса, объектов, методов, анонимных методов и т.д.
есть определенная грамматика, которая диктует структуру этого языка. например, поля класса могут объявляться внутри класса, лямбды могут объявляться внутри методов класса и т.д.
нельзя просто так взять и заменить объекты лямбдами, потому что какая-то манька придумала свои определения объектов и решила что это одно и то же.
Аноним 11/04/18 Срд 20:23:41  1171854
Чёрч
>какая-то манька
Тьюринг
>какая-то манька
Дана Скотт
>какая-то манька
Лука Карделли
>какая-то манька

У Карделли отдельная глава, посвященная формальному выражению сигма-исчисление через лямбда-исчисление и наоборот, а этот >>1171840 продолжает что-то бубнить про грамматики, категории и знаковые системы.
Аноним 11/04/18 Срд 20:43:19  1171871
>>1171840

Но ведь неважно какая знаковая система, важно какие блямбды лежат в её основе!
Аноним 11/04/18 Срд 20:46:05  1171873
>>1171871
Принимай дозор, анончик. Мой дозор окончен, у меня еще дела есть.
Аноним 11/04/18 Срд 21:20:08  1171898
f932309542.jpg (22Кб, 413x395)
>>1171854
Проиграл, спасибо.
Аноним 11/04/18 Срд 21:20:41  1171899
spjJun06.8rot.jpg (1707Кб, 2136x3216)
>>1171840
>в этой знаковой системе есть разные категории
>категории
Значение знаешь?
Аноним 11/04/18 Срд 22:35:59  1171930
>>1171508
Подумай на досуге, так ли сильно отличаются на самом деле своими ПРИЗНАКАМИ - аттрибут от свойства, процедура от функции, процесс от потока, бургер от бутерброда, лимонад от сиропа, ты от дегрода.
Аноним 11/04/18 Срд 23:03:15  1171950
>>1171761

> лямбы и объекты это высшие понятия,

Что такое «высшие понятия»? Какие еще бывают понятия?
Аноним 11/04/18 Срд 23:17:25  1171960
>>1171950
ты с кем лямбду попутал?
Аноним 11/04/18 Срд 23:35:23  1171974
>>1171960

О чём ты? Я нипанимать, что стоит за «высшими понятиями»; если под этим термином подразумевается высшие уровни абстракции, то объясни: почему ставишь лямбда-счисление в один уровень с реализацией (объектами)? Маняматика ниже чем байтослесарня.
Аноним 12/04/18 Чтв 00:57:01  1172010
>>1171899
>Категория (от др.-греч. κατηγορία — «высказывание, обвинение, признак») — предельно общее понятие, выражающее наиболее существенные отношения действительности[1]. Изучение категорий заключается в определении наиболее фундаментальных и широких классов сущностей.
Аноним 12/04/18 Чтв 04:12:44  1172054
>>1171752
>Цирк-шапито, лол. Ни разу не видел столько идиотов в одном месте.
Ну в общем-то по другому ты ответить и не мог, я просто констатировал что ты ебантяй который не знает предметную область, а просто пиздит что-то лишь бы как-бы.
Аноним 12/04/18 Чтв 15:17:26  1172282
>>1171854
>выражению сигма-исчисление через лямбда-исчисление и наоборот
ты путаешь вещи. выразить что-то через что-то, это как выразить код на java переписав его на си.
ну да, код с лямбдами можно выразить как код без лямбд. это и без тебя всем понятно, потому что лямбды это просто сахар для объектов.
Аноним 12/04/18 Чтв 15:22:23  1172283
>>1171819
>Посоны, а давайте запилим отдельный designated тред для унижения птушников и прочих оопущенцев?
Этот тред уже есть. Только в нем пока что унижаются дурачки, смешивающие понятия из математики и языков программирования.
Аноним 12/04/18 Чтв 15:22:57  1172284
>>1172282
>лямбды это просто сахар для объектов
Ничоси!
Аноним 12/04/18 Чтв 16:24:20  1172333
>>1172054
Кретин малолетний, я вообще мимопроходил. Какой же ты выродок, лол.
Аноним 12/04/18 Чтв 16:24:43  1172334
>>1172283
Анонимная функция - это понятие из математики, а не программирования, я тебя правильно понял?
Аноним 12/04/18 Чтв 17:24:30  1172394
>>1172284
Ты находишься в /pr/. В программировании, и в частности java, лямбды это сахар для объектов.
Других определений лямбд я не знаю и честно говоря мне это не интересно.
Аноним 12/04/18 Чтв 17:53:23  1172409
>>1172283
ЯП и есть математика. Если конечно это не наколенные поделки уровня ЕО, в которых выражаются томления авторской души и эмпирические тыкания в существо вещей, подобно тому как глупенькие котята тыкаются в поисках мамкиной сиськи.
Аноним 12/04/18 Чтв 17:56:19  1172410
>>1172282
Речь о формальном математическом доказательстве, а не о размахивании руками и гуманитарном пиздабольстве. Вам в ПТУ рассказывали о способе доказательства эквивалентности множеств? Вот что - то в этом роде.
Аноним 12/04/18 Чтв 19:03:13  1172484
14315047902312.jpg (21Кб, 349x356)
>>1172394
>Других определений лямбд я не знаю
Аноним 12/04/18 Чтв 19:04:06  1172485
autism.jpg (22Кб, 312x360)
>>1172010
Аноним 12/04/18 Чтв 19:53:53  1172523
142831721621150[...].jpg (62Кб, 600x428)
А что если всё ООП - это то же процедурное программирование, в которым некоторые функции разделены на классы, у которых есть shared data?
Аноним 12/04/18 Чтв 20:11:08  1172530
>>1171899
Саймон уходи. Заодно Киселёва с собой прихвати.
Аноним 12/04/18 Чтв 20:39:07  1172539
>>1172523

Ты придумал модули; оо-парадигма использует эти идеи, добавляя инверсию контрол флоу, вот и всё.
Аноним 12/04/18 Чтв 20:48:15  1172547
>>1172523
Ты что, никогда не писал объектных систем на pure c?
Аноним 12/04/18 Чтв 20:49:03  1172549
>>1172530
Oleg - bog!
Аноним 12/04/18 Чтв 20:50:49  1172550
>>1172409
>>1172410
Настало время охуительных историй.
Программирование - это инженеринг. Программы перемещают байты в памяти. Больше они ничего не умеют делать. Все остальное - это полезные абстракции выработанные эмпирическим путем, чтобы упростить программирование.
Аноним 12/04/18 Чтв 21:01:58  1172555
>>1172550
>Программы перемещают байты в памяти. Больше они ничего не умеют делать.
Ловите байтоеба!

>полезные абстракции выработанные эмпирическим путем
>эмпирическим путем
Уточнишь, что именно было выработано эмпирическим путем? Может машина тьюринга, которая является (в известном приближении) моделью всех современных эвм? Или сборщик мусора? Может системы типов эмпирическим путем были выработаны? Или асинхронное программирование? Или концепция стрима? Правда, очень интересно, расскажи.
Аноним 12/04/18 Чтв 21:09:56  1172559
>>1172555
Все это было выработано эмпирическим путем.
Аноним 12/04/18 Чтв 21:11:14  1172560
>>1172550
И как ты перешел от обсуждения от ЯП и их связью с формальными системами/математикой к охуительным историям про программирование - это инжиниринг? С этим никто не спорит, но ты все же попытайся держать суть обсуждаемого вопроса, не подменяя его.

Аноним 12/04/18 Чтв 21:11:24  1172561
>>1172555
Для тебя, может быть, откровение, но довольно долго наука двигалась именно эмпирически, потому как математики тихо себе дрочили в уголочке и вообще на реальный мир им было довольно похуй. Это потом уже начали происходить откровения, когда внезапно оказалось, что у физиков и математиков всё сходится, да и моделирование нужно, потому что экспериментировать ДОРАХА.
Аноним 12/04/18 Чтв 21:11:51  1172562
>>1172559
Твоя математика берет уже готовое придуманное и бессмысленно пытается это рационализировать задним числом. Обычная бесполезная игра эти доказательства и теории.
Аноним 12/04/18 Чтв 21:16:56  1172565
>>1172549
>включает ~50 расширений Хаскеля для появления хоть какой-то вменяемой системы типов и уменьшения поноса тайпклассов вместо того, чтобы использовать нормальный язык типа Idris
Аноним 12/04/18 Чтв 21:17:53  1172566
>>1172555
https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D0%B1%D0%B5%D1%81%D0%BA%D0%BE%D0%BD%D0%B5%D1%87%D0%BD%D1%8B%D1%85_%D0%BE%D0%B1%D0%B5%D0%B7%D1%8C%D1%8F%D0%BD%D0%B0%D1%85
Всё это, с помощью миллиона двачеров с комплюхтэрами.
Аноним 12/04/18 Чтв 21:19:22  1172567
>>1172565
Как там 2020 (двадцать-двадцать)? Началось шевеление?
Аноним 12/04/18 Чтв 21:27:11  1172573
>>1172560
С тобой этого никто не обсуждал.
Я писал о лямбдах как о термине программирования.
Это зачем-то пришел в /pr/ с охуительными историями про математику.
Аноним 12/04/18 Чтв 21:59:03  1172581
>>1172539
Вменяемый анон, не топчи заповедник.

мимо автор нескольких тредов по ООП, которые доставляли не хуже егоротредов
Аноним 12/04/18 Чтв 22:22:49  1172597
>>1172581


>>1172523 - кун

Неужели правда тонко вышло?
Аноним 12/04/18 Чтв 22:25:42  1172599
>>1172573
Я вот чего не пойму, откуда ты такой нарисовался? Ты та мелкобуква, что добралась с мобильника до компьютера, или мимо другой?

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

Для технаря у тебя какие - то странные представления об истории информационных технологий.
Аноним 12/04/18 Чтв 22:26:53  1172600
>>1172597
Я никакой тонкоты, кроме постов полутора Семёнов не вижу.

мимо не семен
Аноним 12/04/18 Чтв 22:44:02  1172606
>>1172581

….

>>1172597

> Неужели правда тонко вышло?
Для повара в крошке-картошке вышло и правда тонко.
Аноним 12/04/18 Чтв 23:32:21  1172648
>>1172597
Я заподозрил в тебе семена, но в целом вброс норм.
Аноним 12/04/18 Чтв 23:55:39  1172657
>>1172559
Интересный у тебя манямирок, пустишь меня в него? :3

>>1172561
По теме треда есть чо?
Аноним 13/04/18 Птн 00:05:26  1172667
.jpg (14Кб, 342x401)
>>1131879 (OP)
Спасибо за сборник годных тем для срачей.
Сегодня вбросил в рабочий чат опусы Егорыча и с наслаждением наблюдал, как техлид-джавист двадцать минут рвался о том, какой Егорыч лох и неудачник, а затем другие бекендеры чуть не устроили потасовку на тему того, как бороться с нулами.
мимо-фронтендер
Аноним 13/04/18 Птн 00:20:45  1172673
>>1172667
На самом деле, это печально, в какой-нибудь кложа или руби тусовке идеи Егоры не прижигали бы столько анусов. То, что ваш джавист-техлид рвался не говорит ни в его пользу, ни в пользу аудитории Бугаенко вообще.
Аноним 13/04/18 Птн 00:43:50  1172677
А лично я считаю, что все вы здесь пидорасы. Я все сказал.
Аноним 13/04/18 Птн 01:20:50  1172686
>>1172673
На самом деле это говорит только о необучаемости программистов, о хуевой школе программистов вообще.
Потому что все пишет Егорка (кроме НУЖНО БОЛЬШЕ ДЕКОРАТОРОВ ДЕКОРАТОРЫ САМИ СЕБЯ НЕ ЗАДЕКОРИРУЮТ), вся эта критика была уже сказана всеми кому не лень еще в начале нулевых, причем намного более качественно.
Примечательно что каждое поколение программистов наступает на одни и те-же грабли.
Аноним 13/04/18 Птн 06:01:51  1172787
>>1172686

Тащемта нет. Все советуют просто слать ООП в пизду, а он хочет его использовать. НО ПРАВИЛЬНО.
Аноним 13/04/18 Птн 06:33:30  1172791
Нет чтоб код писать, накатали тут хуй пойми чего, хуесосы, блядь.
Аноним 13/04/18 Птн 08:41:16  1172798
>>1172565
Агдочка круче
Аноним 13/04/18 Птн 09:12:22  1172801
>>1172791
Согласен. Но ты тоже хуесос.
мимо хуесос
Аноним 13/04/18 Птн 11:01:52  1172824
4elik.jpg (21Кб, 630x330)
>>1172677

Очень интересно, продолжай.
Аноним 13/04/18 Птн 12:20:04  1172841
Узнаю местного шизика https://habrahabr.ru/post/353408/
Аноним 13/04/18 Птн 13:04:47  1172854
>>1172841

Коль скоро он проводит аналогии с реальным миром, этот пунктик неверен:

5. У элементов нет такого понятия как NULL. Вместо этого должен быть или 0, пустая строка, массив с одним элементом или пустая коллекция элементов.

У элемента в состоянии квантовой распутанности NULL состояние.

Выводы мне понравились, хотя в силу разных причин они не достижимы в реальном мире АХАХАХА.
Аноним 13/04/18 Птн 14:54:32  1172900
>>1172854
>У элемента в состоянии квантовой распутанности NULL состояние.
Ловите шизика
Аноним 13/04/18 Птн 15:01:15  1172904
>>1172900

Очевидно, множество всех состояний переменной может выходить из пределов её домена. Я милостиво разрешаю называть такое состояние квантовой неопределенностью, или NULL-cостоянием.
Аноним 13/04/18 Птн 15:30:30  1172919
>>1172904
>Очевидно
Схуяли, наркоман?
Аноним 13/04/18 Птн 15:32:28  1172921
>>1172667
А ты неплох.
Аноним 13/04/18 Птн 15:36:05  1172925
>>1172919

Доказывается от противного. Не существует переменных домен которых по мощности равен конкретному значению переменной, т.к. это приводит к рекурсивной зависимости в определении типа.
Аноним 13/04/18 Птн 15:37:30  1172926
>>1172925
>рекурсивной зависимости в определении типа.
И что в этом плохого?
Аноним 13/04/18 Птн 15:52:32  1172933
>>1172926

Тем что лежит вне пределов домена? У переменной à с доменом: {A1,A2,A3}, допустимое значение - одно из трех подмножеств своего домена, т.е: {A1}, {A2}, {A3}, но не {A1, A2, A3}.

В Null состоянии переменная à имеет неопределенное состояние, после квантового запутывания любое из трех, какое точно - сказать невозможно.
Аноним 13/04/18 Птн 16:10:06  1172944
>>1172933
>одно из трех подмножеств своего домена, т.е: {A1}, {A2}, {A3}
Наркоман?
Аноним 13/04/18 Птн 16:14:35  1172946
>>1172944

Пчм? Элемент подмножества - множество из одного элемента.
Аноним 13/04/18 Птн 16:26:39  1172954
>>1172946
https://en.wikipedia.org/wiki/Subset
Аноним 13/04/18 Птн 16:31:04  1172958
>>1172954

> The set A = {1, 2} is a proper subset of B = {1, 2, 3}, thus both expressions A ⊆ B and A ⊊ B are true.

A1 = {1}, à={1,2,3} A1 ⊆ à
Аноним 13/04/18 Птн 16:36:51  1172965
>>1172958
>Элемент подмножества - множество из одного элемента.
>одно из трех подмножеств
Блядь, ты реально конченый. Не отвечай мне больше.
Аноним 13/04/18 Птн 16:38:15  1172967
>>1172965

Хорошо не буду.
Аноним 13/04/18 Птн 16:51:19  1172974
>>1131879 (OP)
В чем суть? Треда я так и не понял, предыдущий утонул.
Раскажите в паре слов.
Аноним 13/04/18 Птн 17:15:34  1172988
>>1172974
Обсуждение поехавшего Егорки и наброс говна на вентилятор.
Аноним 13/04/18 Птн 17:24:55  1172996
>>1172933
Квантовые/хуянтовые. Не туда тебя понесло.
Если у меня функция принимает число (или любой другой тип), то я хочу и ожидаю видеть там число, а не особое состояние неопределенности. Ты же сейчас пытаешься подвести уже существующее решение (null pointer) под какое-то объяснение/теорию. А ответ прост: сделали хуйню и Хоар уже покаялся в содеяном. И решение уже давно найдено в виде Maybe/Optional/Nullable. Да, эти решения внедряются не так быстро как хотелось бы. Да, нам придется жить с null pointer из-за легаси. Ну что поделать? Переживем!
Аноним 13/04/18 Птн 18:16:40  1173043
>>1172996
> Не туда тебя понесло.

Ну простите, вам не угодишь; слишком адекватный -- плохо, не слишком адекватный -- тоже не хорошо.

Ковырять ложечкой говно, строя красивые теории о природе этого говна - способ отвлечься от депрессивной природы говна; называй это ментальной гимнастикой.

По сути твоей мессаги с уточнением, что говна в будущем будет только больше согласен, переживем.
Аноним 13/04/18 Птн 18:28:24  1173060
>>1172996
и в чем разница между null и optional?
Аноним 13/04/18 Птн 20:27:24  1173125
>>1172933
Наркоман, слушай сюда.
>переменной à с доменом: {A1,A2,A3}
>с доменом: {A1,A2,A3}
Знаешь что это значит?
Отнюдь не
> одно из трех подмножеств своего домена

Это значит, допустимое значение А1, А2 или А3 - т/е в точности {A1, A2, A3} т/е ДОМЕН, внезапно. По определению ВНЕЗАПНО.

В остальном, слушать твою шизофазию не так интересно, как смотреть шебмку про фиолетовую математику "сорока семи". Реквестирую её ИТТ, кстати.
Аноним 13/04/18 Птн 20:30:07  1173127
>>1173043
Пиздуй в школу, гимнаст ментальный.

A1 = {1}, à={{1},{2},{3}} A1 ⊆ à
Аноним 13/04/18 Птн 21:01:36  1173144
>>1173127

Поздравляю, сегодня ты узнал много нового, а конкретно что такое домен, а так же то, что любой объект в теории множеств считается как множество.

Хочу, тебе, мой друг, напомнить, ты просил:

> Не отвечай мне больше.

Поэтому, пожалуйста, не пиши мне больше ничего. Просто прими это в интернете по твоему мнению кто-то неправ, и этот кто-то -- ты! .

Спасибо.
Аноним 13/04/18 Птн 21:25:01  1173159
Чет проиграл еще раз с этого малолетнего долбоеба.

мимо >>1172965-кун
Аноним 13/04/18 Птн 22:22:29  1173223
Анон, так что ты думаешь про ООП?
Это нормально создавать объекты-процедуры? Например, вместо приватного метода создается объект, в котором есть метод делающий это же.
Аноним 13/04/18 Птн 22:32:16  1173229
>>1173223
>так что ты думаешь про ООП
говно
Аноним 14/04/18 Суб 01:01:06  1173338
>>1173229
Если ООП говно, то назови популярные не ООП гуи-библиотеки.
Аноним 14/04/18 Суб 01:08:06  1173341
>>1173338
Согласно определению Егорушки - абсолютно все проекты не ОПП и PURE EVIL кроме takes, zerocracy и прочего говна.
Аноним 14/04/18 Суб 01:09:04  1173342
>>1173338
Gtk
Аноним 14/04/18 Суб 01:20:05  1173345
>>1173342
Там имитировали ООП на C
Аноним 14/04/18 Суб 01:26:10  1173346
Messages.png (3Кб, 670x145)
>>1173345
А здесь.
Аноним 14/04/18 Суб 06:49:15  1173401
>>1131879 (OP)
Ну что, тредик вы уже добиваете, так что сейчас перекачу, не буду уж ждать до 500.
Аноним # OP  14/04/18 Суб 07:03:38  1173406
>>1173401
Перекат:
https://2ch.hk/pr/res/1173405.html


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