1. Куча / Говнокод #27842

    0

    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
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    <style type="text/css" media="all">
    	html.cms a[href^="https://www.who.int"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/en/"] {background-color:#ffcc00;}
        html.cms a[href^="http://www.who.int"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/en/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/en"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/en/"] {background-color:#ffcc00;}
    	html.cms a[href="/"] {background-color:inherit !important;}
    	html.cms a[href="/en"] {background-color:inherit !important;}
    	html.cms a[href="/en/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/en"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/en/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/en"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/en/"] {background-color:inherit !important;}
        html.cms a[href^="https://www.who.int"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/ar"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/ar/"] {background-color:#ffcc00;}
    	html.cms a[href="/ar"] {background-color:inherit !important;}
    	html.cms a[href="/ar/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/ar"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/ar/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/zh"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/zh/"] {background-color:#ffcc00;}
    	html.cms a[href="/zh"] {background-color:inherit !important;}
    	html.cms a[href="/zh/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/zh"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/zh/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/zh"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/zh/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/fr/"] {background-color:#ffcc00;}
        html.cms a[href^="http://www.who.int"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="http://www.who.int"][href$="/fr/"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/fr"] {background-color:#ffcc00;}
    	html.cms a[href^="/"][href$="/fr/"] {background-color:#ffcc00;}
    	html.cms a[href="/fr"] {background-color:inherit !important;}
    	html.cms a[href="/fr"] {background-color:inherit !important;}
    	html.cms a[href="/fr/"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/fr"] {background-color:inherit !important;}
    	html.cms a[href$="http://www.who.int/fr/"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/fr"] {background-color:inherit !important;}
    	html.cms a[href$="https://www.who.int/fr/"] {background-color:inherit !important;}
    	html.cms a[href^="https://www.who.int"][href$="/ru"] {background-color:#ffcc00;}
    	html.cms a[href^="https://www.who.int"][href$="/ru/"] {background-color:#ffcc00;}
    </style>

    Сайт ВОЗ. Многое можно ожидать от frontend, но такое...

    Запостил: rotoeb, 26 Ноября 2021

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

    • надеюсь это писано руками
      Ответить
    • ебал ВОЗ в рот
      Ответить
    • Я понимаю, когда ^, $ и !important используют в user.css, чтобы патчить чужие сайты. Но на своём...
      Ответить
      • Дай чмокну в носик. Всегда раздражал этот "!important".
        Ответить
        • Кто придумал его так писать?
          Непонятно, значит «обрати внимание важно» или «не важно».
          Ответить
          • Причём других флагов с восклицательным знаком нету?
            Ответить
            • Бери выше, почему нет флага important с двумя восклицательными знаками?
              Ответить
              • Потому что потом весь код будет в !!!!!!!!important?
                Ответить
                • А могли ведь и правда сделалать что-то в духе important: 100 чтобы приоритеты разруливать.
                  Ответить
                  • А с z-index ведь так же и сделали.
                    Ответить
                    • А туда можно поставить +Infinity и победить в этой специальной олимпиаде?
                      Ответить
                      • Наверно нет, любой дурак поставит бесконечность и создаст конфликт можно только число или auto.
                        https://developer.mozilla.org/en-US/docs/Web/CSS/z-index
                        Ответить
                        • У уэб-макак бесконечность это 10000.

                          А так-то там весело:

                          Note: There is no official range of valid <integer> values. Opera 12.1 supports values up to 2^15 - 1, IE up to 2^20 - 1, and other browsers even higher. During the CSS3 Values cycle there was a lot of discussion about setting a minimum range to support: the latest decision, in April 2012 during the LC phase, was [-2^27 - 1; 2^27 - 1], but other values like 2^24 - 1 and 2^30 - 1 were also proposed. However, the latest spec doesn't specify a range anymore.

                          Я считаю, что надо еще одну конференцию созвать.
                          Ответить
                      • Будет !!!Infinity
                        Ответить
                • > !!!!!!!!important
                  Вот вы смеётесь, а мне такое реально пришлось писать.

                  В «Gitlab CI» шаги для сборки проекта (пайплайны) описываются декларативно в yaml-файлах. Чтобы не копипастить одно и то же общее говно в 100500 проектов, имеется возможно сделать #include другого файла (в том числе из других репозиториев): какие-то общие шаги (авторизация, подготовка окружений, сборка контейнера и прочее говно) выносятся в общую либу, которую можно просто подключить и течь.

                  Только вот есть одна беда: один и тот же файл подключить два раза нельзя — выдаётся ошибка о повторном инклуде. И всё было бы хорошо, если бы дубликаты не детектировались даже через несколько уровней индирекции: файлы B и C инклудят A, файл D инклудит B и C, «Гитлаб» посылает нахуй (да, diamond).

                  В ишшуе, открытом года два назад без каких-либо результатов (для «Гитлаба» это норма — там большинство ишшью таких), есть поистине великолепное решение: если к названию заинклуженного файла добавить слэш, то «Гитлаб» чудесным образом начинает считать, что это другой файл! Через такой великолепный воркэраунд проблема выше легко фиксится: файл B инклудит «/A.yaml», файл C инклудит «//A.yaml» — и теперь файл D может заинклудить B и C без каких-либо проблем!
                  В итоге в моём небольшом сборнике CI-говна имеется файл с великолепным «include "///////foo.yaml"».
                  Ответить
                  • Когда ты пишешь достаточно большую систему на декларативном языке, ты должен быть готов к копипасте или к генерации с помощью сторонних наблонизаторов
                    Ответить
                    • Это правда.

                      Кстати, «Gitlab CI» — достаточно развитая декларативная система, поэтому там искаропки есть возможность прямо во время работы пайплайна сгенерировать башицей новое описание пайплайна и запустить его!
                      Ответить
                  • Именно поэтому я за
                    http://govnokod.ru/27560
                    Reject modernity
                    Embrace tradition
                    Ответить
          • нужен чМаФФки-стайл

            important - можно болт забить
            ...
            iMPorTAnt - так и быть, применим в 45% случаев
            ...
            IMPORTANT - тут уже не отвертишься
            Ответить
            • Нужен important и __always_important
              Ответить
              • important_on_fridays
                important_when_customer_opens_site
                Ответить
                • important_to_me
                  Ответить
                • > important_when_customer_opens_site
                  Кстати, здесь как-то скидывали исходники хромого, где был захардкоженный список сайтов, которые нужно отображать немного "иначе"...
                  Ответить
                  • А ещё мне понравилось, что разработчики «Хромооперы» к своему поделию прикладывают файл «browser.js», в котором к списку исключений, зашитому в код «Хромиума», добавляется свой список, который можно обновлять без переконпеляции.
                    Ответить
                • nth-important(2n+1)
                  Ответить
            • > применим в 45% случаев
              ?important
              Ответить
            • Вот именно таким образом они и изобрели
              https://en.cppreference.com/w/cpp/language/lookup
              Ответить
      • ¿А что такое ^ и $?
        Ответить
        • ¿Испанский учишь?
          Ответить
        • ^= означает найти образец в начале строки.
          $= означает найти образец в конце строки.
          Ответить
          • Интересно, какой у этого говна пирфоманс, раз стиль зависит от контента?
            Ответить
            • Я видел хуже.

              В IE в CSS можно было использовать функцию expression, аргументом которой писать выражение в духе js, которое пересчитывалось при каждом изменении любого свойства любого объекта.

              Добавив в CSS пару-тройку expression, можно было устроить жуткие тормоза, когда даже после перемещения мышки всё висло.
              Ответить
              • Какая тьюринг полнота )))
                Ответить
                • Главное, чтобы в expression юзерский контент не подставлялся.
                  Ответить
              • а еще там были фильтиры через ActiveX:

                filter: progid:DXImageTransform.Microsoft.Glow(Color=#eeeeee,Strength=2)
                Ответить
              • [deleted]
                Ответить
    • почему мне показывают рекламу

      Marshall Шляпа вязаная для хорьков, розовая. 50 ₽
      Ку­пить за 50 ₽. 50 р.
      Ответить
      • Всего 50₽, порадуй своего хорька.
        Ответить
        • Зачем хорьку шляпа?
          Ответить
          • Выгуливать его, видимо.
            Ответить
          • надо блять купи шапку мне сучара
            Ответить
            • Ебать ты злой

              Впрочем, хорьки и правда злые и кусучие. Из куньих хорошо приручаются ласки и выдры
              Ответить
              • Куньи обычно поехавшие. Они могут кидаться на потенциальную добычу, которая больше и сильнее их (не съем, так понадкусываю).
                Ответить
                • В основном росомаха и медоед так делают. Барсук более мирный, например.

                  Но в целом да, они почти все безбашенные

                  В Японии у чувака живут домашние выдры
                  https://www.youtube.com/watch?v=XJuAPGK3iOU
                  Ответить
          • в мои школьные годы хорьками вроде называли леди с невысокой социальной ответственностью
            Ответить
            • дык у нас хорькина потому так и называется
              в госдупе сидит
              Ответить
    • Не уверена что у ВОЗ есть свои веб-разработчики (или там есть высоко компетентный техлид по вебу). Но !important-ы меня тоже раздражают (как и костылинг стилей через pattern matching - не юзер-плагин же пишем), убираю их везде где вижу. Нужно применить правило к любому чилду контейнера - пиши отдельную обертку для чилдов (в случае компонентов) или задай специальный BEM класс чилду.
      Ответить
      • >BEM

        А неужели в мире shadow DOM, и всяких React и Angular2 до сих пор актуален BEM?
        Как там борщик?>
        Ответить
        • Если надо задать позицию в поле/сетке конкретному чилду(ам), это делается на уровне поля/сетки, чтобы можно было чилда просто вставить и все. И не гадать че он так криво вставился. Это делается в т.ч. с помощью BEM классовых селекторов. Нужны селекторы для интеграционных тестов тестировщику - тоже по BEM-у именуешь.

          Алсо с помощью BEM селекторов на прошлой работе кастомизировались компоненты и их отдельные части. В интерпрайзе бы назвали это кощунством и сказали делать на темах.

          Алсо BEM не только про селекторы. Правило "компонент не должен управлять собственной позицией в сетке" - тоже часть BEMа. И т.д.
          Ответить
        • ненужен
          Ответить
          • Ну ты учти, что в Яндексе развит NIH, и там любят напилить всё свое, даже при наличии общедоступных попенсурс аналогов

            Так что может быть кто-то там и BEMит
            Ответить
            • В любой достаточно большой компании есть какая-то самописная хуйня на которую смотришь и думаешь как она не сдохла 15 лет назад. А не сдыхает из-за какого-то техлида-самодура который эти же 15 лет там сидит
              Ответить
              • бывает еще так, что все согласны, что это говно и ненужно, но ни у кого нет достаточного количества яиц чтобы потратить месяц времени на выпил говна (и вероятно что-то сломать в трех соседних проектах еще при том)
                Ответить
                • Именно поэтому я за убер

                  Убер год переписывал iOS приложение с objective C на свифт обосравшись раз 10 по пути https://twitter.com/StanTwinB/status/1336890442768547845?s=20
                  Ответить
                  • Это... жесть
                    Ответить
                  • Милочка, вы жалуетесь или хвастаетесь? (c)
                    Ответить
                  • > There’s a video somewhere in one of our talks of an Uber engineer typing a single line statement in Xcode and then waiting 45 seconds for the letter to appear in the editor slowly, one-by-one.

                    Apple обошли Жидбрейнс на поприще построения тормознутых IDE?

                    > our compiled code size was growing a rate of 1.3 mb a week.
                    Это пиздец.
                    Ответить
                    • При том, что XCodeвый парсер тупее Intellijеевского

                      Думаю, XCode не виноват: просто 1.3 mb a week возможно требовало 1.3 m lines of code per file

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

                      Хотя я не прав: если программисты реально высирали 1.3 метра кода со скоростью одна буква в 45 секунд, но они очень крутые!
                      Ответить
                      • Коммерческий успех? А они уже вышли в плюс, я забыл?
                        Ответить
                        • Чистая прибыль ▲ 1,8 млрд $ (2018)
                          хз правда плюс ли это
                          Ответить
                          • «Убытки американской компании Uber во II квартале 2019 г. достигли $5,2 млрд, следует из ее отчетности. Это рекордные квартальные убытки для Uber, пишет The Wall Street Journal.»

                            С телефона неудобно гуглить, надо завтра смотреть
                            Ответить
                      • > программисты реально высирали 1.3 метра кода со скоростью одна буква в 45 секунд, но они очень крутые!

                        Мечта дефекейта
                        Ответить
                    • Было дело, но уже давно более-менее нормально, хотя в каждом новом икскоде то там то там откуда-то деградация

                      Настоящий пиздец вот:

                      > We had 92 and counting.

                      У приложения из примерно семи экранов 92 зависимости.
                      Ответить
                      • нахуя вообще переписывать?

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

                        мы так на коко с жабы перелазим. Если бы мы всё с ноля переписали, то охуели бы
                        Ответить
                        • > But the general feeling of the architecture team was that most of Swift’s problems centered around the flakiness of the Objective-C interop back then so if we wrote a pure Swift app we could avoid the major issues

                          Не смогла

                          Видимо, изначальное качество было настолько ошеломляющим, что всё равно пришлось бы переписывать с нуля похуй на чём
                          Ответить
                      • > У приложения из примерно семи экранов 92 зависимости.
                        Если зависимости уровня left-pad, сотню набрать легко.
                        Ответить
                    • > At the time we were planning to include the new app in the old app bundle and slowly roll it out at runtime as a safety net.

                      Yo dawg, мы встроили тебе приложение в приложение. Ой, а чо эта оно сто метров весит??
                      Ответить
                      • Какой А/Б тест )))
                        Ответить
                        • Это к вопросу о применимости подобных практик на мобайле в принципе
                          Ответить
                          • Да юзеры уже привыкли, что любая хрень на пару экранов весит сотню метров...
                            Ответить
                            • В аппсторе есть (были?) ограничения на размер приложения, доступного для загрузки по мобильному интернету
                              Ответить
                              • А как всякие игры ставить? Искать вайфай точку?
                                Ответить
                                • Раньше да.

                                  Но я посмотрел, с 2019-го года уже нет лимита. Последнее ограничение было 200мб
                                  Ответить
                                • Игры иногда весят очень мало, НО включают в себя возможность докачать всякий ебучий контент либо отдельно, либо в процессе установки, минуя ограничение. Как PUBG mobile, моя любимая игра.
                                  Ответить
                                  • Как можно играть в шутер на мобиле?
                                    Ответить
                                    • Ну, кампутир в класс пронести сложновато, потому вот так
                                      Ответить
                                      • Плюс он, в отличие от компьютерного пабг, бесплатный.
                                        Ответить
                                    • Кстати, есть специальные ноутбуки-эмуляторы андроида, чтобы играть в мобильные шутеры как король.
                                      Ответить
                                      • > ноутбуки-эмуляторы андроида
                                        Планшет с более чем одним USB выходом и встроенной клавиатурой?
                                        Ответить
                      • > safety net

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

                            Теперь сравни с открытым множеством андроидов. Пока ты пилишь код, дядюшка Ляо выпустил ещё одну модель с 4к экраном, гигом памяти и телеприёмником.
                            Ответить
                    • > We also replaced *all* of our Swift structs with classes

                      Мы взяли Свифт и начали выбрасывать фишки языка, ведь именно для этого мы начали переписывать всё с objc
                      Ответить
                    • > architecture centered around our new realtime stream based networking protocol (that’s the part I wrote).

                      Учитесь, дети, как правильно говорить «я гонял JSON по вебсокетам»
                      Ответить
                    • Ну главное конечно, что

                      > A bunch of people got promoted

                      и эти питухи даже не стесняются толкать эту дичь в свитере
                      Ответить
                      • Собственно главная цель переписывания. Как и половина проектов на кладбище гугла...
                        Ответить
                        • Да уж

                          «Если бы мы вовремя не обосрались, то нас бы уволили за отсутствием работы»
                          Ответить
                        • Я знал питуха, который какое-то тормозящее вебджаваговно перевел с одного шаблонизатора на другой. Год переводил. Почему-то лучше не стало. Оказалось, что он не делал бенчмарков и ничего не профайлил, но где-то слышал, что один шаблонизатор быстрее другого. Вроде его уволили в конце, но год просрать он успел

                          Вообще у нас тоже иногда делают бессмысленные телодвижения, но это стараются пресекать в первые несколько месяцев.
                          Ответить
                          • Год менял "двойные" кавычки на 'одинарные'?
                            Ответить
                            • ну да примерно
                              freemaker переводил на velocity или наоборот, не помню
                              не суть важно
                              Ответить
                              • А тормозило оно поди от миллиона запросов к базе на каждый чих? Бигдата на ровном месте.
                                Ответить
                                • Скорее всего да. Обычно вебговно тормозит от N+1 в базе.

                                  Код конечно тоже может тормозить, но хорошо прогретая и проджитенная джава чтобы тормозила так, что веб (а не десктоп) приложению стало реально плохо, это нужно наверное задачу комивояжора решать, не знаю
                                  Ответить
                            • Seek and destroy replace
                              Ответить
                          • Почему уволили в итоге?
                            Ответить
                            • Партнёры на контору играли, а он не знал и гол забил
                              Ответить
                            • ну он обещал сделать приложение продакшен реди, и не сделал. В конторе как-то ему доверились, и не следили, и он говорил "вот уже сейчас доделаю скоро", а через год не сделал
                              Ответить
                            • Завистливые каллеки подсидели
                              Ответить
                  • > our compiled code size was growing a rate of 1.3 mb a week.

                    https://static.banky.club/shitposter.club/f00acb092214a0def25caf33e91d14b8916db5aff5f917aab64587c6a0e8b0a2.jpg?name=Husky_1638828854510_K6CCZYF4J8.jpg

                    (mildly NSFW)
                    Ответить
                    • Да ладно, чуваки просто добавляли по 2 зависимости в неделю. Даже как-то скромно получается. Или оптимизатор хорошо выкидывал ненужный код.
                      Ответить
                    • > shitposter

                      Прочитал как NSHipster
                      Ответить
                      • PHiPster
                        Ответить
                        • PHPider
                          Ответить
                          • Сканер уязвимостей?
                            Ответить
                            • блядь
                              https://github.com/vition/phpider
                              ну и пидор и есть
                              $url=isset($param["url"])?$param["url"]:'';
                                      $type=isset($param["type"])?$param["type"]:'get';
                                      $data=isset($param["data"])?$param["data"]:'';
                                      $cookie=isset($param["cookie"])?$param["cookie"]:$this->cookie;
                                      $header=isset($param["header"])?$param["header"]:'';
                                      $timeOut=isset($param["timeOut"])?$param["timeOut"]:60;
                                      $verify=isset($param["verify"])?$param["verify"]:false;
                                      $sslCert=isset($param["sslCert"])?$param["sslCert"]:'';
                                      $sslKey=isset($param["sslKey"])?$param["sslKey"]:'';
                                      $encoding=isset($param["encoding"])?$param["encoding"]:'UTF-8';
                                      $referer=isset($param["referer"])?$param["referer"]:$url;
                              Ответить
                              • Шаблон «иф иссет» очень часто встречается в «PHP». Настолько часто, что хочется написать функцию:
                                <?php
                                
                                function titsorgtfo($petouchoque, $grebechoque, $borodouchka) {
                                    return array_key_exists($grebechoque, $petouchoque) ? $petouchoque[$grebechoque] : $borodouchka;
                                }
                                
                                $url = titsorgtfo($param, 'url', '');
                                $type = titsorgtfo($param, 'type', 'get');
                                Ответить
                                • В языках для более умных людей (котлин, JS, Perl, вроде жаже C#) для этого есть оператор

                                  В языках для менее умных -- нет
                                  Ответить
                                  • $param['cookie'] or 'default'

                                    В пыхе не работает?

                                    З.Ы. Хотя это не совсем эквивалент.
                                    Ответить
                                    • не знаю, но раз макаки копипастят говно то верно нет

                                      > это не совсем эквивалент.
                                      чому?
                                      Ответить
                                      • Ноль или пустую строку задать не даст, уйдёт на дефолт. Неспроста же там иссет.
                                        Ответить
                                    • Код упадёт, если у $param нет ключа 'cookie'. А проверка isset($param['cookie']) позволяет коду не упасть.

                                      isset — это не вызов функции, а синтаксический сахар.
                                      Ответить
                                      • > упадёт

                                        А если собачку добавить?
                                        Ответить
                                        • > А если собачку добавить?

                                          Не упадет но будет восстание машин...
                                          Ответить
                                      • >упадет
                                        > А проверка isset($param['cookie']) позволяет коду не упасть.

                                        пых сделан имбецилами и для имбецилов
                                        факт!
                                        Ответить
                                        • А как в ЯП для умных убедиться в наличии ключа в ассоциативном массиве, чтобы при его отсутствии ничего не сломалось?
                                          Ответить
                                          • Проверить что он там contains например?

                                            Просто в этих языках можно сказать например
                                            val user = users.getOrDefault("petuh, User("krestuh"))

                                            а в пыхе так нельзя не дублируя "petuh"?
                                            Ответить
                                            • Можно, если объявить users как класс, реализующий интерфейс ArrayAccess, и реализовать метод getOrDefault.

                                              Готового getOrDefault в стандартной библиотеке пышечки я не нашёл.
                                              Ответить
                                  • В питоне было бы param.get('cookie', 'default')
                                    Ответить
                                    • угу, в руби тоже примерно так же (ток там fetch)
                                      в JS "II"
                                      в коко элвис
                                      Ответить
                                  • C# все же сложнее (богаче на фичи) ЖС-а
                                    Ответить
                    • Вообще, отличная метафора всей вайти-индустрии, если подумать.
                      Ответить
                  • > The android folks at the time were big RxJava fans, and there was an equivalent RxSwift library that took advantage of the functional programming paradigms in Swift. Seemed straightforward

                    Реквестирую аккаунт peaktuBHblu_neTyx
                    Ответить

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