@typescript_ru

Страница 265 из 669
Adam
02.07.2017
08:21:19
Господа, а что делать, если сам жс модуль — тоже функция?
Как модуль может быть функцией?! Модуль - расширение понятия класса, что-то типа namespace.

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

Летучая
02.07.2017
08:32:27
Как модуль может быть функцией?! Модуль - расширение понятия класса, что-то типа namespace.
Под жс модулем имел ввиду библиотеку, сорян. Не тот модуль, который Module. Типа import * as stuff from 'stuff'; stuff(1, 2, 3);

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
модуль классом тоже не является
сам с собой разговариваешь? Прочитай ещё раз, что я написал

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

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

Adam
02.07.2017
08:55:41
какая-то плохая аналогия для тех, кто только-только узнал про классы
я вообще не понимаю таких людей. Если ты начинаешь программировть, то обнаружишь, что большинство информации в интернете посвящено ооп-парадигме, господствующей на сегодняшний день. Изучать нужно программирование, а не только javascript.

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
и чё такое класс, в чём отличие от сишной структуры допустим? и чё, получается, если писать на JS всё на фабриках или тех же прототипах, это уже не ООП?
структура - это вырожденный класс, не поддерживающий наследование и инкапсуляцию, насколько я знаю

Даниил
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 так и есть

а вот во всяких джавах, джаваскриптах, крестах и прочем никакого обмена сообщения, вызов метода - просто сахар для процедурного кода

Даниил
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
а давайте про асм поговорим

Даниил
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
первое полиморфно
ну про полиморфизм товарищ выше ничего не говорил, например

Даниил
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
ну, я к тому что там где в мейнстриме чтобы убрать повторение кода используют наследование, во всякой маргинальной функциональщине используются всякие трейты/тайпклассы/...

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
полиморфизм для добавления новых фич же)
параметрический, допустим, не ad-hoc

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
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
function f(a) { return a.foo(1) } f({ foo: () => console.log(“old feature”)}) f({ foo: () => console.log(“new feature”)})
надо прекратить на твои вопросы отвечать, ты от меня больше узнал, чем я от тебя

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

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

Aleh
02.07.2017
09:21:43
надо прекратить на твои вопросы отвечать, ты от меня больше узнал, чем я от тебя
ты уже нашел в моем примере базовый класс-интерфейс и таблицу виртуальных методов?)

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
Первый чат, в котором зажимают ответы на вопросы! (аж тригернуло)

Страница 265 из 669