@JSlang

Страница 1686 из 2237
Дмитрий
16.02.2018
22:11:19
может быть - поживем увидим?

Sergey
17.02.2018
02:27:16
а какой браузер лучше всего использовать для парсера на js?

Google
Andrey
17.02.2018
02:32:01
Пофиг.

Какой тебе удобнее.

ujeenator
17.02.2018
02:32:13
ну в целом да так сейчас и делаю хотя это уже немного разные вещи и подходы к тому, что такое конструктор и зачем он нужен... свое видение я уже изложил для меня все-таки конструктор - это полноценный создатель а не я ему это создай, принеси я лишь указываю параметры и дальше хочу, чтобы он сам по ним все сделал, а я пойду подожду и займусь другими делами мне такой подход клиента ближе
>свое видение я уже изложил для меня все-таки конструктор - это полноценный создатель конструктор это инициализатор памяти объекта, всегда синхронный и не кидающий ошибок (в идеале) >свое видение я уже изложил для меня все-таки конструктор - это полноценный создатель путаница терминов - то что ты говоришь это либо паттерн фабрика либо паттерн строитель но не конструктор

Дмитрий
17.02.2018
04:21:20
const car = await Car.create(red,model1)
допустим, а как в таком случае делать наследование? SuperCar extends Car

" (в идеале)" вот только реальность обычно немного иная и далека от идеала) у нас тут костыли на костылях) поэтому миром скорее правит прагматизм нежели идеализм) а к последнему мы больше стремимся по мере возможностей)

ujeenator
17.02.2018
04:26:20
лучше не так давай конкретный пример

Дмитрий
17.02.2018
04:28:02
дак вон выше есть пример с машиной же я хочу от нее сделать наследника - ну и как мне это сделать?

Дмитрий
17.02.2018
04:29:13
ага еще за классы надо увольнять кажется тут многие так думают)

Google
Дмитрий
17.02.2018
04:30:36
const car = await Car.create(red,model1); ну я все про это говорю: тут ты используешь create для Car, а я решил расширить класс Car и создать SuperCar ну и как тогда мне это сделать?

ujeenator
17.02.2018
04:34:03
const car = await Car.create(red,model1); ну я все про это говорю: тут ты используешь create для Car, а я решил расширить класс Car и создать SuperCar ну и как тогда мне это сделать?
тогда отделяй назначение метода create, на создание аргументов для конструктора const car = new Car(…(await Car.prepareCarArgs(red,model1)));

в дочерних классах можно переиспользовать

Также частный паттерн в таких случаях это init метод

const car = new Car(red,model1) await car.init()

Дмитрий
17.02.2018
04:37:54
ну да такой подход я сейчас и использую а дальше уже идет видимо вопрос идеологии... мы это уже ранее обсуждали, что я считаю, что лучше, чтобы было просто: const car = await new Car( red,model1 ); вместо const car = new Car(…(await Car.prepareCarArgs(red,model1))); потому что для себя не вижу лично почему нельзя использовать конструктор сразу для таких целей

ну выкидывает у тебя создание объекта ошибку и что? try catch в помощь

как будто это первая исключение в жизни

не здесь так в другом месте же будет

ujeenator
17.02.2018
04:39:47
ну выкидывает у тебя создание объекта ошибку и что? try catch в помощь
почитай какая семантика использования исключений

и что вообще такое исключительная ситуация

Дмитрий
17.02.2018
04:41:27
я говорю не про семантику - я говорю про практику const car = new Car(red,model1) try await car.init() catch или try await new Car(red,model1) catch для меня это одно и тоже - только в первом случае еще лишняя строчка текста

ujeenator
17.02.2018
04:43:21
я говорю не про семантику - я говорю про практику const car = new Car(red,model1) try await car.init() catch или try await new Car(red,model1) catch для меня это одно и тоже - только в первом случае еще лишняя строчка текста
семантику таких понятий придумали не с потолка, а для качественного кода если бы конструкторы создавали риск исключения или асинхронные операции то код был бы слишком сложен для отлова ошибок и понимания что пошло не так

Дмитрий
17.02.2018
04:44:17
что сложного в try catch? и еще раз говорю, что использовать его все равно ведь придется - вопрос лишь где

ujeenator
17.02.2018
04:44:21
тебе бы в Scala

раз ты прямо так любишь лаконичность

Дмитрий
17.02.2018
04:44:53
и как по мне понятнее использовать его на первом и единственном методе

Дмитрий
17.02.2018
04:46:26
и да я специально говорю не о классах, а об асинхронных классах, потому что кто не понимает как работает асинхронные методы - пусть лучше их и не использует тогда но для меня создание должно быть асинхронным

и да с await и try-catch писать код не так уж сложно в почти синхронном стиле - вопрос лишь навыка человека и его понимания

Google
Дмитрий
17.02.2018
04:49:04
но все равно что такое класс - это функция-создатель и раз уж появились асинхронные функции я хочу лишь по логике иметь и аснихронную функцию-создатель

"ты большие проекты писал?" ну как сказать... кода у меня много и асинхронного, поэтому вот и думаю, как мне его сделать более удобным... но с другой стороны опять же вопрос определений - назвать это большим проектом пока тоже наверно нельзя...

