- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
var words=
[
{
'тупая русня ':1/10
,'на бутылку':1/8
,'у тебя же прыщи':1/12
,'руснявый':1/8
,'прыщеблядский':1/8
,',обоссался':1/10
,'обоссал':1/10
,', маму твою ебал,':1/12
,'стекломойная русня':1/8
,'гермашка': 1/10
,'туши пердак':1/8
}
,{
'садись на бутылку':1/8
}
,{'стекломойный русачок':1/11,' пуйло':1/7,'ко-ко-ко':1/6,'рашка':1/10,', пидорахен':1/10}
,{'пидораха,': 1/6,', пидораха полыхнула,': 1/12
,'козлодойч': 1/12
,'гермашка': 1/10
}
,{
'свинособака':1/6
,', мамку ебал,':1/12
,'бамп отсосу ':1/13
,', маму твою,':1/12
,'скрепы':1/11
,' пидораха,':1/8
,'cтекломойный':1/8
,'стекломоя наебнул':1/8
,'садись на бутылку':1/10
,'днище':1/7
,'русня':1/9
,'кремлебот ':1/6
,'порватка':1/10
,'порвался':1/15
,'руснявая пидараха': 1/11
,'бубарех': 1/10
,'хуйня': 1/10
,'залупин': 1/13
,'хуйло': 1/12
}
];
Словарь слов-маркеров анона с /po для склейки крупных кусков кобенады и твердой мелкой психозы.
Даже простейший скрипт, рандомно вставляющий данные фразы показывает весьма аутентичный результат.
Если бы могло мне обратить не программировать пуйло классы. Прямой кобенации хуйня о какой информации о как в своё прыщеблядский временно поэтому я стекломойный русачок за «php». php мне нравится примерно сотня пидораха, миллионов. И тот же функцию указателя - здесь , маму твою, уже нужно менее пидораха, популярен.
приминать вареции зожатия 25 залупин тысяч этой степени операций гермашка
а если у тебя же прыщи современный
сколько вообще свинособака о строк гермашка для реализацию великий хуйло социализм
я только kik и садись на бутылку обидевшегося юзверя, обоссал но она порватка значит классов
и именно поэтому же очень важный для реализации где-то русня между обезьяной и человеком делать вареции зожатия 25 тысяч символов, порватка деталей порядка 10 в 25 степени числа действий бамп отсосу пропорционал часто имеешь с лучший бамп
- пуйло я пидорахен бамп отсосу пара шлюх обоссал свинособака свинособака - это тупая русня лишь жопный интересный скриптухи и прототипное бубарех наследования классы.
source #26412
Ещё "кобенада" звучит охуенно. Летняя кобенада 2020, зимняя кобенада, паракобенада, кобенада по погромированию, сборная кобенийцев.
У меня для царя есть отдельный словарик, для вореций отдельный и для симулятора гопника отдельный.
Тут главнее алгоритм, который будет вставлять эти кейворды в текст органичнее чем я делаю сейчас.
Он не знает «for...in» и «for...of».
Он способен дотянуться до звёзд,
Не считая, что это сон.
Но оставит на гэка вореций след.
Джаваскриптом разрезает говнокода облака
Кобенатор натального полка.
Первый неюзабелен, но поддерживается везде.
Второй юзабелен, но не поддерживается.
Какой-то любитель наследования напишет в другом месте:
Object.prototype.pituh="koko"
И этот говнокод разваливается нахуй:
>const
>`
Вместо хипстерского ES6 говна надо было учить Крокфорда.
Тогда было бы понимание что for~in лучше избегать. Или писать hasOwnProperty.
Запросто.
По дефолту обычные объекты не итерируемые.
У меня ECMA6 сразу вызвал рвотный позыв, будто это жаба скриптушачья.
Какой intermediate value )))
Достал, кстати:
Зачем тогда Symbol? Зачем? Зачем?
Он должен был малость бороться с нарушением инкапуляции, а не примкнуть к нему!
В «PHP» никаких символов нет. Именно поэтому я за «PHP».
> У вас есть объект с полем pituz. Завтра мы в стандарте насрём в прототип Object функцию pituz, и у вас случится питушня.
Но отребье просто врёт своим адептам.
Решение я давал выше: достаточно создать объект не через {}, а из пустого прототипа.
Насколько я помню, это штука не столько для инкапсуляции, сколько для уникальности.
То есть два символа никогда не равны друг другу.
Если «перевести на Java», то это как new Object() с переопределённым toString().
Анскильная пропаганда говорила что-то про ключи. Но это чушь.
Единственное полезное использование уникальности в яве: это решение проблемы ABA в CAS-алгоритмах.
Создавать каждый раз новый Object, так что никогда не будет двух объектов с одной ссылкой.
Зачем это нужно в js — ума не приложу. Если они хотели завезти в js потоки и спинлоки, то это пиздец.
А если не хотели — тоже пиздец, ибо символ бесполезен.
Кроме тех, что сделаны через «for» с одинаковыми ключами.
>>> In contrast to Symbol(), the Symbol.for() function creates a symbol available in a global symbol registry list.
>>> The global symbol registry is a list with the following record structure and it is initialized empty
>>> To avoid name clashes with your global symbol keys and other (library code) global symbols, it might be a good idea to prefix your symbols:
>>> Symbol.for('mdn.foo');
>>> Symbol.for('mdn.bar');
Это же та самая херня, которую скучные дяди с галстуками в своих коболах решали с середины прошлого века: глобальные имена, глобальные имена с ручными префиксами, пространства имён, локальные имена, замыкания… Джаваскриптовые хипстеры как всегда решительно встали в самое начало пути изобретения колеса.
Какой Symbol )))
Прям в лучших традициях C++ сделали ПРАВИЛО, и не забыли добавить парочку исключений.
Питушня ради питушни.
Дрочь ради дрочи.
Я ведь с самого начала про это твержу.
Что весь ECMA6 — набор сахарных, полубесползеных фич, которые превращают, угловатый но в целом простой язык в злобного франкенштейнта.
Эдакий C++ для вёба.
И был он всегда. И никакого сахеру и новой питушни для него не требуется.
Зачем городить хуйню? У меня только один ответ: новый ECMA-стандарт писали анскильные крестухи и жабоёбы.
Видимо просто были не в курсе: что ТАК МОЖНО.
Абсолютно верно подмечено.
Мне в новом js очень многое напоминает то кресты, то яву.
Но именно здесь, сравнение с С++ — это попадание в десяточку.
В сишке были structы c публичными полями, все были довольны.
Потом приходит Сиплюструп, говорит, «эээ, неет ребятки. это слишком просто». Тут же нужна ИНКАПСУЛЯЦИЯ!
И появляется class. Хорошо, есть инкапсуляция.
Начинается следующий логический этап: борьба с ней.
Дальше появляются секции public: и protected: которые позволяют нарушить этот принцип.
А следом какие-то безумные кейворды типа friend.
Вот подход «Питона» мне нравится куда больше: если по задумке автора поле трогать нельзя — к нему просто добавляется нижнее подчёркивание. И всё.
Хочешь залезть во внутренности класса и там насрать — пожалуйста, кто я такой, чтобы запрещать кому-то программировать?
Из-за изменений в кишках словил баг — ну, молодец, твои проблемы.
Более того, запись в питоновские «конвенционно-приватные» поля очень хорошо видна визуально (нижнее подчёркивание после точки сразу бросается в глаза), и на ревью такую херню спокойно могут заворачивать. Да и статический анализ такой кейс выловит элементарно.
А все вот эти вот ЗАПРЕТИТЬ, НЕ ПУЩАТЬ — это какая-то дрисня.
Дрисня полнейшая.
При том вся эта заshitа очень легко обходится.
В яве рефлексией, а в крестах кастом в указатель и прямой записью в память.
Или просто тупым #define private public
Гыгыгы. Я не успел добавить, что вряд ли найдутся параноики которые будут делать #undef всего синтаксиса.
Именно поэтому единственно полезная структура данных это «массивы».
В них нету никаких private элементов.
Это костыль, который появился временно ради #include, потому что в сишке нет модульности. От #include веет «Бейсиком» и «Фортраном».
Ради чего ещё нужны макросы?
Чтобы определять константы через #define? Устарело, ибо появилось «const».
Чтобы определять псевдофункции? Не нужно, когда поддерживается атрибут inline.
Для того, чтобы создавать свой синтаксический сахарок для сокращения кода? А вот для этого сишный препроцессор слишком слаб. Уж лучше в качестве препроцессора использовать какой-нибудь скриптовый ЯП. Даже обосранные «PHP», «Ruby», «Python» и «JS» подойдут.
Ну неправда же, надо просто уметь им пользоваться. Там даже есть косвенная рукурсия. Правда её надо пинать другими макросами, чтоб раскрылась.
>>> С помощью инкапсуляции мы защищаем данные от неправомерного использования.
>>> Для того, чтобы никто не получил доступ к тому, что не следует, мы пользуемся разными средствами для обеспечения безопасности - ставим замки на двери, пароль на телефон или ноутбук, и т.д.
>>> Точно так же и в Java - мы пользуемся разными средствами для обеспечения принципа инкапсуляции. Но как же мы это делаем?
>>> Создавая новый класс, Вы должны думать не только о функциональности, но и о безопасности - кто и при каких условиях может получать доступ к внутренностям Вашего класса.
>>> Инкапсуляция означает, что данные объекта недоступны его клиентам непосредственно. Вместо этого они инкапсулируются — скрываются от прямого доступа извне. Инкапсуляция предохраняет данные объекта от нежелательного доступа, позволяя объекту самому управлять доступом к своим данным.
Ну что за говно!..
В анонимном классе под них автоматом создаются поля.
А вот способа взять приватное поле в js http://govnokod.ru/26415#comment524719 я не знаю до сих пор.
При том что js оффициально инкапсуляцию никогда не декларировал.
>оопитухи
Новый канон! Жаль что я сам не додумался до такого хорошего, исчерпывающего термина.
То JS ругают, из-за того, что статическая проверка ошибок там не работает, то C++ из-за того, что статическая проверка ошибок там работает.
Сделали возможность в статике контролировать доступ к переменным, чтобы не было ошибок. Пользуйтесь и радуйтесь! Но нет, хотим жрать говно и всё сделать public mutable и dir на всех уровнях стека как в питоне, чтобы потом вероятностным образом разбирать в рантайме нагромождения говн и костылей путём тестов и насильственного прогона кода.
А потом переименуешь такое поле, и 100500 клиентов будут срать в уши, что они им пользовались. В случае библиотек нужна не только инкапсуляция, но и обфускация бинарного кода с динамически меняющимся алгоритмом и структурой объектов, чтобы даже если клиент нашёл нужное поле, оно бы в разных объектах в разное время лежало бы в разных местах согласно криптостойкому алгоритму.
Весь спор про инкапсуляцию в крестообразном ООП сводится к тому, нужны ли проперти (и обработка побочных эффектов с ними) или нет. Остальное это какая-то школололирика.
Изменять приватное поле напрямую семантически нельзя не потому, что оно приватное, а потому, что это изменение может иметь побочные эффекты. Тут в дело вступают геттеры-сеттеры ручками в крестах и пропертя в более новых языках.
Впрочем, просто скрывать детали реализации тоже иногда полезно, но только писателям API.
А вот куда более интересный вопрос: зачем вообще в языке нужны сущности, запрещающие прямой доступ к каким-то полям? Кто и какую получает выгоду от бесконечной расстановки всех этих private-protected-public-friend?
Создатель класса? Ничего подобного, по сравнению с упомянутым мной нижним подчёркиванием он получает лишь геморрой.
Пользователь класса? Аналогично: он зарабатывает геморрой тогда, когда ему всё-таки оказывается нужно залезть в кишки класса и что-то там поправить, а когда не нужно — ему от наличия private ни жарко, ни холодно.
Половина оопитухов, обосновывая необходимость наличия отдельных сущностей для обозначения приватных полей, высирают тупую херню, которую я привёл выше и на которую без смеха смотреть невозможно. Именно эта тупая херня и вводит меня в недоумение.
Если ты пишешь reusable код, то он так или иначе является API. Лично я предпочитаю, чтобы моё API было лаконичным и по делу, и не вижу смысла экспозить полдюжины вспомогательных функций, реализацию которых я хочу менять, когда и как мне заблагорассудится.
Нужны ли именно private-protected-public-friend? Тут хез, широк человек, я бы сузил, но ты же можешь писать свои классы с одним только пабликом и течь, никто тебе не мешает.
В няшной, которую местные тролли к месту и не к месту форсят, тоже можно сэмулировать private, просто в хедеры сигнатуры не выносить и всё заебца.
> Половина оопитухов
- сократи количество питухов в круге общения и всё будет ок ¯\_(ツ)_/¯
Блин. Я только хотел за это написать.
>просто в хедеры сигнатуры не выносить и всё заебца
Да. То есть в baseline-языках без приватных переменных (Сишка, Жс) при желании легко добиваются приватности безо всякого ООПетушения.
Не хочешь светить кишками — спрячь локалками в функцию и не свети в хедерах/апи.
Притом это будет идиоматично: переменная естественно ограничена скоупом. А для локальных функций просто нет апишки.
В той же яве я давно понял — что лучший выбор для членов класса, это отсутствие модификаторов вообще.
В няшной и кое-где еще есть внятное понятие интерфейса (хедера) и реализации. Что там в реализации никому не важно
@абоебы (и примкнувшие к ним @опаскриптеры и п@тузы с @арпеями) от такого понятия отказались.
Теперь у них интерфейсом является реализация, и так как по-умолчанию там все открыто, надо (как @артышки) везде писать private.
Но на самом деле не нужно и это.
API это то, что задокументировано.
Если член класса не указан в доке, то он для тебя всё равно, что приватный. Трогать его не надо.
Но есть проблема: документацию умеет писать 0.001% программистов. Остальные просто @рут кодом.
> Но есть проблема: документацию умеет писать 0.001% программистов.
Значит нужно.
Документация противоречит одному из главных принципов программирования, написанному кровью и потом: не стоит писать один и тот же код более одного раза, иначе при его модификации ты можешь забыть поправить его в другом месте.
Поэтому документация должна быть очень тонкой и находиться рядом с кодом (короткое описание функции, её аргументов и контракта где-то рядом с функцией). Документация должна максимально компилироваться, чтобы работали статические проверки (private kokoko - хорошо, _kokoko - плохо, т.к. в первом случае компиляция отследит случайный доступ к kokoko), она должна выводиться из языка или быть частью языка (например, генериться из asserts).
>А следом какие-то безумные кейворды типа friend.
В общем -- да. Это попытка заменить документацию и явные интерфейсы "кодом"
Да и к меньшинствам я толерантно отношусь, в общем-то...
Но у меня этот код вызывает те же ощущения, что implementation defined в крестах. Вроде обычно и работает, но так писать совсем не хочется. Я бы keys() или entries() позвал.
>>но ничего не упадет
Хахаха.
Насрать что программа работает некорректно. Но главное же что «ничего не упадет».
Логика типичных анскильных скриптухов.
Но можешь продолжать насаживать плоть на прототипное наследование классов.
Ему Пи показал конкретный пример того, как код с форином ломается, а он раскукарекался.
Вообще, Пи несколько лет назад кроме прочего показывал, как надо создать объект, который не подвержен такой питушне с засором прототипов, чтобы чистый форин работал. Советую пролистать старые треды и поучиться у мастеров.
В целом - да *
_____
* Это не единственное различие.
* Некорректность не по стандарту, а по сути.
Это всё равно, что сказать, что разница между gets и fclose в том, что один из них некорректен.
> Что такое "суть"?
Абстрактное математическое опейсание.
> какая мне нужна суть?
А это не так важно. Если кому-то нужно, чтобы 2+2 было 5, то это его проблемы. А когда конструкция, в основном, приносит только проблемы, её надо менять.
Он нашёл в гугле первую попавшуюся статейку про difference for~in for~of и пытался умничать.
А код примера http://govnokod.ru/26415#comment524552 похоже 1-в-1 скопирован с MDNa
Предлагаю убедиться:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in
Ну раз в статье на MDN ничего не написали об острых углах for~in, то гость про это и не в курсе.
«реальный пример», доооо.
Тебя попросили реальный пример. А ты взял первый с гугла.
Если бы ты дал пример с рабочего кода, он бы наглядно показал неудобность for~in.
>было бы странно, если бы я выдумывал пример с ноля
>>я выдумывал пример с ноля
Об этом и речь. Если бы не умничал на ГК, а писал на js, и получал за свою писанину деньги.
То у тебя было бы множество реальных примеров, прямиком из кода и выдумывать ничего не нужно.
Q.E.D.
>Проблема в том, что ты не знал чем in отличается от of, и вероятно думал, что они оба итерируются по ключам.
Ещё раз сообщаю разницу.
for~in поддерживается везде, но неюзабелен.
for~of юзабелен, но не поддерживается IE.
Итог: оба пока что бесполезны.
И при этом сами в соседних статьях показывают полифиллы с Object.prototype... Заебись обучение.
Аахаха.
Это знать надо, это классика!
А скриптухи и анскильные вкатыши должны страдать.
Строго говоря — да, этим они различаются. gets.is_correct() != fclose.is_correct().
Да, верно.
Разумеется, верно.
Тут нет слова того "разница", под которым часто подразумевают "фундаментальное различие" или "важное различие", из-за которого утверждение Пи выглядит чуть шероховатым. С глаголом "отличаться" это утверждение верно, и хрен придерёшься.
Судя по учебным примерчикам с MDNa никаких реальных задач на jse нет и быть не может.
Наконец-то JavaScript Enterprise Edition!
for~in, with, undefined вместо void, итд
Причём сама по себе идея with — реально годная. Её чуть-чуть недоработали.
Нужно было cделать точечку спереди, как в бейсике.
Тогда бы неоднозначностей не было в принципе.
Умный бы понял сразу.
>как надо создать объект, который не подвержен такой питушне с засором прототипов
Да. Из пустого прототипа.
Питузы — это камни, обмотанные сетями. Они служат как грузила, удерживающие невода. А оттяжки — это по сути веревки. Вообще на рыбалке все то, что тянут, называют оттяжками. Основное — крепи головную питузу!
И вот уже лодки привязываются покрепче, крепятся кунгасы, ловушки, чтобы от питуз оттяжка не оборвалась.
Багор и трап.
На судне багор используют, чтобы доставать предметы из воды или швартоваться. Может применяться для работы с парусами. На суше можно использовать для того, чтобы затаскивать лодки, или, к примеру, выволакивать брёвна из воды.
Кокой калхоз )))
Пидорашки даже не могут позволить себе нормальные грузила.
Ещё неплохо бы прикрутить словоморфер для этих выражений. Но в рамках простого js usersript это трудно.
Ecma скриптухи-анскилябры ничего сложнее leftpad ведь не могут предложить.
https://govnokod.ru/26269
https://i.imgur.com/ByWXY9Z.png
В вашу пизду, я царь, как это, знаете, на то ваше государство и построено, чтобы не появлялись у меня в жопе коммунистические свиньи. На вашем государстве, сукины дети, сидит козлина Депутат, который уже ваш статус давно сократил, а вместе с ним и все ваши денежки. Это он, гнида, хочет провести процедуру в пизду органа Мистерий, за которую считается, что эта хуйна ему заслана белой лошадью за кровь, путана простецкая. А трахать сисек вы будете по мере своих сил и способностей, которые у вас будут. И пусть это будет вашим последним шансом на выживание, блядь. Я царь, как хрен моржовый.
for~in по {...} без hasOwnProperty.
Кто-то добавляет новый «полезный» метод и всё разваливается.
2. Выебал твою маму
3. Обоссался
4. Обосрался
6. Сел на бутылку
7. Потушил пердак
8. Подхуйлятник (?)
9. Днище
Трап, багор и питуз.
Набор днища состоит из взаимно пересекающихся продольных (киль, днищевые стрингеры) и поперечных связей (флоры). Основной продольной связью днищевого набора является киль, который проходит по всей длине корабля, совпадая с его диаметральной плоскостью. В оконечностях корабля киль соединяется со штевнями: с форштевнем — в носовой оконечности и с ахтерштевнем — в кормовой.
Днищевые стрингеры представляют собой продольные балки, идущие параллельно килю, и вместе с ним обеспечивающие продольную прочность корпуса.
Числа — это, я так понимаю, веса для вероятности возникновения фразы? А покажи код, которым ты выбираешь фразу с учётом этих вероятностей?
https://twitter.com/khlevnov/status/1249775612497145864
Предполагают, что это фрагмент кода бота.
Этот петух свои коммиты из гитхаба в твиттор перепосчивает?