
Alexander
21.04.2018
03:11:22
В js массив - массив и не более
Все остальное реализуется объектами

Котяй Негодяй
21.04.2018
03:11:41

Alexander
21.04.2018
03:12:01
Я же говорил про объекты в понятиях ООП

Google

Котяй Негодяй
21.04.2018
03:12:11
Есть Map
Есть Set.

Alexander
21.04.2018
03:12:32
Почти никогда

Котяй Негодяй
21.04.2018
03:12:58

Alexander
21.04.2018
03:14:11
Сама по себе динамическая типизация очень удобна, если ее грамотно использовать

Котяй Негодяй
21.04.2018
03:14:56

Alexander
21.04.2018
03:15:17
Хотя в PHP можно и статикой ебашить

Котяй Негодяй
21.04.2018
03:15:19
Дело не в нерадивости, а в том, что ты просто человек.

Alexander
21.04.2018
03:15:24
Тоже никто не запрещает

Google

Котяй Негодяй
21.04.2018
03:16:01

Alexander
21.04.2018
03:16:03

Котяй Негодяй
21.04.2018
03:16:24

Alexander
21.04.2018
03:16:40

Котяй Негодяй
21.04.2018
03:16:54
Лишает
Строгая или статическая?
Ох...
Ладно.

Alexander
21.04.2018
03:18:47
Что вообще за статическая типизация, строгая, если уж ты в термины.

Котяй Негодяй
21.04.2018
03:18:48
Я так и не понял, как бы ты поступил с переменными окружения в ноде.

Алекс
21.04.2018
03:18:48
«Роскомпозор», «гей-бар» и «психдиспансер». Пользователи массово меняют названия Роскомнадзора в Google Maps:
kod.ru/polzovatieli-nachali-izdievatsia-nad-roskomnadzorom-v-google-maps/

Котяй Негодяй
21.04.2018
03:19:13

Alexander
21.04.2018
03:19:42
Это быстро, удобно, не затратно

Котяй Негодяй
21.04.2018
03:24:10
Так же как и в PHP, вывел бы их в глобальную область видимости
Ну, ты же понимаешь, что это вкусовщина. А в JS, внезапно, в глобал скоуп в принципе срать не принято. Ничто не мешало сделать так в ноде. И этому отвели определённое место из вполне определённых соображений. То, что в пыхе окружение валится в глобал-скоуп, — не значит, что это правильно. Чисто в теории это может привести к коллизиям имён переменных окружения и локальных.
> То, что в пыхе окружение валится в глобал-скоуп, — не значит, что это правильно.
Ну и щас бы пыху ставить в пример как эталон архитектуры. =)
Валить окружение в глобал скоуп — это поведение на уровне баш-скриптов, так-то.

Alexander
21.04.2018
03:29:38
Тогда поясни, почему это не правильно?
Я свою позицию пояснил

Котяй Негодяй
21.04.2018
03:34:37
Тогда поясни, почему это не правильно?
Ещё раз — это вкусовщина. Тем не менее, я вижу в этом недостаток — риск возможных коллизий имён переменных. Тем более что в пых всё плохо с явностью, когда речь идёт о подключаемых файлах.
Т.е. моя конструктивная позиции состоит в том, что расположение переменных в специально отведённом объекте не является недостатком. Субъективно я вижу недостаток в глобальном енвайрменте, и, более того, в ноде я бы сделал этот объект подключаемым, как, например, встроенный модуль для работы с ФС (его нужно явно подключить).

Google

Alexander
21.04.2018
03:35:47
Ещё раз — это вкусовщина. Тем не менее, я вижу в этом недостаток — риск возможных коллизий имён переменных. Тем более что в пых всё плохо с явностью, когда речь идёт о подключаемых файлах.
Т.е. моя конструктивная позиции состоит в том, что расположение переменных в специально отведённом объекте не является недостатком. Субъективно я вижу недостаток в глобальном енвайрменте, и, более того, в ноде я бы сделал этот объект подключаемым, как, например, встроенный модуль для работы с ФС (его нужно явно подключить).
Так-так, давай немножко уточню свою позицию
Я против объявления глобальных переменных

Котяй Негодяй
21.04.2018
03:36:22
Т.е. я в принципе за то, чтобы оставить в глобал скоупе только функцию require. Но это параноидальная позиция, да.

Alexander
21.04.2018
03:36:26
Я лишь не против суперглобалов
require использовать ни в коем случае нельзя

Котяй Негодяй
21.04.2018
03:37:08
> Я против объявления глобальных переменных
> Я лишь не против суперглобалов
Эмм... Чё?