Дмитрий
17.02.2018
04:54:24
нет наверно пока поменьше у меня куча модулей - каждый из них небольшой и в том и суть, что все грузится, выполняется асинхронно, поэтому количество символов я особо не считал я за количеством никогда не гоняюсь - меня больше интересует качество скорее

ujeenator
17.02.2018
04:54:52
>я за количеством никогда не гоняюсь - меня больше интересует качеством скорее эм

ладно, было весело, но я пошел

Дмитрий
17.02.2018
04:55:30
ладно давай

хотя я так и не услышал, чем ошибка в init лучше, чем в new - только потому что ты ее там не ожидаешь? ну это лишь вопрос как я уже сказал понимания того с чем работаешь)

вообщем все упирается как я понял в стереотипы, идеологию и семантику...

давно уже заметил что в ит конечно много лишнего мусора, который с трудом чистят...

есть противник и классов и методов await и те кто готов писать 1000 строк кода вместо пары лишь бы не использовать не любимые им паттерны или не совпадающие с ними по взглядам подходы

Дмитрий
17.02.2018
05:06:31
ладно неважно - мое дело предложить) но надеюсь все-таки найдутся сторонники моего решения, как по мне оно все-таки более удобное нежели иные, но да это лишь мой взгляд на ситуацию?

кстати никто не в курсе, а какие мировые чаты по js есть??

Konstantin
17.02.2018
06:17:23
меня тут засунули в какой-то

@hellojschannel

Дмитрий
17.02.2018
06:21:20
это канал) я же говорю про чаты?

Andrey
17.02.2018
06:43:24
Попробуй описать что такое асинхронной выделение памяти. И будет норм.

Дмитрий
17.02.2018
06:50:31
Google
Дмитрий
17.02.2018
07:21:57
Ты используешь не те инструменты для решения собственной задачи.
скорее я предлагаю создать новые инструменты для работы с асинхронными объектами через классы, что на мой взгляд удобнее)

Дмитрий
17.02.2018
07:35:22
ну вообще подразумеваю объект, который обладает асинхронными свойствами - обещаниями часть обещаний я предлагаю получить сразу при создании new, если это нужно часть обещаний можно получить потом, если это опять же нужно

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

ну или при создании

Admin
ERROR: S client not available

Дмитрий
17.02.2018
07:41:33
ну можно и так сказать: я пишу для понимания что асинхронным объектом для простоты я назвал объект с обещаниями и весь вопрос лишь в том, чтобы эти обещаниями можно было получить сразу при создании объекта через new

пока же вся проблема только в идеях в головах других да придется подождать да возможно будут ошибки но в любом случае - придется ждать и будут ошибки почему не в new я так и не понял

Andrey
17.02.2018
07:44:40
Вот твой асинхронный конструктор.

Дмитрий
17.02.2018
07:45:26
эм ты сейчас сказал какую-то странную фразу? если нет объекта, что с ним делать? ничего ясно дело может стоит подождать пока он создаться?

для этого собственно и есть ключевое слово - await

Дмитрий
17.02.2018
07:46:43
new_car = await new car('red');

Andrey
17.02.2018
07:47:08
new_car = await new car('red');
Ок в это время другая функция хочет работать с твоей машиной.

Поэтому конструктор должен быть синхронным.

Дмитрий
17.02.2018
07:47:45
еще раз говорю с чем работать? объект еще не создан

Google
Andrey
17.02.2018
07:48:04
еще раз говорю с чем работать? объект еще не создан
Ок. Одновременно создаётся 2 объекта.

Какой оставляем?

Дмитрий
17.02.2018
07:48:58
в смысле создается два объекта? как именно? мы можем создвать их как параллельно - так и по очереди

все зависит от твоих задач

Andrey
17.02.2018
07:49:41
Дмитрий
17.02.2018
07:50:25
мы можем создвать так Promise.all а можем создавать так await obj1 await obj2

а каком случае идет речь?

я не понимаю твоей задачи

Andrey
17.02.2018
07:50:47
мы можем создвать так Promise.all а можем создавать так await obj1 await obj2
А можем создавать в замыкании асинхронный объект.

Из 2 разных функций, которые выполняются по порядку.

Дмитрий
17.02.2018
07:52:16
все равно не совсем могу понять о чем именно речь можешь написать в виде кода

Andrey
17.02.2018
07:52:34
Будет долго, так как я с телефона. Но ок, сейчас напишу.

let a = null const f1 = async () => a = await new B() const f2 = async () => a = await new C()

И после через promise.all вызываем эти 2 функции.

ujeenator
17.02.2018
07:54:57
я снова тут, и влезу со своими пятью копейками

Andrey
17.02.2018
07:55:01
Что будет в А?

Дмитрий
17.02.2018
07:55:18
те ты пытаешься создать один и тот же объект из разных функций?

ujeenator
17.02.2018
07:55:19
let a = null const f1 = async () => a = await new B() const f2 = async () => a = await new C()
это не реальный пример и в каком то смысле race condition

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