1. JavaScript / Говнокод #26415

    +3

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 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 для склейки крупных кусков кобенады и твердой мелкой психозы.

    Даже простейший скрипт, рандомно вставляющий данные фразы показывает весьма аутентичный результат.

    Запостил: 3.14159265, 05 Февраля 2020

    Комментарии (109) RSS

    • переведи на JSON
      Ответить
      • Да. Тупая русня а в клетках туши пердак запись приходятся десятком стекломойный русачок торговых марок. Так же днище всё. Потом наконец-то пидораха, порвался несправедливо :-) Козлодойч

        Если бы могло мне обратить не программировать пуйло классы. Прямой кобенации хуйня о какой информации о как в своё прыщеблядский временно поэтому я стекломойный русачок за «php». php мне нравится примерно сотня пидораха, миллионов. И тот же функцию указателя - здесь , маму твою, уже нужно менее пидораха, популярен.
        Ответить
    • прыщеблядский бамп отсосу питоновских строк инструментации (им свинособака подавай видосы), пидорахен необходимо для таки пговоцируете, маму твою ебал

      приминать вареции зожатия 25 залупин тысяч этой степени операций гермашка
      а если у тебя же прыщи современный

      сколько вообще свинособака о строк гермашка для реализацию великий хуйло социализм

      я только kik и садись на бутылку обидевшегося юзверя, обоссал но она порватка значит классов

      и именно поэтому же очень важный для реализации где-то русня между обезьяной и человеком делать вареции зожатия 25 тысяч символов, порватка деталей порядка 10 в 25 степени числа действий бамп отсосу пропорционал часто имеешь с лучший бамп

      - пуйло я пидорахен бамп отсосу пара шлюх обоссал свинособака свинособака - это тупая русня лишь жопный интересный скриптухи и прототипное бубарех наследования классы.

      source #26412
      Ответить
    • 3.14рофессор, но почему бубарех, если вроде баребух?

      Ещё "кобенада" звучит охуенно. Летняя кобенада 2020, зимняя кобенада, паракобенада, кобенада по погромированию, сборная кобенийцев.
      Ответить
      • Кобенада — это из другой оперы.
        У меня для царя есть отдельный словарик, для вореций отдельный и для симулятора гопника отдельный.

        Тут главнее алгоритм, который будет вставлять эти кейворды в текст органичнее чем я делаю сейчас.
        var gop=[
                ,{' вот значит':1/4, ' то есть':1/10}
                
                ,{' значит':1/7   ,' короче':1/4}
                ,{' сука':1/3}
                ,{' чисто':1/4}        
                ,{  ' бля':1/1.5
                    ,' блять':1/1
                    ,' нахуй':1/3
                    ,' в пизду':1/6
                    ,', ёб твою мать, ':1/5
                },        
                {   
                    ' ебись нахуй':1/15
                }
        ]
        Ответить
        • СУКА ЕСЛИ ТЫ ЕЩЕ РАЗ НАПИШЕШ var ВМЕСТО const Я ТЕБЯ УВАЖАТЬ ПИРИСТАНУ ПОНЕЛ СУКА
          Ответить
          • Он не знает слова «let» и слова «const».
            Он не знает «for...in» и «for...of».
            Он способен дотянуться до звёзд,
            Не считая, что это сон.
            Ответить
            • Он не знает слова «const» и слова «let»,
              Но оставит на гэка вореций след.
              Джаваскриптом разрезает говнокода облака
              Кобенатор натального полка.
              Ответить
            • икарус, быстро отвечай не подглядывая чем for in отличается от for of
              Ответить
              • >чем for in отличается от for of

                Первый неюзабелен, но поддерживается везде.
                Второй юзабелен, но не поддерживается.
                Ответить
                • Совершенно ты не прав

                  Они нужны для разного, и поддерживаются во всех браузерах, выпущенных в последние 4 года (и в ноде тоже)

                  То-есть все (кроме Семы) могут их использовать
                  Ответить
                  • Приведи реальный пример использования for in, без костылей с if (Object.prototype.hasOwnProperty.call)
                    Ответить
                    • const object = {javascript: "govno", php: "hujna"};
                      
                      for (const property in object) {
                        console.log(`${property} полная(ое) ${object[property]}`);
                      }
                      Ответить
                      • Ну вот ты и соснул хуйца с for~in.

                        Какой-то любитель наследования напишет в другом месте:
                        Object.prototype.pituh="koko"

                        И этот говнокод разваливается нахуй:
                        javascript полная(ое) govno debugger eval code:6:11
                        php полная(ое) hujna debugger eval code:6:11
                        pituh полная(ое) koko

                        >const
                        >`
                        Вместо хипстерского ES6 говна надо было учить Крокфорда.
                        Тогда было бы понимание что for~in лучше избегать. Или писать hasOwnProperty.
                        Ответить
                        • ты втераеш мне какую-то дичь

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


                          разница между in и of в том, что in итерируется по ключам, а of -- по значениям массива
                          Ответить
                          • По ключам этого объекта и его прототипов.
                            Ответить
                            • Итерируемым ключам этого объекта и его прототипов.
                              Ответить
                              • А я могу добавить неитерируемые ключи? Или они только встроенные?
                                Ответить
                                • >А я могу добавить неитерируемые ключи

                                  Запросто.
                                  Object.defineProperty(obj, 'key', {
                                    enumerable: false,
                                    configurable: false,
                                    writable: false,
                                    iterable:false


                                  По дефолту обычные объекты не итерируемые.
                                  for (var x of {1:2,3:4}) console.log(x);
                                  TypeError: ({1:2, 3:4}) is not iterable


                                  У меня ECMA6 сразу вызвал рвотный позыв, будто это жаба скриптушачья.
                                  Ответить
                                  • VM290:1 Uncaught TypeError: {(intermediate value)(intermediate value)} is not iterable
                                        at <anonymous>:1:15

                                    Какой intermediate value )))
                                    Ответить
                                • Ещё есть Symbol (выкидыш больного воображения авторов для борьбы с умолчательной публичностью ключей, достойный места в стандарте C++ и пары страниц на французском в Войне и мире). Symbol по умолчанию неитерируемый без возни с метаданными свойств и недоставабельный. Наличие полей, спрятанных за символами, если символов нет, можно отследить только по количеству потребляемой памяти.

                                  var x = {};
                                  x[Symbol('a')] = 'меня никто никогда не достанет, т.к. мой символ потерян';
                                  console.log(x[Symbol('a')]); // undefined
                                  Ответить
                                  • Какой пиздец )))

                                    Достал, кстати:
                                    x[Object.getOwnPropertySymbols(x)[0]];  // "меня никто никогда не достанет, т.к. мой символ потерян"
                                    Ответить
                                    • Занятно, не знал об этой питушне.

                                      Зачем тогда Symbol? Зачем? Зачем?
                                      Он должен был малость бороться с нарушением инкапуляции, а не примкнуть к нему!
                                      Ответить
                                      • Я вообще не понял, что такое Symbol в JS. Несколько раз читал документацию по нему, но в памяти ничего не отложилось.

                                        В «PHP» никаких символов нет. Именно поэтому я за «PHP».
                                        Ответить
                                        • Это такой специальный ключ для объекта.
                                          Ответить
                                          • Анскильная пропаганда обосновывала нужность этой срани так.

                                            > У вас есть объект с полем pituz. Завтра мы в стандарте насрём в прототип Object функцию pituz, и у вас случится питушня.

                                            Но отребье просто врёт своим адептам.

                                            Решение я давал выше: достаточно создать объект не через {}, а из пустого прототипа.
                                            Ответить
                                        • >Я вообще не понял, что такое Symbol в JS.

                                          Насколько я помню, это штука не столько для инкапсуляции, сколько для уникальности.
                                          То есть два символа никогда не равны друг другу.

                                          Если «перевести на Java», то это как new Object() с переопределённым toString().

                                          var o1=new Object();                                                 //var o1=Symbol()
                                          var o2=new Object(){public String toString(){return "azaza"}};   //var o2=Symbol("azaza") 
                                          
                                          o1!=o2
                                          Анскильная пропаганда говорила что-то про ключи. Но это чушь.

                                          Единственное полезное использование уникальности в яве: это решение проблемы ABA в CAS-алгоритмах.

                                          Создавать каждый раз новый Object, так что никогда не будет двух объектов с одной ссылкой.

                                          Зачем это нужно в js — ума не приложу. Если они хотели завезти в js потоки и спинлоки, то это пиздец.

                                          А если не хотели — тоже пиздец, ибо символ бесполезен.
                                          Ответить
                                          • > То есть два символа никогда не равны друг другу.
                                            Кроме тех, что сделаны через «for» с одинаковыми ключами.
                                            > Symbol('huj') == Symbol('huj')
                                            < false
                                            
                                            > Symbol.for('huj')
                                            < Symbol(huj)
                                            
                                            > Symbol.for('huj') == Symbol.for('huj')
                                            < true
                                            Ответить
                                            • В «MDN» эпический багор есть:
                                              >>> 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');

                                              Это же та самая херня, которую скучные дяди с галстуками в своих коболах решали с середины прошлого века: глобальные имена, глобальные имена с ручными префиксами, пространства имён, локальные имена, замыкания… Джаваскриптовые хипстеры как всегда решительно встали в самое начало пути изобретения колеса.
                                              Ответить
                                            • >Кроме тех, что сделаны через «for» с одинаковыми ключами.

                                              Какой Symbol )))

                                              Прям в лучших традициях C++ сделали ПРАВИЛО, и не забыли добавить парочку исключений.

                                              .
                                                                 FFFUU`   yL yGML               
                                                              FFFUUFFFUUFFFUUB_  lW             
                                                            gF          gg_M       *.           
                                                           A`           fBgL        \y          
                                                       __yf            FFFUU  MB*w   gW         
                                                     FFFUUB+__         hMMf  W`   lL dOE        
                                                      _B    FFFUU     gyM  yf    L `w \ L       
                                                    jyf       `L      l_E z      L_ yA *A       
                                                    B      FFFUUa.     FF U       ``  \ ly      
                                                   gj    +f      iL       U            W fL     
                                                  rf|   j__       FfU      U           |  ML    
                                                  Ld    `  k       g       `W          f  j*.   
                                                  Lf    W**        k  Fffuufufuufufufu    Lj   
                                                  H     i        yf yfW   L   *L_          l_   
                                                  H     d       y  y   W_ L`*   FFFUUW      g   
                                                  H      Fffuuuu  y W  l `          ` \     g   
                                                  M               FFFUUf               t    dL  
                                                  M               h=`          _.       t    F  
                                                  M.             g           yf `W       L   F  
                                                  kj             j       FFFUU    FFFUU_ L   F  
                                                  ji             |      y        f `f    k   U  
                                                  d k           _      q    FFFUU  FFFUUA    U  
                                                   Ll           j           f   _Wf          U  
                                                   `LI         g       Wf`A L _M`           uU  
                                                    la         f  .a  /    *Gf              U   
                                                     f\       j _f  *g   _+f               Uu   
                                                     i i       Fffuuffuuu                  u    
                                                      L `=L                               U     
                                                      l    `*                             r
                                              Ответить
                                      • >Он должен был малость бороться с нарушением инкапуляции, а не примкнуть к нему!
                                        Питушня ради питушни.
                                        Дрочь ради дрочи.

                                        Я ведь с самого начала про это твержу.
                                        Что весь ECMA6 — набор сахарных, полубесползеных фич, которые превращают, угловатый но в целом простой язык в злобного франкенштейнта.
                                        Эдакий C++ для вёба.
                                        Ответить
                                      • В js есть только один старый-добрый способ сделать инкапсуляцию.

                                        И был он всегда. И никакого сахеру и новой питушни для него не требуется.
                                        inc=function (){
                                           var private=0;
                                           return function(){return ++private;}
                                        }()
                                        
                                        inc();
                                        inc();

                                        Зачем городить хуйню? У меня только один ответ: новый ECMA-стандарт писали анскильные крестухи и жабоёбы.
                                        Видимо просто были не в курсе: что ТАК МОЖНО.
                                        Ответить
                                  • >выкидыш больного воображения авторов для борьбы с умолчательной публичностью ключей, достойный места в стандарте C++

                                    Абсолютно верно подмечено.

                                    Мне в новом js очень многое напоминает то кресты, то яву.

                                    Но именно здесь, сравнение с С++ — это попадание в десяточку.

                                    В сишке были structы c публичными полями, все были довольны.

                                    Потом приходит Сиплюструп, говорит, «эээ, неет ребятки. это слишком просто». Тут же нужна ИНКАПСУЛЯЦИЯ!

                                    И появляется class. Хорошо, есть инкапсуляция.

                                    Начинается следующий логический этап: борьба с ней.

                                    Дальше появляются секции public: и protected: которые позволяют нарушить этот принцип.

                                    А следом какие-то безумные кейворды типа friend.
                                    Ответить
                                    • Читая статьи фанатиков ООП, я всегда недоумевал на части с объяснением нужности ИНКАПСУЛЯЦИИ. Абсолютное большинство этих вореций в сокращённом варианте звучат так: «Если у вашего класса будут доступны внутренние поля, то пользователь сможет его сломать!». Страшно, конечно, что кто-то СЛОМАЕТ мой код… но какого хуя? Эти неведомые ломатели что, залезут в мой репозиторий и там поломают всё что без ИНКАПСУЛЯЦИИ? Или они ко мне на компьютер вломятся? Что это вообще за херня — «сломать класс»? Кому будет плохо от того, что какой-то Вася Пупкин полезет куда не надо и получит ошибку? Не понимаю.

                                      Вот подход «Питона» мне нравится куда больше: если по задумке автора поле трогать нельзя — к нему просто добавляется нижнее подчёркивание. И всё.
                                      Хочешь залезть во внутренности класса и там насрать — пожалуйста, кто я такой, чтобы запрещать кому-то программировать?
                                      Из-за изменений в кишках словил баг — ну, молодец, твои проблемы.
                                      Более того, запись в питоновские «конвенционно-приватные» поля очень хорошо видна визуально (нижнее подчёркивание после точки сразу бросается в глаза), и на ревью такую херню спокойно могут заворачивать. Да и статический анализ такой кейс выловит элементарно.

                                      А все вот эти вот ЗАПРЕТИТЬ, НЕ ПУЩАТЬ — это какая-то дрисня.
                                      Ответить
                                      • >А все вот эти вот ЗАПРЕТИТЬ, НЕ ПУЩАТЬ — это какая-то дрисня.

                                        Дрисня полнейшая.

                                        При том вся эта заshitа очень легко обходится.

                                        В яве рефлексией, а в крестах кастом в указатель и прямой записью в память.

                                        Или просто тупым #define private public
                                        Ответить
                                        • Я в своём коде в каждом файле пишу #undef private, #undef true, #undef false, а то мало ли.
                                          Ответить
                                          • >Я в своём коде в каждом файле пишу #undef private, #undef true, #undef false, а то мало ли.

                                            Гыгыгы. Я не успел добавить, что вряд ли найдутся параноики которые будут делать #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 клиентов будут срать в уши, что они им пользовались. В случае библиотек нужна не только инкапсуляция, но и обфускация бинарного кода с динамически меняющимся алгоритмом и структурой объектов, чтобы даже если клиент нашёл нужное поле, оно бы в разных объектах в разное время лежало бы в разных местах согласно криптостойкому алгоритму.
                                            Ответить
                                      • Несерьёзный наброс.

                                        Весь спор про инкапсуляцию в крестообразном ООП сводится к тому, нужны ли проперти (и обработка побочных эффектов с ними) или нет. Остальное это какая-то школололирика.
                                        Ответить
                                        • При чём тут проперти-то? Я за «private:» и «protected:» питушню загоняю.
                                          Ответить
                                          • Ну как при чём.

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

                                            Впрочем, просто скрывать детали реализации тоже иногда полезно, но только писателям API.
                                            Ответить
                                            • Это подмена понятий. Приватным поле становится не потому, что его изменение должно иметь побочные эффекты, а потому, что его таковым объявил создатель класса. Почему он это сделал — вопрос другой.

                                              А вот куда более интересный вопрос: зачем вообще в языке нужны сущности, запрещающие прямой доступ к каким-то полям? Кто и какую получает выгоду от бесконечной расстановки всех этих private-protected-public-friend?
                                              Создатель класса? Ничего подобного, по сравнению с упомянутым мной нижним подчёркиванием он получает лишь геморрой.
                                              Пользователь класса? Аналогично: он зарабатывает геморрой тогда, когда ему всё-таки оказывается нужно залезть в кишки класса и что-то там поправить, а когда не нужно — ему от наличия private ни жарко, ни холодно.

                                              Половина оопитухов, обосновывая необходимость наличия отдельных сущностей для обозначения приватных полей, высирают тупую херню, которую я привёл выше и на которую без смеха смотреть невозможно. Именно эта тупая херня и вводит меня в недоумение.
                                              Ответить
                                              • Чувак, ты щас каким-то мозгоёбством занимаешься.

                                                Если ты пишешь reusable код, то он так или иначе является API. Лично я предпочитаю, чтобы моё API было лаконичным и по делу, и не вижу смысла экспозить полдюжины вспомогательных функций, реализацию которых я хочу менять, когда и как мне заблагорассудится.

                                                Нужны ли именно private-protected-public-friend? Тут хез, широк человек, я бы сузил, но ты же можешь писать свои классы с одним только пабликом и течь, никто тебе не мешает.

                                                В няшной, которую местные тролли к месту и не к месту форсят, тоже можно сэмулировать private, просто в хедеры сигнатуры не выносить и всё заебца.

                                                > Половина оопитухов
                                                - сократи количество питухов в круге общения и всё будет ок ¯\_(ツ)_/¯
                                                Ответить
                                                • >В няшной, которую местные тролли к месту и не к месту форсят, тоже можно сэмулировать private

                                                  Блин. Я только хотел за это написать.

                                                  >просто в хедеры сигнатуры не выносить и всё заебца

                                                  Да. То есть в baseline-языках без приватных переменных (Сишка, Жс) при желании легко добиваются приватности безо всякого ООПетушения.

                                                  Не хочешь светить кишками — спрячь локалками в функцию и не свети в хедерах/апи.

                                                  Притом это будет идиоматично: переменная естественно ограничена скоупом. А для локальных функций просто нет апишки.

                                                  В той же яве я давно понял — что лучший выбор для членов класса, это отсутствие модификаторов вообще.
                                                  Ответить
                                      • Понятие приватности вообще так себе понятие)

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

                                        @абоебы (и примкнувшие к ним @опаскриптеры и п@тузы с @арпеями) от такого понятия отказались.

                                        Теперь у них интерфейсом является реализация, и так как по-умолчанию там все открыто, надо (как @артышки) везде писать private.

                                        Но на самом деле не нужно и это.

                                        API это то, что задокументировано.
                                        Если член класса не указан в доке, то он для тебя всё равно, что приватный. Трогать его не надо.

                                        Но есть проблема: документацию умеет писать 0.001% программистов. Остальные просто @рут кодом.
                                        Ответить
                                        • > Но на самом деле не нужно и это.
                                          > Но есть проблема: документацию умеет писать 0.001% программистов.
                                          Значит нужно.

                                          Документация противоречит одному из главных принципов программирования, написанному кровью и потом: не стоит писать один и тот же код более одного раза, иначе при его модификации ты можешь забыть поправить его в другом месте.

                                          Поэтому документация должна быть очень тонкой и находиться рядом с кодом (короткое описание функции, её аргументов и контракта где-то рядом с функцией). Документация должна максимально компилироваться, чтобы работали статические проверки (private kokoko - хорошо, _kokoko - плохо, т.к. в первом случае компиляция отследит случайный доступ к kokoko), она должна выводиться из языка или быть частью языка (например, генериться из asserts).
                                          Ответить
                                          • Это типа как literate programming?
                                            Ответить
                                            • Вероятно. Только документация должна быть не частью научной статьи, а максимально компилируемой питушнёй.
                                              Ответить
                                              • Ну вообще есть средства писать доки прямо в заголовке функции, но доки по функции это часть дела, это просто референс.

                                                Хорошая документация куда сложнее: нужна вводная статья, с ответами на вопросы

                                                * общие концепции этого API
                                                * зачем оно нужно
                                                * от каких API зависит
                                                * пример кода

                                                Нет смысла писать
                                                /**
                                                * Creates pitux
                                                * @kurochka instance of kurochka
                                                **/
                                                function createPetuh(koorochka:Koorochka)

                                                если ты не знаешь, кто такой питуз, и зачем он нужен
                                                Ответить
                                    • >В сишке были structы c публичными полями, все были довольны.

                                      >А следом какие-то безумные кейворды типа friend.


                                      В общем -- да. Это попытка заменить документацию и явные интерфейсы "кодом"
                                      Ответить
                            • и что? где-то наисано, что я этого не хочу?
                              Ответить
                              • А где я пишу, что ты этого не хочешь? Просто поправил формулировку.

                                Да и к меньшинствам я толерантно отношусь, в общем-то...
                                Ответить
                                • Броманд, есть такой скрипт
                                  const huilo = {zaza:'bebe'};
                                  for (let k in huilo) {
                                   gippopotam(k, huilo[k]);
                                  }

                                  ты считаешь его неправильным?
                                  Ответить
                                  • Х.з., в теории из-за const и let этот код не взлетит на старых браузерах, т.е. полифиллы в Object.prototype скорее всего никто не пихал...

                                    Но у меня этот код вызывает те же ощущения, что implementation defined в крестах. Вроде обычно и работает, но так писать совсем не хочется. Я бы keys() или entries() позвал.
                                    Ответить
                          • >занаследованный от родителя ключ действительно не обработается, но ничего не упадет
                            >>но ничего не упадет

                            Хахаха.

                            Насрать что программа работает некорректно. Но главное же что «ничего не упадет».

                            Логика типичных анскильных скриптухов.

                            Но можешь продолжать насаживать плоть на прототипное наследование классов.
                            Ответить
                            • С чего ты взял, что она будет работать некорректно? Ты знаешь требования к этой программе?

                              Ты просто не знал чем for..in отличается от for..of, ляпнул какую-то глупость, и обосрался. А теперь пытаешься выкрутиться
                              Ответить
                              • Азаза питуз какой багор )))
                                Ему Пи показал конкретный пример того, как код с форином ломается, а он раскукарекался.

                                Вообще, Пи несколько лет назад кроме прочего показывал, как надо создать объект, который не подвержен такой питушне с засором прототипов, чтобы чистый форин работал. Советую пролистать старые треды и поучиться у мастеров.
                                Ответить
                                • то-есть ты тоже считаешь, что разница между for..in и for..of в том, что один работает некорректно?

                                  Вы там в джаваскрипте все ёбнутые чтоли?
                                  Ответить
                                  • > то-есть ты тоже считаешь, что разница между for..in и for..of в том, что один работает некорректно?

                                    В целом - да *

                                    _____
                                    * Это не единственное различие.
                                    * Некорректность не по стандарту, а по сути.
                                    Ответить
                                    • >Это не единственное различие.
                                      Они занимаются разными вещами. Итерируются по разным сущностям.

                                      Это всё равно, что сказать, что разница между strtok и fclose в том, что один из них некорректен.

                                      >Некорректность не по стандарту, а по сути.
                                      Что такое "суть"?
                                      Откуда ты знаешь, какие у меня задачи, и какая мне нужна суть?
                                      Ответить
                                      • > Это всё равно, что сказать, что разница между strtok и fclose в том, что один из них некорректен.

                                        Это всё равно, что сказать, что разница между 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
                                          const object = {a: 1, b: 2, c: 3};
                                          
                                          for (const property in object) {
                                            console.log(`${property}: ${object[property]}`);
                                          }

                                          Ну раз в статье на MDN ничего не написали об острых углах for~in, то гость про это и не в курсе.
                                          «реальный пример», доооо.
                                          Ответить
                                          • Проблема в том, что ты не знал чем in отличается от of, и вероятно думал, что они оба итерируются по ключам.

                                            Тебе было показано, что это не так, и ты завертелся ужом на сковородке, и стал рассказывать про проблемы for..in, тогда как in не является альтернативой of, а of не является альтернативой in.

                                            Пример взят из памяти, но туда он, разумеется, попал с MDN (было бы странно, если бы я выдумывал пример с ноля)
                                            Ответить
                                            • >Пример взят из памяти, но туда он, разумеется, попал с MDN

                                              Тебя попросили реальный пример. А ты взял первый с гугла.
                                              Если бы ты дал пример с рабочего кода, он бы наглядно показал неудобность for~in.

                                              >было бы странно, если бы я выдумывал пример с ноля
                                              >>я выдумывал пример с ноля

                                              Об этом и речь. Если бы не умничал на ГК, а писал на js, и получал за свою писанину деньги.
                                              То у тебя было бы множество реальных примеров, прямиком из кода и выдумывать ничего не нужно.
                                              Q.E.D.


                                              >Проблема в том, что ты не знал чем in отличается от of, и вероятно думал, что они оба итерируются по ключам.
                                              Ещё раз сообщаю разницу.
                                              for~in поддерживается везде, но неюзабелен.
                                              for~of юзабелен, но не поддерживается IE.

                                              Итог: оба пока что бесполезны.
                                              Ответить
                                          • > ничего не написали об острых углах for~in

                                            И при этом сами в соседних статьях показывают полифиллы с Object.prototype... Заебись обучение.
                                            Ответить
                                            • Это же вики, возьми и поправь сам.
                                              Ответить
                                              • >Это же вики, возьми и поправь сам.

                                                Аахаха.
                                                Это знать надо, это классика!
                                                А скриптухи и анскильные вкатыши должны страдать.
                                                Ответить
                                        • >Это всё равно, что сказать, что разница между gets и fclose в том, что один из них некорректен.

                                          Согласен. Но разве разница между ними в этом?

                                          >Абстрактное математическое опейсание.
                                          А можно ссылку на источник этого определения?

                                          > А когда конструкция, в основном, приносит только проблемы, её надо менять.

                                          Ради бога.

                                          Утверждение "for in -- неудобная конструкция" на мой взгляд верно.

                                          Утверждение "разница между for in и оператором плюс в том, что for in некорректен" -- неверно
                                          Ответить
                                          • > Но разве разница между ними в этом?
                                            Строго говоря — да, этим они различаются. gets.is_correct() != fclose.is_correct().
                                            Ответить
                                            • Отличаются-ли они чем либо еще? Можно ли всегда одно (некорректное) заменить на другое(корректное)?

                                              Является ли это основным отличием?

                                              Они так же отличаются количеством букв.
                                              Верно-ли утверждение "fclose отличается от gets количеством букв"?
                                              Ответить
                                              • В контексте дискуссии — неважно.

                                                Да, верно.
                                                Ответить
                                              • > Верно-ли утверждение "fclose отличается от gets количеством букв"?
                                                Разумеется, верно.

                                                Тут нет слова того "разница", под которым часто подразумевают "фундаментальное различие" или "важное различие", из-за которого утверждение Пи выглядит чуть шероховатым. С глаголом "отличаться" это утверждение верно, и хрен придерёшься.
                                                Ответить
                                      • >Откуда ты знаешь, какие у меня задачи, и какая мне нужна суть?

                                        Судя по учебным примерчикам с MDNa никаких реальных задач на jse нет и быть не может.
                                        Ответить
                                    • В js есть множество вещей о которых мы знаем, но которые лучше не использовать во избежание wtfов.

                                      for~in, with, undefined вместо void, итд

                                      Причём сама по себе идея with — реально годная. Её чуть-чуть недоработали.

                                      Нужно было cделать точечку спереди, как в бейсике.
                                      With Form1
                                          .Left =100
                                          .Top  = 0
                                          .Name = "Window"
                                      End With


                                      Тогда бы неоднозначностей не было в принципе.
                                      Ответить
                                • Ключевое слово hasOwnProperty было повторено ТРИЖДЫ.
                                  Умный бы понял сразу.

                                  >как надо создать объект, который не подвержен такой питушне с засором прототипов
                                  Да. Из пустого прототипа.
                                  Ответить
                                • >Азаза питуз какой багор )))

                                  Питузы — это камни, обмотанные сетями. Они служат как грузила, удерживающие невода. А оттяжки — это по сути веревки. Вообще на рыбалке все то, что тянут, называют оттяжками. Основное — крепи головную питузу!

                                  И вот уже лодки привязываются покрепче, крепятся кунгасы, ловушки, чтобы от питуз оттяжка не оборвалась.

                                  Багор и трап.

                                  На судне багор используют, чтобы доставать предметы из воды или швартоваться. Может применяться для работы с парусами. На суше можно использовать для того, чтобы затаскивать лодки, или, к примеру, выволакивать брёвна из воды.
                                  Ответить
                                  • > камни, обмотанные сетями
                                    Кокой калхоз )))


                                    Пидорашки даже не могут позволить себе нормальные грузила.
                                    Ответить
                  • Хром на XP поддерживает, а вот как там со старыми смартфонами/телевизорами?
                    Ответить
                    • >Хром на XP поддерживает,
                      да, хром 2014-го года
                      Ответить
              • for of итерирует по массивам, а for in — по свойствам объектов. Если пробежаться for in по массиву, то он перечислит какую-то лишнюю питушню.
                Ответить
      • > сборная кобенийцев

        Ещё неплохо бы прикрутить словоморфер для этих выражений. Но в рамках простого js usersript это трудно.
        Ecma скриптухи-анскилябры ничего сложнее leftpad ведь не могут предложить.
        Ответить
        • Есть какой-то пакет для бидона, который умеет такое. Правда, название я ожидаемо забыл. Прикрутить прямо к ngk
          Ответить
          • Вот тут были ссылки на софт и статьи по кобенированию естественных языков:
            https://govnokod.ru/26269
            Ответить
            • Точно, pymorphy2. А я начал искать pymorph, а это вообще другой пакет про другую хуету. Какой нейминг ))
              Ответить
    • И что с этим делать надо?
      Ответить
    • Жаваскрипт всё ещё не поддерживает замыкающую запятую?
      Ответить
      • Поддерживает. Отсутствие этой фичи есть только в IE, даже на этой основе тест на IE был: !+[1,]
        Ответить
    • Надо бы это прикрутить к процедуре стеммерной натализации из моего старого скрипта…
      Ответить
    • На основе https://govnokod.ru/20235#comment337554
      https://i.imgur.com/ByWXY9Z.png
      В вашу пизду, я царь, как это, знаете, на то ваше государство и построено, чтобы не появлялись у меня в жопе коммунистические свиньи. На вашем государстве, сукины дети, сидит козлина Депутат, который уже ваш статус давно сократил, а вместе с ним и все ваши денежки. Это он, гнида, хочет провести процедуру в пизду органа Мистерий, за которую считается, что эта хуйна ему заслана белой лошадью за кровь, путана простецкая. А трахать сисек вы будете по мере своих сил и способностей, которые у вас будут. И пусть это будет вашим последним шансом на выживание, блядь. Я царь, как хрен моржовый.
      Ответить
      • У меня один раз в жопе были не то чтобы коммунистические свиньи, но глисты были. Это довольно легко лечат сейчас, рекомендую
        Ответить
        • Глисты это и есть эволюционировавшие коммунистические свиньи, которые решили национализировать жопу и говно в ней. Землю - крестьянам! Фабрики - рабочим! Жопу - глистам!
          Ответить
        • LIST_T gList;
          Ответить
    • >С чего ты взял, что она будет работать некорректно?

      for~in по {...} без hasOwnProperty.

      Кто-то добавляет новый «полезный» метод и всё разваливается.
      Object.prototype.equals=function(x){return this==x};
      Ответить
      • В программе на си кто-то срет в память и затирает ее кусок. Следовательно, malloc работает некорреткно
        Ответить
    • 1. Выебал свою маму
      2. Выебал твою маму
      3. Обоссался
      4. Обосрался
      6. Сел на бутылку
      7. Потушил пердак
      8. Подхуйлятник (?)
      9. Днище
      Ответить
      • >Днище

        Трап, багор и питуз.
        Ответить
      • Доска, ушедшая краем под днище судна, держала багор за другой конец.

        Набор днища состоит из взаимно пересекающихся продольных (киль, днищевые стрингеры) и поперечных связей (флоры). Основной продольной связью днищевого набора является киль, который проходит по всей длине корабля, совпадая с его диаметральной плоскостью. В оконечностях корабля киль соединяется со штевнями: с форштевнем — в носовой оконечности и с ахтерштевнем — в кормовой.

        Днищевые стрингеры представляют собой продольные балки, идущие параллельно килю, и вместе с ним обеспечивающие продольную прочность корпуса.
        Ответить
        • доска ушедшая краем под днище судна держала багор и с ахтерштевнем в носовой оконечности и с форштевнем в носовой оконечности и вот уже лодки привязываются покрепче крепятся кунгасы ловушки чтобы
          Ответить
    • > 'прыщеблядский' : 1/8

      Числа — это, я так понимаю, веса для вероятности возникновения фразы? А покажи код, которым ты выбираешь фразу с учётом этих вероятностей?
      Ответить
    • Да блядь, нагенерит уже кто-нибудь пасты?
      Ответить

    Добавить комментарий