
Дмитрий
17.02.2018
07:55:32
угу это неверный подход просто

Andrey
17.02.2018
07:56:04
Мде... Давайте в языке упростим возможность косячить?

Дмитрий
17.02.2018
07:56:55
это вопрос архитектуры кода
и да я лично очень за то, чтобы исключать как можно больше ошибок автоматом

ujeenator
17.02.2018
07:57:06

Google

ujeenator
17.02.2018
07:58:33

Дмитрий
17.02.2018
07:59:57

ujeenator
17.02.2018
08:00:44

Дмитрий
17.02.2018
08:01:23

ujeenator
17.02.2018
08:01:44

Дмитрий
17.02.2018
08:02:13
ну да кажется я тут в сементический ад попаду)
логика бывает разная)
так что в иди туда - не знай куда тоже может быть свой логика)
только ее понятность нам будет менее очевидна)

ujeenator
17.02.2018
08:03:21
какими качествами должна обладать строчка кода чтобы быть детерминированной?

Дмитрий
17.02.2018
08:04:08
я бы вообщем заменил на слово - понятной
мне кажется так было бы проще)

ujeenator
17.02.2018
08:04:31
const car = await new Car(‘red’)
ты можешь для всех случаев выполнения программы сказать какой будет результат?

Dika
17.02.2018
08:06:52

Google

ujeenator
17.02.2018
08:07:21

Дмитрий
17.02.2018
08:07:24
а почему нет? если изначально знаешь алгоритмы класса

ujeenator
17.02.2018
08:07:49

Dika
17.02.2018
08:07:50

ujeenator
17.02.2018
08:08:02

Dika
17.02.2018
08:08:13

ujeenator
17.02.2018
08:08:52

Дмитрий
17.02.2018
08:09:24
"куда твой асинхронный конструктор стучится?"
не совсем понимаю вопроса... что значит стучится?

Dika
17.02.2018
08:09:43

ujeenator
17.02.2018
08:10:09

Дмитрий
17.02.2018
08:10:43
ничего странного в них нет - разве что вам непривычно
ну так я и предлагаю это сделать для тех кому нужно

ujeenator
17.02.2018
08:10:47

Дмитрий
17.02.2018
08:10:57
либо обработка скрипта
либо обработка картинки
и много чего еще

ujeenator
17.02.2018
08:11:26
в твоем случае что?

Дмитрий
17.02.2018
08:12:16
да чего только там нет...
изначально вообще загрузка модулей под нужны класса в зависимости от параметров создания

ujeenator
17.02.2018
08:12:50
так
давай начнем вот с чего
знаешь методологию SOLID в ООП?

Google

ujeenator
17.02.2018
08:14:23
первый принцип S - Single responsibility principle

Дмитрий
17.02.2018
08:14:39
так класс и не меняется

ujeenator
17.02.2018
08:15:04

Andrey
17.02.2018
08:15:15
принцип единственной ответственности

Дмитрий
17.02.2018
08:17:29
я уже приводил пример насчет машины
у нее есть конкретное описание, но например отдельные элементы просто определены в виде обещаний
поэтому будут ли они загружены или нет - зависит от параметров

ujeenator
17.02.2018
08:18:38
async class Car{
constructor(color...){
[this.part1, this.part2, this.part3] = await Promise.all([
get_path1(color1),
get_path2(color2),
get_path3(color3),
]);
}}
это?

Дмитрий
17.02.2018
08:18:46
ну типа того да

ujeenator
17.02.2018
08:18:49
что значит твое get_path2?

Дмитрий
17.02.2018
08:19:05
ну какая-нибудь часть машины
или ты про что имеешь в виду - текстура например

ujeenator
17.02.2018
08:19:19
Почему машина ищет свои части?

Дмитрий
17.02.2018
08:19:31
load_texture
так лучше?

ujeenator
17.02.2018
08:20:10
да, но все еще
почему машина сама ищет свои текстуры?
если это отдельный класс

Дмитрий
17.02.2018
08:23:09
не совсем понимаю вопросов порой...
мы хотим создать машину через конструктор класса и указываем нужные нам парамертры для этого
дальше конструктор смотрит, что заказал клиент(объект) и создает нужную нам машину под эти параметры
для этого заказывая нужные материалы

ujeenator
17.02.2018
08:23:37
если это машина - то ты должен в конструкторе предоставить все материалы

Дмитрий
17.02.2018
08:24:37
Если это машина — то после чертежа обязан сразу показать готовую тачку

Дмитрий
17.02.2018
08:24:41
кому должен? для меня это стереотип
почему я должен конструктору предоставлять все материалы?
если я могу просто указать то, что мне нужно

Google

