Информация об изменениях

Сообщение Re[13]: Для тех, кто смеется над JavaScript от 18.06.2020 9:53

Изменено 18.06.2020 9:57 Pauel

Re[13]: Для тех, кто смеется над JavaScript
Здравствуйте, TimurSPB, Вы писали:

I>>Вот это сериализуемый доступ, и сделано это руками. То есть, такую гарантию, как сериализуемый доступ, в ноде приходится делать руками. И так с любым разделяемым ресурсом.

TSP>А если из "await update(path, pattern3)" полетит exception, то будет невнятное "Unhandled blabla..." без нормального стека и отладочным адом. Там же надо .catch ещё прописать, если я ничего не путаю. Или уже придумали нового сахара?

Обычный сахар — try...catch, и не надо ничего придумывать.

I>>Реально вот такое чудо не встречается, что бы все опреации сами по себе шли подряд, нужно пилить чтото более приемлемое. Например, соорудить нечто навроде мутекса или семафора:

TSP>Грозились же в ноде сделать мьютексы и потоки.

При чем здесь это? Увидел слово мутекс и решил вспомнить потоки? Мутекс нужен в любой многозадачности, даже однопоточной, как ноде.
Да, в ноде многозадачность на одном потоке.

TSP>Опять же с обработкой ошибок не понятно, и внутренний голос говорит что однажды всё зависнет в строчке "await mutex(() => update(path, pattern))" из-за хрен пойми чего.


Однажды у тебя и в потоке может случиться бесконечный цикл или дедлок. Что с того?

TSP>Как только нужно будет всё сделать в продуктовом качестве, так сразу всё обрастёт соплями и затычками.


У меня ничего не обрастает и работает как положено. Собственно, у большинства примерно так же. Обрастает соплями и затычками в любом стеке, хоть дотнет, хоть нод, хоть джава, по самым разным причинам — в основном из за особого отношения к работе "и так сойдет".
Re[13]: Для тех, кто смеется над JavaScript
Здравствуйте, TimurSPB, Вы писали:

I>>Вот это сериализуемый доступ, и сделано это руками. То есть, такую гарантию, как сериализуемый доступ, в ноде приходится делать руками. И так с любым разделяемым ресурсом.

TSP>А если из "await update(path, pattern3)" полетит exception, то будет невнятное "Unhandled blabla..." без нормального стека и отладочным адом. Там же надо .catch ещё прописать, если я ничего не путаю. Или уже придумали нового сахара?

Обычный сахар — try...catch, и не надо ничего придумывать.

I>>Реально вот такое чудо не встречается, что бы все опреации сами по себе шли подряд, нужно пилить чтото более приемлемое. Например, соорудить нечто навроде мутекса или семафора:

TSP>Грозились же в ноде сделать мьютексы и потоки.

При чем здесь это? Увидел слово мутекс и решил вспомнить потоки? Мутекс нужен в любой многозадачности, даже однопоточной, как ноде.
Да, в ноде многозадачность на одном потоке.

TSP>Опять же с обработкой ошибок не понятно, и внутренний голос говорит что однажды всё зависнет в строчке "await mutex(() => update(path, pattern))" из-за хрен пойми чего.


Однажды у тебя и в потоке может случиться бесконечный цикл или дедлок. Что с того?
Async/await как и промисы, это обычные колбеки унутре, никакой магии.
Потерял маленький кусочек и никогда не дождешься окончания задачи. Чем это отличается от кода в дотнете на асинк-авейтах? Ничем. Потерял — недождешься.


TSP>Как только нужно будет всё сделать в продуктовом качестве, так сразу всё обрастёт соплями и затычками.


У меня ничего не обрастает и работает как положено. Собственно, у большинства примерно так же. Обрастает соплями и затычками в любом стеке, хоть дотнет, хоть нод, хоть джава, по самым разным причинам — в основном из за особого отношения к работе "и так сойдет".