Андрей
let a = null
const f1 = async () => a = await new B()
const f2 = async () => a = await new C()
Андрей
И после через promise.all вызываем эти 2 функции.
Deleted
я снова тут, и влезу со своими пятью копейками
Андрей
Что будет в А?
Дмитрий
те ты пытаешься создать один и тот же объект из разных функций?
Deleted
Андрей
Deleted
в продакшн такой код не ушел бы
Дмитрий
угу это неверный подход просто
Андрей
Мде... Давайте в языке упростим возможность косячить?
Дмитрий
это вопрос архитектуры кода
и да я лично очень за то, чтобы исключать как можно больше ошибок автоматом
Deleted
Deleted
Deleted
Дмитрий
ну да кажется я тут в сементический ад попаду)
логика бывает разная)
Дмитрий
так что в иди туда - не знай куда тоже может быть свой логика)
Дмитрий
только ее понятность нам будет менее очевидна)
Deleted
какими качествами должна обладать строчка кода чтобы быть детерминированной?
Дмитрий
я бы вообщем заменил на слово - понятной
мне кажется так было бы проще)
Deleted
Deleted
const car = await new Car(‘red’)
ты можешь для всех случаев выполнения программы сказать какой будет результат?
Dika
Deleted
Дмитрий
а почему нет? если изначально знаешь алгоритмы класса
Deleted
Dika
Deleted
Дмитрий
"куда твой асинхронный конструктор стучится?"
не совсем понимаю вопроса... что значит стучится?
Dika
Deleted
Дмитрий
ничего странного в них нет - разве что вам непривычно
ну так я и предлагаю это сделать для тех кому нужно
Дмитрий
либо обработка скрипта
Дмитрий
либо обработка картинки
Дмитрий
и много чего еще
Deleted
в твоем случае что?
Дмитрий
да чего только там нет...
изначально вообще загрузка модулей под нужны класса в зависимости от параметров создания
Deleted
так
Deleted
давай начнем вот с чего
Deleted
знаешь методологию SOLID в ООП?
Deleted
первый принцип S - Single responsibility principle
Дмитрий
так класс и не меняется
pa[aad
принцип единственной ответственности
Дмитрий
я уже приводил пример насчет машины
у нее есть конкретное описание, но например отдельные элементы просто определены в виде обещаний
поэтому будут ли они загружены или нет - зависит от параметров
Deleted
async class Car{
constructor(color...){
[this.part1, this.part2, this.part3] = await Promise.all([
get_path1(color1),
get_path2(color2),
get_path3(color3),
]);
}}
Deleted
это?
Дмитрий
ну типа того да
Deleted
что значит твое get_path2?
Дмитрий
ну какая-нибудь часть машины
Дмитрий
или ты про что имеешь в виду - текстура например
Deleted
Почему машина ищет свои части?
Дмитрий
load_texture
Дмитрий
так лучше?
Deleted
да, но все еще
почему машина сама ищет свои текстуры?
если это отдельный класс
Dika
Дмитрий
не совсем понимаю вопросов порой...
мы хотим создать машину через конструктор класса и указываем нужные нам парамертры для этого
дальше конструктор смотрит, что заказал клиент(объект) и создает нужную нам машину под эти параметры
для этого заказывая нужные материалы
Deleted
Deleted
если это машина - то ты должен в конструкторе предоставить все материалы
Дима
Если это машина — то после чертежа обязан сразу показать готовую тачку
Дмитрий
кому должен? для меня это стереотип
почему я должен конструктору предоставлять все материалы?
если я могу просто указать то, что мне нужно
Deleted
Deleted
переводя на простой язык, в конструктор должны поступать готовые данные
Дмитрий
я понял эту идею, но я не понимаю ее значения
как по мне гораздо удобнее, если конструктор берет на себя всю работу
в чем тут возникают проблемы можете мне пояснить?
Дмитрий
как по мне как раз таки сложность растет когда вместо просто создать - нужно применить пустой инит
Дмитрий
или когда опять же нужно самому лишний раз что-то готовить
Дмитрий
это как раз упрощает программирование
Deleted
Deleted
если и так не поймешь - могу отправить читать литературу
Deleted
Дмитрий
вопрос зачем они нужны?
Дмитрий
зачем нужен пустой инит?
Дмитрий
чтобы был?