ujeenator
17.02.2018
08:24:51
переводя на простой язык, в конструктор должны поступать готовые данные

Дмитрий
17.02.2018
08:27:29
я понял эту идею, но я не понимаю ее значения
как по мне гораздо удобнее, если конструктор берет на себя всю работу
в чем тут возникают проблемы можете мне пояснить?

ujeenator
17.02.2018
08:28:52

Дмитрий
17.02.2018
08:29:22
как по мне как раз таки сложность растет когда вместо просто создать - нужно применить пустой инит
или когда опять же нужно самому лишний раз что-то готовить
это как раз упрощает программирование

ujeenator
17.02.2018
08:30:27

Admin
ERROR: S client not available

ujeenator
17.02.2018
08:30:40
если и так не поймешь - могу отправить читать литературу

Дмитрий
17.02.2018
08:31:16
вопрос зачем они нужны?
зачем нужен пустой инит?
чтобы был?

ujeenator
17.02.2018
08:31:33
сложность кода растет за счет смешивания понятий которые не надо смешивать

Алёна
17.02.2018
08:31:44
Зачем вообще на какие-то там функции, модули и прочее разбивать? Это слижком сложно. Ещё паттерны учить - это вообще фу-фу-фу. Предлагаю всё в одном файле писать! Так гораздо проще - не надо запариваться всякими непонятными мне штуками!

Дмитрий
17.02.2018
08:32:10
не вижу смешивания понятий кроме стереотипов
мы создаем объект - для этого достаточно просто слова создать объект

Алёна
17.02.2018
08:32:10
Я вот написала свой хелловорлд на 100 срочек и считаю именно так. Моё мнение, если что.

Дмитрий
17.02.2018
08:33:01
нет зачем-то нужно отделять создание и еще инициализацию

Google

Алёна
17.02.2018
08:33:10

Дмитрий
17.02.2018
08:33:57
я могу понять если нам не нужен объект целиком и потом его дособрать
но если я хочу получить сразу все - не вижу смысла вызывать дополнительные методы

ujeenator
17.02.2018
08:34:24
Если попробуешь следовать правилам - то окажется что смысла в использовании асинхронного конструктора и нет вовсе


Дмитрий
17.02.2018
08:46:24
смысл есть потому что остальные подходы по работе с асинхронностью хуже
вообщем я все равно так и не понимаю: проблем с использованием переменных в конструкторе и что страшного произойдет, если конструктор сам выполнит все этапы создания по заданным свойствам
для меня конструктор - это именно полноценный конструктор, который создает то, что тебе нужно
и ограничивать его в возможностях я смысла пока не вижу, а разграничивать почему нет
пенести ту же подготовку в класс не вопрос
constructor(args){
prepare_create_car(argc);
}
prepare_create_car() {}
для меня это лишь разница подходов...
да можно было сделать все тоже через
argc = prepare_create_car();
car = new Car(argc);
просто для меня это как раз усложнее
для меня проще это вынести во внутрь класса, а во вне лишь интерфейс нужных параметров
и по сути если речь идет про синхронности там вообще даже вопросов нет


ujeenator
17.02.2018
08:48:02
>просто для меня это как раз усложнее
ясно
ничего
говорю, займешься большим проектом, передумаешь

Дмитрий
17.02.2018
08:48:31
и что в больших проектах пустые параметры конструкторов? или ах да классы вообще не используют?

ujeenator
17.02.2018
08:49:14
>и что в больших проектах пустые параметры конструкторов?
не понял
когда мы про пустой конструктор говорили?

Дмитрий
17.02.2018
08:50:02
дык а зачем там тогда вообще нужны параметры?
пусть тогда все в инит будет? пусть тогда уж конструктор совсем отдыхает) зачем там тогда вообще нужны параметры?
если он по сути ничего не создает

ujeenator
17.02.2018
08:50:34
>дык а зачем там тогда вообще нужны параметры?
читай тематическую литературу
я уже упомянул куда копать

Дмитрий
17.02.2018
08:50:56
тут для меня два вариант или пустой инит - или пустой конструктор

Konstantin
17.02.2018
08:51:02
срач со вчерашнего дня)) вы не устали?

ujeenator
17.02.2018
08:51:07
>или ах да классы вообще не используют?
используют с ограничениями которые я описал
с утра нечего делать
?

Дмитрий
17.02.2018
08:54:15
в целом весь вопрос для меня лишь в разных задачах и подходах
я могу понять например что конструктор используется для создания чертежа, а реальное выполнение будет отстрочено
но это одна ситуация, но не вижу причин почему нельзя создать готовый объект сразу
тогда уж можно раздели вообще на два класса если вам так это нужно