[AI CC-CC2021] Курсы джава скрипт

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
В том-то и дело, что не использует парадигму, а даёт возможность писать в похожем стиле.
Ну тогда и PHP не ООП, т.к. у него эта возможность появилась только с версии 6 кажется )).
Я в институте сперва на С программил, он совсем не ООП.
Страуструп добавил к нему возможность работы с классами и объектами и появился С++. Но по сути это то же С. Значит тоже не ООП?
 
  • Спасибо
Реакции: veretragna

veretragna

γνώσις
Сообщения
578
Реакции
200
ООП - это парадигма программирования, которая рассматривает программу как множество взаимодействующих друг с другом объектов. Если язык позволяет представить программу как множество взаимодействующих друг с другом объектов, то этот язык - объектно-ориентированный. Что происходит под капотом, никого совершенно не интересует в контексте определения парадигмы.
 
  • Спасибо
Реакции: _MBK_

Spirit412

15 лет на форуме
Сообщения
870
Реакции
128
можно писать без своих библиотек, классов, конструкторов и т.п.... тупо процедурно
Если программка в 200 строк, то не сложно.
Я сам чаще программирую процедурно.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 228
Реакции
10 851
Так больше и не требуется
 

veretragna

γνώσις
Сообщения
578
Реакции
200
можно писать без своих библиотек, классов, конструкторов и т.п.... тупо процедурно
Если программка в 200 строк, то не сложно.
Я сам чаще программирую процедурно.
"Позволять" не равно "заставлять". В объектно-ориентированном языке должен быть инструментарий для работы с объектами, но насколько его задействовать - решает только программист
 

Старкрафт

Участник
Сообщения
289
Реакции
106
Ну тогда и PHP не ООП, т.к. у него эта возможность появилась только с версии 6 кажется )).

И не надо. KPHP
для ускорения выполнения-компиляции в нём есть возможность явно задавать типы переменных[3] и сильно ограничено применение ООП.
В результате практически все страницы сайта стали грузиться более чем 2 раза быстрее.
 

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
Благодаря PHP ООП я написал универсальную модульную админку-конструктор для сайтов каталогов и магазинов )).
Теперь настройка админки под требование клиента занимает максимум часа 2 )).
С уж0сом вспоминаю, сколько это занимало ранее )).
 

Старкрафт

Участник
Сообщения
289
Реакции
106
А где полиморфизьмь? В торадиционном оопе создаём в классе разные методы с одним именем, но различающимися аргументами. И всё, профит! Имя одно, а метод автоматически выбирается по аргументам.

JS не типизированный, там это целая история. Но в принципе, жаваскрипу по-барабану количество аргументов, поэтому можно извратиться.
 

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
В торадиционном оопе создаём в классе разные методы с одним именем, но различающимися аргументами. И всё, профит! Имя одно, а метод автоматически выбирается по аргументам.
Буквально вчера писал примитивный метод для разных типов аргумента:
JavaScript:
this.__add = function () {
    var arg = arguments[0];
    switch (arg.constructor.name) {
        case 'String':
            this.ingredients.push(arg);
            this.ingredients = this.ingredients.unique();
            this.ingredients.sort();
            return true;
        break;
        case 'Array':
            this.ingredients = this.ingredients.concat(arg);
            this.ingredients = this.ingredients.unique();
            this.ingredients.sort();
            return true;
        break;
    }
    return false;
}
 

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
JS не типизированный, там это целая история. Но в принципе, жаваскрипу по-барабану количество аргументов, поэтому можно извратиться.
в этом удобство, не надо писать для каждого количества аргументов свои методы, можно в одном всё обработать без ошибок.
Ну а то что не типизирован, так определяйте типы, кто вам мешает? Делайте проверки на типы. Каждый учебник по JS посвящен почти на 30% этой самой проверке.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
Буквально вчера писал примитивный метод для разных типов аргумента:
Ну так в том-то и дело, что в ооп-стиле можно писать даже не в ооп-языках. Было бы желание. Знающие люди говорят, что в ядре, ооп используется во всю ширину, причём на чистом Си.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
в этом удобство, не надо писать для каждого количества аргументов свои методы, можно в одном всё обработать без ошибок.
Я не вижу в этом удобства, если честно. И фразу не совсем понял :).
Одно имя для разных методов. Выбор по аргументам.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
в этом удобство, не надо писать для каждого количества аргументов свои методы, можно в одном всё обработать без ошибок.
Понял. Речь не об ошибках. Конечно js игнорирует такие ошибки, иначе сайты вообще бы не работали. Но хорошо ли это? А профит в том, что вам не надо напрягаться как Олег Бутрин, пытаясь создать свой полиморфизм из грязи и палок. :)
 
Последнее редактирование:

Oleg Butrin

20 лет на форуме
Сообщения
1 990
Реакции
1 216
свой полиморфизм из грязи и палок
Это не мой полиморфизм. Идея писать отдельный обработчик под каждый набор аргументов лично у меня никакого восторга не вызывает. Проще и удобнее передавать в функцию объект в качестве единственного аргумента. И уж в него запихнуть все, что душе угодно, причем в любых сочетаниях.
 
  • Спасибо
Реакции: veretragna

eugeny

15 лет на форуме
Сообщения
859
Реакции
210
Понял. Речь не об ошибках. Конечно js игнорирует такие ошибки, иначе сайты вообще бы не работали. Но хорошо ли это? А профит в том, что вам не надо напрягаться как Олег Бутрин, пытаясь создать свой полиморфизм из грязи и палок. :)
Что же вас так напрягает в полиморфизме JS? Из грязи и палок можно написать на любом языке. Покажите эталон полиморфизма, который на JS ну никак прилично не получится.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
Что же вас так напрягает в полиморфизме JS? Из грязи и палок можно написать на любом языке. Покажите эталон полиморфизма, который на JS ну никак прилично не получится.
Самое сложное (для меня) это пытаться анализировать какие-то случайные данные. Ну вот, скажем, есть некий почти структуированный текст. Но в этом тексте местами есть некоторые отклонения. При попытке как-то осмысленно обрабатывать такие отклонения ты сталкиваешься с валом ошибок и неправильной работой программы. Легче всего даже не пытаться, а сделать правила построже и либо вываливать ошибку, либо её пропускать. Вот полиморфизм из грязи и палок – потенциально содержит неисчерпаемое количество ошибок.
 

Старкрафт

Участник
Сообщения
289
Реакции
106
Проще и удобнее передавать в функцию объект в качестве единственного аргумента. И уж в него запихнуть все, что душе угодно, причем в любых сочетаниях.
Вот и весь ооп в js :)
Ассоциативный массив и куски кода на которые можно указывать ссылкой.