
Adam
02.07.2017
08:21:19

Aleh
02.07.2017
08:32:02
Что модуль это расширение класса

Летучая
02.07.2017
08:32:27

Google

Aleh
02.07.2017
08:32:47
А в cjs модуль может экспортить функцию

Adam
02.07.2017
08:33:07

Aleh
02.07.2017
08:33:28
и?
причем здесь класс
модуль классом тоже не является

Adam
02.07.2017
08:37:33

Aleh
02.07.2017
08:48:29

Adam
02.07.2017
08:49:56
читаю вот еще раз
где-то читал, что модули - ещё более высокоуровневые абстракции, чем классы, способные содержать несколько классов и свободные функции

Aleh
02.07.2017
08:50:47
какая-то плохая аналогия для тех, кто только-только узнал про классы

Adam
02.07.2017
08:55:41

Даниил
02.07.2017
08:56:16
что такое ООП?

Adam
02.07.2017
08:56:24

Google

Adam
02.07.2017
08:56:47
что такое ООП?
объектно-ориентированное программирование, не благодари )

Aleh
02.07.2017
08:56:54
ну да, и что это такое?

Даниил
02.07.2017
08:57:11

Adam
02.07.2017
08:57:16

Даниил
02.07.2017
08:57:21
ты чё угораешь?
в чём заключается-то парадигма?
в чём принципиальное отличие от процедурной?

Adam
02.07.2017
08:57:56
ты чё угораешь?
в том, чтобы инкапсулировать данные и методы для работы с ними в единые сущности - классы

Даниил
02.07.2017
08:59:01
и чё такое класс, в чём отличие от сишной структуры допустим?
и чё, получается, если писать на JS всё на фабриках или тех же прототипах, это уже не ООП?

andretshurotshka?❄️кде
02.07.2017
08:59:18
Лол

Adam
02.07.2017
08:59:41

Даниил
02.07.2017
09:00:46
ну таки это считается ООП или нет?

Aleh
02.07.2017
09:00:51
http://wiki.c2.com/?AlanKaysDefinitionOfObjectOriented

Adam
02.07.2017
09:01:39
ну таки это считается ООП или нет?
в рамках js классы нужны, в основном, для быстрого создания однотипных структур. В рамках ts - можно полноценно писать, как в полностью ооп-языках

Anton
02.07.2017
09:02:04
флудеры

Даниил
02.07.2017
09:02:37
вот Алан Кей пишет про сообщения, которыми обмениваются объекты
в его смолтоке так и было
в модели акторов так и есть

Igor
02.07.2017
09:02:48
что такое ООП?
Вот Егор объясняет для новичков https://youtu.be/lfdAwl3-X_c чем структуры отличаются от объектов

Google

Даниил
02.07.2017
09:02:56
в ObjC и Swift так и есть
а вот во всяких джавах, джаваскриптах, крестах и прочем никакого обмена сообщения, вызов метода - просто сахар для процедурного кода

Adam
02.07.2017
09:04:03

Даниил
02.07.2017
09:04:10
зачем?

Adam
02.07.2017
09:04:27
зачем?
там настоящий обмен сообщениями реализован

Даниил
02.07.2017
09:05:06
и? я-то не призываю учить ООП, у которого определений ровно столько сколько людей о нём говорят

Anton
02.07.2017
09:05:12

Adam
02.07.2017
09:05:16
обмен сообщениями - это вызов методов объектов (в java реализации, например).

Даниил
02.07.2017
09:05:25
это лишь сахар
на самом деле a.foo(b) это то же самое процедурное foo(a, b)

Anton
02.07.2017
09:05:57
а давайте про асм поговорим

Aleh
02.07.2017
09:06:09

Даниил
02.07.2017
09:06:13
почему?

Aleh
02.07.2017
09:06:15
первое полиморфно

Anton
02.07.2017
09:06:20
всё это не "то же самое", поскольку уровень абстракций разный

Aleh
02.07.2017
09:06:24
а второе только при ad-hoc

Даниил
02.07.2017
09:06:44

Aleh
02.07.2017
09:07:10

Даниил
02.07.2017
09:07:29
ну собственно говоря, ad-hoc полиморфизм имхо и есть самая адекватная замена этим вашим наследованиям

Adam
02.07.2017
09:07:43
Если хочешь писать что-нибудь сложнее скрипта для страницы: мобильное приложение, игру или ещё что-то, то тебе придётся иметь дело с ооп-парадигмой, так что выбор за вами

Google

Aleh
02.07.2017
09:07:46
а причем наследование к полиморфизму Оо

Даниил
02.07.2017
09:08:54
ну, я к тому что там где в мейнстриме чтобы убрать повторение кода используют наследование, во всякой маргинальной функциональщине используются всякие трейты/тайпклассы/...

Anton
02.07.2017
09:09:07

Adam
02.07.2017
09:09:19

Aleh
02.07.2017
09:09:22

Даниил
02.07.2017
09:10:00

Admin
ERROR: S client not available

Даниил
02.07.2017
09:10:22

Anton
02.07.2017
09:10:24

Aleh
02.07.2017
09:10:29
так что да, с поинтом, что в большинстве случаев a.foo(b) и foo(a, b) не имеют разницы и не давали автору каких-то бонусов при выборе, а он просто лепил как получилось, я согласен

Adam
02.07.2017
09:11:04

Даниил
02.07.2017
09:11:14

Adam
02.07.2017
09:11:24

Даниил
02.07.2017
09:11:42

Aleh
02.07.2017
09:11:54
нет
ну раз вы так говорите

Adam
02.07.2017
09:12:10
какую "эту"?
где говорят, что "я пишу ооп много лет и до конца не понимаю, что это"

Даниил
02.07.2017
09:12:13
ну параметрический чисто чтобы убрать повторение, какие тут новые фичи, код-то ровно один

Adam
02.07.2017
09:13:20
ну раз вы так говорите
полиморфизм подтипов для совместимости, полиморфизм параметрический - для повторного использования, опять же, обобщнной реализации, ad-hoc - просто сахар с именованием фактически разных методов

Google

Aleh
02.07.2017
09:14:18

Adam
02.07.2017
09:14:44

Aleh
02.07.2017
09:15:09
и это очевидно

Adam
02.07.2017
09:15:49

Aleh
02.07.2017
09:16:00
function f(a) { return a.foo(1) }
f({ foo: () => console.log(“old feature”)})
f({ foo: () => console.log(“new feature”)})

Adam
02.07.2017
09:16:37

Aleh
02.07.2017
09:17:33
мне нравится самооценка некоторых участников

andretshurotshka?❄️кде
02.07.2017
09:19:08
?

Aleh
02.07.2017
09:21:43

Adam
02.07.2017
09:22:14

Aleh
02.07.2017
09:23:55

andretshurotshka?❄️кде
02.07.2017
09:38:27
Это же контракт вроде

Aleh
02.07.2017
09:39:08
ну здесь контракт особого нет, достаточно соблюдения интерфейса

Летучая
02.07.2017
16:27:21
Первый чат, в котором зажимают ответы на вопросы! (аж тригернуло)