@JSlang

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

Дмитрий
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’) ты можешь для всех случаев выполнения программы сказать какой будет результат?

Google
ujeenator
17.02.2018
08:07:21
Это зависит от конструктора Car. И await тут не нужен.
если есть await значит есть побочный эффект

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

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

Dika
17.02.2018
08:07:50
если есть await значит есть побочный эффект
В await 0 есть побочный эффект?

ujeenator
17.02.2018
08:08:02
В await 0 есть побочный эффект?
это вообще запустится?

Dika
17.02.2018
08:08:13
это вообще запустится?
Да. await может принимать любое значение, не только промис.

ujeenator
17.02.2018
08:08:52
Да. await может принимать любое значение, не только промис.
тогда нет потому что он раскладывается на константу и await там не нужен значит не реальный пример

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

Dika
17.02.2018
08:09:43
тогда нет потому что он раскладывается на константу и await там не нужен значит не реальный пример
await не нужен, потому что функция, вызванная с new, априори не может вернуть промис

ujeenator
17.02.2018
08:10:09
await не нужен, потому что функция, вызванная с new, априори не может вернуть промис
почитай сообщения выше мы тут странные идеи Дмитрия обсуждаем

Дмитрий
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
не совсем понимаю вопросов порой... мы хотим создать машину через конструктор класса и указываем нужные нам парамертры для этого дальше конструктор смотрит, что заказал клиент(объект) и создает нужную нам машину под эти параметры для этого заказывая нужные материалы

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

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

Google
ujeenator
17.02.2018
08:24:51
кому должен? для меня это стереотип почему я должен конструктору предоставлять все материалы? если я могу просто указать то, что мне нужно
пятый принцип в ООП D - Dependency inversion principle “Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.”

переводя на простой язык, в конструктор должны поступать готовые данные

Дмитрий
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
в целом весь вопрос для меня лишь в разных задачах и подходах я могу понять например что конструктор используется для создания чертежа, а реальное выполнение будет отстрочено но это одна ситуация, но не вижу причин почему нельзя создать готовый объект сразу

тогда уж можно раздели вообще на два класса если вам так это нужно

Страница 1687 из 2237