Alexander
21.04.2018
03:37:09
Только require_once

Котяй Негодяй
21.04.2018
03:37:21

Alexander
21.04.2018
03:37:34

Котяй Негодяй
21.04.2018
03:37:36
Это то, что я бы сделал в ноде.

Alexander
21.04.2018
03:38:52
Есть ряд суперглобальных переменных. $_SERVER, $_REQUEST, $_GET, $_POST.. и т.д.
Они нужные и удобные

Котяй Негодяй
21.04.2018
03:39:25
Ксати, странно — я не вижу тебя в чатике: @phpGeeks. Возможно, будет полезно. Это весьма сильное сообщество.

Alexander
21.04.2018
03:39:45
Так же, ты можешь сам вывести любую переменную в глобальную область видимости

Котяй Негодяй
21.04.2018
03:39:52

Alexander
21.04.2018
03:40:18
Так вот, инструкция global - это не БРО)))
Так делать не кошерно

Котяй Негодяй
21.04.2018
03:40:39
А тперь смотри.
Вот жс файл:
const blablabla = 'value'
export function getBlabla() {
return blablabla
}
Переменная blablabla не лежит в глобале. Как и getBlabla, впрочем. Тем не менее, ты можешь контролировать доступ к ним снаружи. Инкапсуляция, да, @wizlab? =)

Google

Котяй Негодяй
21.04.2018
03:44:40
Доступна только getBlabla. И то, только в том случае, если ты импортируешь этот файл в другом файле.
Но если у меня будет переменная окружения blablabla, то это приведёт к коллизии.
И единственный правильный выход — определить энвайрмент в отдельное место.

Alexander
21.04.2018
03:46:31
Вот тут, на мой взгляд и заключается одна из путаниц с переменными (в твоем случае константа) в JS
К примеру

Котяй Негодяй
21.04.2018
03:49:03
В чём же заключается путаница? =)

Alexander
21.04.2018
03:49:21
var tatata = 1;
function tata(){
var tatata = 2;
return tatata;
}
console.log(tata());

Котяй Негодяй
21.04.2018
03:51:10

Alexander
21.04.2018
03:51:11
Если внутри объявить переменную, то он ее перепишет.. внутри снаружи все останется так же. А если не объявить, то ты будешь общаться с глобальной.
Нет)

Admin
ERROR: S client not available

Котяй Негодяй
21.04.2018
03:51:43

Alexander
21.04.2018
03:51:47
В php области видимости четко разграничены

Котяй Негодяй
21.04.2018
03:52:08
Лексическая область видимости — это нормально.
Тогда заодно и расту выдай пропиздонов. =)

Alexander
21.04.2018
03:52:48
Если ты явно не указал, что переменная глобальная (чего, как я говорил, делать не стоит) то хрен ты где ее увидишь кроме своей области видимости
Там можно явно указывать хочешь ты ее глобальной делать, али нет

Котяй Негодяй
21.04.2018
03:54:00

Google

Alexander
21.04.2018
03:57:01

Котяй Негодяй
21.04.2018
03:57:14
const setProp =
name => value => obj =>
({ ...obj, [name]: value })
Вот тсколько гоморроя нужно, чтобы функцию каррировать на пыхе? =)

Alexander
21.04.2018
03:58:25
Точно. Нафиг надо. =)
Если ты пояснишь, что этот код делает, я тебе скажу, как то же самое на PHP сделать)
Без вот этого вот невнятного геморроя

Котяй Негодяй
21.04.2018
04:02:07
Возвращает новый объект, конечно же.
Что такое каррирование, я думаю, ты знаешь.

Alexander
21.04.2018
04:03:53
0_o

Котяй Негодяй
21.04.2018
04:04:00
Если что, это важно.

Alexander
21.04.2018
04:04:43
Ээм... да, но за 14 лет работы не приходилось так извращаться
П - проектирование
)

Котяй Негодяй
21.04.2018
04:06:28

Alexander
21.04.2018
04:06:53
В таком случае приведи простой реальный пример, где это необходимо

Котяй Негодяй
21.04.2018
04:08:01
П - проектирование
У тебя это вызывает усмешку, т.к. ты сделал вывод быстрее, чем подумал. Это называется стереотип. Именно так он и работает. Это когнитивная ловушка.

Alexander
21.04.2018
04:08:36
Блин... я тут ни чьи чувства не поцарапал?)
На пальцах

Котяй Негодяй
21.04.2018
04:10:28