Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 March 15

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Алексей Попов
может наследование вообще не нужно, и его можно заменить композицией
жава же как-то живёт все эти годы без множественного наследования, шарп тоже
а в плюсах оно хоть и есть, но обычно его стараются по максимуму избегать
Да согласен, но бывают супер редкие случаи, когда было бы удобно. Пока не встречал на ноде такое, но интересно.
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Как кстати лучше решать такую проблему, когда множественного наследования нет, а нужно?
В разных языках - разные средства: дефолт реализация в интерфейсе, трейты, другие способы..
композиция и агрегация
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
В том же хаскеле повсемесно юзаются дефолт реализации для дата классов. * в стандартной либе.
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Nikita
в плюсах насколько знаю они интерфейсы так ним заменяют
но там можно множественно наследовать и не абстрактные классы
от этого возникает проблема ромба в наследовании (не помню есть ли термин для такого, суть в том, что у нескольких предков есть метод с одинаковой сигнатурой) и такое понятие, как виртуальное наследование
в общем, часто от него больше проблем, чем профита
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
композиция и агрегация
да согласен. Но требует намного больше копипасты.
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Вдруг в коде найдётся штук 50 классов, которые делегируют вызовы зависимости: this.dependency.method(). Это создай обьекты с этими зависимостями и скопипасти вызов в каждый из них.
источник

ЕВ

Евгений Войтенко... in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Та почти любой, вот первый попавшийся ужас
class Animal {
 constructor(name) {
   this.speed = 0;
   this.name = name;
 }
 run(speed) {
   this.speed = speed;
   alert(`${this.name} бежит со скоростью ${this.speed}.`);
 }
 stop() {
   this.speed = 0;
   alert(`${this.name} стоит.`);
 }
}

// Наследуем от Animal указывая "extends Animal"
class Rabbit extends Animal {
 hide() {
   alert(`${this.name} прячется!`);
 }
}

let rabbit = new Rabbit("Белый кролик");

rabbit.run(5); // Белый кролик бежит со скоростью 5.
rabbit.hide(); // Белый кролик прячется!
если не сложно, что именно тут не так?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Я такое называю ментальной мастурбацией :)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Когда пример ради демонстрации функциональности :)
источник

V

Vadim in NodeUA - JavaScript and Node.js in Ukraine
кстати на счет этого, где можно найти хорошие примеры использования классов и прототипов без таких вот абстракций в виде кошек и собак, а что-бы увидеть как это можно сделать в реальном проекте, ну и что-бы при этом код был хороший? для человека с нулевым знанием ООП
источник

ЕВ

Евгений Войтенко... in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
Когда пример ради демонстрации функциональности :)
если вы про пример с кроликом, то что по вашему мнению с ним не так?
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Vadim
кстати на счет этого, где можно найти хорошие примеры использования классов и прототипов без таких вот абстракций в виде кошек и собак, а что-бы увидеть как это можно сделать в реальном проекте, ну и что-бы при этом код был хороший? для человека с нулевым знанием ООП
В реальном проекте будет много дополнительной логики, обвязок, астракций.
Демонстрировать наследование на реальном проекте будет не очень.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Евгений Войтенко
если вы про пример с кроликом, то что по вашему мнению с ним не так?
Там выше уже обсудили
источник

V

Vadim in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
В реальном проекте будет много дополнительной логики, обвязок, астракций.
Демонстрировать наследование на реальном проекте будет не очень.
ну хоть что-то примерно более-менее реальное, а не чистая абстракция
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Vadim
ну хоть что-то примерно более-менее реальное, а не чистая абстракция
Можете либу просто поисследовать какую нить. В чате писали вроде, какие с норм кодом. Я не помню.
источник

V

Vadim in NodeUA - JavaScript and Node.js in Ukraine
ну да, наверное хороший вариант, огромное спасибо, посмотрю что выше предлагали
источник

AK

Anton Kovalenko in NodeUA - JavaScript and Node.js in Ukraine
Всім привіт)
Підкажіть, будь ласка, бібліотеку для load-testing.
Хто що юзає для цих цілей?
дякую
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Anton Kovalenko
Всім привіт)
Підкажіть, будь ласка, бібліотеку для load-testing.
Хто що юзає для цих цілей?
дякую
Autocannon
источник

Т

Тёмыч in NodeUA - JavaScript and Node.js in Ukraine
Кажись так
источник

AV

Alex Veprik 🇺🇦 in NodeUA - JavaScript and Node.js in Ukraine
Я не пам'ятаю на 100%, але коты-собаки ж наче навіть у Граді Буча були?
источник