@JSlang

Страница 628 из 2237
Тимур
10.02.2017
07:26:11
аа.. Все раздуплил)) Сетка оказывается эт не скрипт - это просто сетка, визуально артефакты сильно сжатго видео скрывает http://demo.ergo7.net/ergo/video-slider.html

Google
Dreamerinnoise
10.02.2017
07:35:38
Кажется тут кто-то не знает как работают геттеры-сеттеры

Котяй Негодяй
10.02.2017
07:57:33
Оу. Спасибо.

Кажется тут кто-то не знает как работают геттеры-сеттеры
Я уверен, ты тоже много чего не знаешь.

Alex Фэils?︙
10.02.2017
08:00:22
Кажется тут кто-то не знает как работают геттеры-сеттеры
Это норма. Я тоже не знаю. Т.к. юзаю до хера языков, то все детали не помню. Поэтому подглядываю в инет

Dreamerinnoise
10.02.2017
08:01:19
Я уверен, ты тоже много чего не знаешь.
Верно. В этом нет ничего страшного :3 Только я не называю костылями то, в чем не разбираюсь.

Котяй Негодяй
10.02.2017
08:04:11
Верно. В этом нет ничего страшного :3 Только я не называю костылями то, в чем не разбираюсь.
Всем свойственно ошибаться. Я назвал это костылём, т.к. думал, что правильно понимаю его работу.

Если б сомневался, то пошёл бы гуглить. =)

Vladimir
10.02.2017
08:17:04
чтобы не стер записанное ранее
https://t.me/joinchat/AAAAAD3Uyr3trzb9rRc77g

Roma
10.02.2017
08:33:44
set prop(newProp) { this._prop = newProp }

Сергей
10.02.2017
08:37:03
Roma
10.02.2017
08:37:40
я так понял ошибка на скрине вызвана тем, что в классе забли добавить сеттер

из скринов выше

Google
Roma
10.02.2017
08:37:59
только вошел в группу )

как на чистом JS, я точно не знаю, использую TS, там именно так

Vladimir
10.02.2017
08:38:31
Ага

Roma
10.02.2017
08:39:03
ну вот, чтобы можно было test.prop = 1 сделать, то нужен сеттер

Сергей
10.02.2017
08:39:51
я думал юзать сеттеры/геттеры плохой стиль

Narek
10.02.2017
08:40:06
я так понял ошибка на скрине вызвана тем, что в классе забли добавить сеттер
Ну вы чат читайте хоть, я там как раз человеку показывал, что если нет сеттера - нельзя будет записать в поле

Ywein
10.02.2017
08:40:39
ну вот, чтобы можно было test.prop = 1 сделать, то нужен сеттер
Там смысл был в том чтоб как раз нельзя было сделать.

Roma
10.02.2017
08:41:05
я думал юзать сеттеры/геттеры плохой стиль
Я думаю все зависит от того, что в итоге должно выйти :)

Сергей
10.02.2017
08:41:06
зачем что-то запрещать?

всегда можно сделать test._prop = 1

лучше уж юзать функции, а не сеттеры/геттеры

Narek
10.02.2017
08:42:03
Почему?

