Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Голосуем за приватные свойства в кофескрипте (https://javascript.ru/forum/offtopic/60918-golosuem-za-privatnye-svojjstva-v-kofeskripte.html)

Mаxmaxmаximus 27.01.2016 11:42

Голосуем за приватные свойства в кофескрипте
 
https://github.com/jashkenas/coffeescript/issues/4190

Mаxmaxmаximus 27.01.2016 14:29

бля этот мудак говорит что оно не приватное раз есть доступ из вне инстанса. бляяяяя. создатель кофескрипта еще и идиот оказывается?? это многое обьясняет)))))


я ему обьяснил все на пальцах:

you absolutely do not understand programming, you should be ashamed. Private does not mean that we are protecting the property from hackers. Private means encapsulation inside a class. which in this case is provided namespace. man, will learn at least the basics of programming.

open this issue, and Go and teach programming!

Mаxmaxmаximus 27.01.2016 14:33

о божееее, теперь вам понятно почему этот мудак не добавляет ES6 поддержку???? ДА ПОТОМУ ЧТО ОН ПРОСТО ТУПОЙ!! черт я щас форкну кофескрипт нахрен! он выбесит меня

Mаxmaxmаximus 27.01.2016 14:39

Цитата:

ладно, я научу тебя программированию:

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

тот факт что к этим свойствам МОЖНО получить доступ извне не делает их не приватными. приватность нужна не для этого, она нужна для предотвращения конфликта имен при наследовани классов. и оно достигается через уникальные пространства имен для каждого класса.


урок окончен. теперь ты чуть чуть приблизился к моему уровню.
надеюсь поймет

Mаxmaxmаximus 27.01.2016 14:50

бля какие они мудакии они не могут обьяснить почему моя хуйня не работает но отказываются её делать, блять реально пора бы взять в свои руки и написать не coffee++ а нормальный coffee harmony

отказываются делать генераторы, отказываются делать итераторы, отказываются делать поддержку es7
ну не мудаки ли?

Mаxmaxmаximus 27.01.2016 14:51

ребят ну поддержите меня? может я не прав????

Mаxmaxmаximus 27.01.2016 14:59

https://monosnap.com/file/VT1hM8pXIE...6CwdFFL2Uc.png
революция

Erolast 30.01.2016 09:55

Цитата:

ребят ну поддержите меня? может я не прав????
Не прав.

Mаxmaxmаximus 30.01.2016 11:25

Erolast, тогда опровергни мои аргументы. Ведь все что я сказал на 100% верно. Быть может у меня просто более глубокий уровень понимания программирования чем ваш по этому вы не в состоянии осознать моих мыслей? Давай проверим. Опровергни мои аргументы. (ты не сможешь, но давай дадим шанс)

Erolast 30.01.2016 18:13

Цитата:

опровергни мои аргументы
Зачем? Ты ведь все равно пошлешь нахер с аргументацией в духе "мне виднее".

Собственно, ты сам об этом и говоришь:
Цитата:

Ведь все что я сказал на 100% верно. Быть может у меня просто более глубокий уровень понимания программирования чем ваш по этому вы не в состоянии осознать моих мыслей?

Mаxmaxmаximus 30.01.2016 18:59

Erolast, пожалуйста, приведи какой нибудь аргумент ад рем
http://ru.wikipedia.org/wiki/Ad_hominem


Приватное свойство не будет доступно из вне инстанса так как у свойств будет использоваться префикс, который человек обязан будет не использовать из вне. этот префкс либо пробел либо _, таким образом достигается инкапсуляция внутренних свойств внутри класса. второе: свойство не будет доступно классам наследникам так как будет использоваться уникальный для класса префикс в стиле Math.random(), таким образом будут 2 префикса, один для защиты от доступа из вне обьекта _ второй для защиты доступа из дочерних классов

пример такого свойства this['_EventEmitter_5344355_events'] = []

первый префикс _ второй префикс "EventEmitter_5344355_"


таким образом достигается инкапсуляция.


что до протектед свойств для них достаточно просто префикс защищающий от доступа извне инстанса добавлять, то есть просто _


суть: по скольку все эти свойства физически часть this то не будет ни утечек памяти, от них легко будет наследоваться и оверрайдить, будет сохраняться контекст и.т.п. так же для пущей красоты можно устанавливать эти свойства энумерабле false чтобы они еще и не итерировались извне


какие у тебя контраргументы? я внетерпении. правда


вообще есть еще способ с WeekMap, но его не везде эмулируешь и мы не получаем вообще ни какого плюса. так как в кофескрипте и так использовались служебные переменные а тут просто будут использоваться служебные свойства, и я не вижу ни единого минуса этого испоьлзования. кто нить знает хотя бы ОДНО слабое место моей идеи? ХОТЯ БЫ ОДИН недостаток?

Erolast 31.01.2016 07:51

Цитата:

пожалуйста
Окей.

Во-первых, ты не прав в том, что тебе ответил создатель кофескрипта. Создатель - Jeremy Ashkenas, vendethiel - просто контрибьютор с парой десятков коммитов

Во-вторых, ты не прав в том, что считаешь, что они вообще тебе чем-то обязаны. Не хотят вводить приватные свойства твоей реализации, не хотят вводить приватные свойства вообще - их право, что-то не нравится - пили форк, гитхаб для того и предназначен. Наезжать на них за это - верх кретинизма (как будто тебя кто-то послушает, лол) и неблагодарности.

Цитата:

Приватное свойство не будет доступно из вне инстанса так как у свойств будет использоваться префикс, который человек обязан будет не использовать из вне. этот префкс либо пробел либо _, таким образом достигается инкапсуляция внутренних свойств внутри класса. второе: свойство не будет доступно классам наследникам так как будет использоваться уникальный для класса префикс в стиле Math.random(), таким образом будут 2 префикса, один для защиты от доступа из вне обьекта _ второй для защиты доступа из дочерних классов
Цитата:

устанавливать эти свойства энумерабле false чтобы они еще и не итерировались извне
В таком виде, как по мне, вполне пойдет.

Только два момента:
1) на гитхабе ты про рандомную прибавку к имени свойства ничего не говорил;
2) зачем вообще трахаться со всеми этими префиксами/суффиксами, когда можно просто заюзать символы из ES6? Заодно гарантировано исключается возможность коллизии.
class EventEmitter
  eventListeners = Symbol()
 
  constructor: ->
    @[eventListeners] = []

  getEventListeners: -> @[eventListeners]
 
eventEmitter = new EventEmitter()
console.log eventEmitter; #empty object
console.log eventEmitter.getEventListeners(); #array

Mаxmaxmаximus 31.01.2016 11:55

Цитата:

Сообщение от Erolast
на гитхабе ты про рандомную прибавку к имени свойства ничего не говорил;

1) говорил вот скриншот с доказательствами

2) зачем вообще трахаться со всеми этими префиксами/суффиксами, когда можно просто заюзать символы из ES6? Заодно гарантировано исключается возможность коллизии.

я думал и про символы и про викмап, но они же типа кококо за старые браузеры, в старых нет викмапа и символов, но что если полифил на символы?


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

for i in [1,2,3]
private[i+'trololo'] = 11

как тогда обратиться к private.i2 ?? где хранить его символ и когда его создавать? и как узнать какую строку вернет выражение в аксессоре [] ?

Цитата:

Сообщение от Erolast
Во-первых, ты не прав в том, что тебе ответил создатель кофескрипта.

у кофескрипта не один создатель а все кто контребьютеры. следовательно я прав и верно употребил слово. я так его и задумывал ты просто недопонял. в данном случае "создатель" не указывает на кого то ИЗ НИХ. в данном случае создатель указывает на выборку из всех людей человечества, людей котоыре разрабатывают кофи. ты просто недопонял и это снова моя правота. это чувак с которым я часто списываюсь и он если бы дал свое добро на эту идею то она была бы реализована и вписана в билд 100%. и не важно сколько он лично коммитов сделан, с автором кофескрипта он трется.

Цитата:

Сообщение от Erolast
Во-вторых, ты не прав в том, что считаешь, что они вообще тебе чем-то обязаны.

Не, я так не считаю, следовательно я снова прав. во вторых я дал им идею, бесплатно помог им УЛУЧШИТЬ ИХ ПРОДУКТ, и я охуеваю от тупости когда они без какой либо причины отказываются. в конце я им так и написал что мы заебались вас ждать и я пилю свой форк с блекджеком, es7, генераторами итераторами и шлюхами.

Mаxmaxmаximus 01.02.2016 15:58

https://github.com/jashkenas/coffeescript/issues/4195

Mаxmaxmаximus 01.02.2016 16:13

ну посмотрите, этот мудак опять ничего не смог противопоставить и признал что мои аргументы верны но просто закрыл тикет https://github.com/jashkenas/coffeescript/issues/4195

следовательно я перехватываю управление кофескриптом в свои руки раз им рулят такие неадекватные мудаки. ну а хули делать) опенсорс.

Mаxmaxmаximus 01.02.2016 20:21

Когда кофескрипт пилят мудаки


Mаxmaxmаximus 01.02.2016 20:22


Lemme 01.02.2016 21:50

Mаxmaxmаximus, google translate тебя затралировал. =)

Decode 01.02.2016 22:53

:lol: :lol: :lol:

Mаxmaxmаximus 02.02.2016 12:23

Цитата:

Сообщение от Lemme
google translate тебя затралировал. =)

Нет) так я через него и писал, все одобрено. Я типа под хача кошу

FINoM 07.02.2016 23:58

Ахахаха, это пиздец)


Часовой пояс GMT +3, время: 07:31.