Roma
10.02.2017
08:42:04
Там смысл был в том чтоб как раз нельзя было сделать.
тогда, чтобы не было ошибки set prop(newProp) { console.warn('You can\'t do that) }

Сергей
10.02.2017
08:42:26
Почему?
bad practices

Narek
10.02.2017
08:42:35
Это не аргумент

Сергей
10.02.2017
08:42:47
Почитай кодстайл от airbnb

там тебе даже объяснят почему

Ywein
10.02.2017
08:43:55
зачем что-то запрещать?
Ну это вопрос из серии зачем нужны private свойства, const, и всякие immutable. Грубо говоря это нужно, чтобы уменьшить количество потенциально возможных ошибок

Google
Ywein
10.02.2017
08:45:49
Roma
10.02.2017
08:46:00
я уже год как использую TypeScript, там это все есть. И на JS, который нативный, совсем не хочется кодить.

Narek
10.02.2017
08:46:44
Почитай кодстайл от airbnb
Такие себе у них аргументы, любой способ большего декларирования позволяет более строго описать систему - а это влечет за собой большую стабильность. Собственно в примере с сеттером сразу понятно, что эти поля во-первых торчат наружу и во-вторых если, например есть только геттер - у вас упадет при попытке записи.

Narek
10.02.2017
08:48:42
Тогда ты всю суть теряешь

Сергей
10.02.2017
08:48:53
Такие себе у них аргументы, любой способ большего декларирования позволяет более строго описать систему - а это влечет за собой большую стабильность. Собственно в примере с сеттером сразу понятно, что эти поля во-первых торчат наружу и во-вторых если, например есть только геттер - у вас упадет при попытке записи.
что лучше падение или не имение записывающей функции? Надежднее иметь конкретное API динамичность JS подразумевает, что подавляющее большинство свойств можно записывать И если ты высунул наружу свойство, значит его можно менять. Нормальное API класса это подразумевает. Но если свойство упадет при записи мне придется внезапно начать размышлять в другом направлении, так как это не очевидное поведение.

Narek
10.02.2017
08:48:57
зачем тогда геттер, если можно просто в this прописать

Сергей
10.02.2017
08:49:48
к тому-же сеттеры/геттеры не оптимизируются js-движком, в отличие от функций

Сергей
10.02.2017
08:50:42
Нормально документированный класс как раз покажет, что у поля есть только геттер, а нормальное IDE не даст в него записать
Да бред, я и множество людей не пишут на JS в IDE Я хочу иметь очевидное API не глядя в комменты и документацию Код должен быть самодокументируем

Roma
10.02.2017
08:50:45
имхо если это просто считать и записать проперти, то сеттеры юзать не надо. возникает ситуация, когда уже написанный класс, который уже используется везде. И возникла необходимость выполнения еще каких либо манипуляций с другими переменными, тогда проперти заменяется на сеттеры и геттеры

Сергей
10.02.2017
08:51:30
V8 уже оптимизирует
пруфы в студию! Версию v8 с которой он умеет, версию node.js в которой есть этот v8, и версию хрома в которой он есть

Narek
10.02.2017
08:52:22
https://habrahabr.ru/post/319936/

Сергей
10.02.2017
08:52:37
это пруф?

Roma
10.02.2017
08:53:19
один из моих примеров, когда был осуществлен переход от проперти к гетерам и сеттерам

Admin
ERROR: S client not available

Roma
10.02.2017
08:53:23


Google
Roma
10.02.2017
08:53:32


изначально view был просто проперти

Сергей
10.02.2017
08:54:03
https://habrahabr.ru/post/319936/
только вот геттеров/сеттеров в статье нет

Narek
10.02.2017
08:54:25
Есть же

хотя там странно предложение составлено, может и не оптимизируются

Сергей
10.02.2017
08:54:50


какого хрена при простой записи свойства происходит сложная медленная операция? Это нихрена не очевидно, я даже могу не подозревать о такой херне

это пиздец ребята

Roma
10.02.2017
08:55:39
мде....

зачем ругаися... не зная логики софтины начинаешь судить?

Сергей
10.02.2017
08:57:04
да неважно логика какая

э

это либо легаси

либо говнокод

Roma
10.02.2017
08:57:21
я просто показал пример как прорепти прекачевала в геттеры и сеттеры

Сергей
10.02.2017
08:57:37
лучше бы функцию написал

Roma
10.02.2017
08:58:01
и рафакторить 100500 кода?

Сергей
10.02.2017
08:58:31
вот так и появляется говнокод в проекте

а так ты 100500 кода замедлил в хер знает сколько раз + усложнил понимание кода другими людьми Ты изменил логику

Narek
10.02.2017
08:58:46
зачем ругаися... не зная логики софтины начинаешь судить?
Ну он прав, на самом деле, в геттерах и сеттерах не должно быть много логики, они используются во-первых для инкапсуляции и во-вторых для вычисляемых значений

Google
Roma
10.02.2017
08:59:00
ок

Artem
10.02.2017
08:59:18
@sovamist, в самом по себе set нет ничего страшного, но при условии, что этот set не будет создавать видимых снаружи сайд-эффектов. Если там перегенеряетс внутренний кеш или обновляются внутренние вычисляемые поля - то всё хорошо

но вот если ты сетишь одно поле, а меняется ещё и другое (публично) - то да, то говно

Roma
10.02.2017
09:00:42




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