1. Java / Говнокод #25356

    +1

    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
    @Override
    public String toString() {
        return "IndexData{" +
                "id='" + id + '\'' +
                ", regNum='" + regNum + '\'' +
                ", docType='" + docType + '\'' +
                ", customerOrg='" + customerOrg + '\'' +
                ", ownerOrg='" + ownerOrg + '\'' +
                ", responsibleOrg='" + responsibleOrg + '\'' +
                ", publishOrg='" + publishOrg + '\'' +
                ", path='" + path + '\'' +
                ", zipName='" + zipName + '\'' +
                ", xmlName='" + xmlName + '\'' +
                ", fileDate=" + fileDate +
                ", publishDate='" + publishDate + '\'' +
                ", info=" + info +
                '}';
    }

    сериализация в json

    Запостил: vistefan, 04 Февраля 2019

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

    • Прыщешкольник, ты еще жив?

      А в этой вашей жаве можно передавать параметры url структурой, а не клея строки?
      Ответить
      • Так ты сам вроде жабист, не?
        Ответить
        • Я жаву тоже знаю, но ни в одной проге еще я не видел чего-то кроме
          "http://url?param1=" + value1 + "&param2=" + value2

          Да-да, даже без urlencode
          Ответить
          • Вот что меня действительно выбешивает, это ОТСУТСТВИЕ В JS ПАРСИНГА URL! Каждый нахуй раз приходится копировать со SO, причём каждый раз разные реализации.
            Ответить
            • Типа https://docs.python.org/3/library/urllib.parse.html ? В js проблема больше - там вообще библиотеки не в почете.
              Ответить
              • С библиотеками у нас как раз все в порядке...
                https://www.npmjs.com/package/is-odd
                >isOdd
                >1 073 811 weekly downloads
                Давайте рассмотрим исходный код:
                const isNumber = require('is-number');
                
                module.exports = function isOdd(value) {
                  const n = Math.abs(value);
                  if (!isNumber(n)) {
                    throw new TypeError('expected a number');
                  }
                  if (!Number.isInteger(n)) {
                    throw new Error('expected an integer');
                  }
                  if (!Number.isSafeInteger(n)) {
                    throw new Error('value exceeds maximum safe integer');
                  }
                  return (n % 2) === 1;
                };

                А что же такое isNumber?
                https://www.npmjs.com/package/is-number
                >19 478 825 weekly downloads
                module.exports = function(num) {
                  if (typeof num === 'number') {
                    return num - num === 0;
                  }
                  if (typeof num === 'string' && num.trim() !== '') {
                    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);
                  }
                  return false;
                };
                Ответить
                • Вместо того чтобы закопать в землю мертворожденного инвалида JavaScript у кторого в стандартной либлиотеке нету способа определить является ли что-то числом, люди напилили миллиард либ

                  19 миллионов скачиваний болядь
                  Ответить
                  • Ну как же нет: typeof num === 'number'. Оставшаяся часть функции нужна, чтобы отсечь NaN или чтобы попытаться найти число в строке.
                    Ответить
                • Зачем их рассовали по отдельным пакетам?
                  Ответить
                  • Для гибкости!
                    Ответить
                    • Может, у авторов модулей - как у анимешников с тайтлами?
                      Ответить
                      • а что у анимешников с тайлтлами?
                        Ответить
                        • Больше тайтлов - почётнее анимебоярин.
                          Ответить
                          • А что такое тайтл в данном контексте?

                            Я просто прогулял все нулевые, из аниме я видел только суперкнигу
                            Ответить
                            • Вы и лекции по аниме на ГК прогуляли, видимо.

                              Я вообще в этом деле не специалист, но на пары к проф. Борманду ходил. Вот тут было обсждение: http://govnokod.ru/18124#comment285636

                              Если я правильно понимаю, 1 тайтл = 1 произведение - небольшой анимешный мультфильм или вовсе целый сериал.
                              Ответить
                            • Один сезон сериала, одна полнометражка и т.п.
                              Ответить
                              • > Один сезон сериала

                                Ты же говорил в указанном выше треде:
                                > Учти, что даже всякие 400-серийные Наруты считаются за 1 тайтл.

                                Или у Наруто один 400-серийный сезон?
                                Ответить
                            • > из аниме я видел только суперкнигу
                              Ну и покемонов же?
                              Ответить
                          • Ну не совсем. Качество отсмотренного материала тоже влияет. Пример: "у меня 100 тайтлов годной олдоты, а твои 500 - безыдейный штампованный комбикорм".
                            Ответить
                • Боже, какой же пиздец. Именно поэтому я за «статическую типизацию».
                  Ответить
            • Скажите, пожалуйста. Аллахола въебни.
              Ответить
            • > Каждый нахуй раз приходится копировать со SO, причём каждый раз разные реализации

              Бедненький
              Ответить
              • Мне тоже его жалко, как представлю как он своими стёртыми в кровь пальцами в очередной раз тыкает ctrl-c ctrl-v, так и наворачиваются слёзы на глазы :'(
                Ответить
                • А я использую Ctrl+Insert и Shift+Insert, чтобы нужные клавиши поменьше изнашивались (клавишу «Insert» не так жалко, как «c» и «v»).
                  Ответить
                  • https://youtu.be/lM8P-yEqz3c
                    Ответить
                  • > изнашивались
                    У меня сейчас где-то 6.3кк нажатий на "z" и "x". Клава жива. Так что вообще похуй.
                    Ответить
                  • Но зачем? Неужели новая клавиатура дороже пердолинга?

                    Вообще, люди кидаются в какие-то крайности. Либо лелеют свои цацки, покупают чехлы, накрывают тряпочкой и экономят ресурс. Либо тупо роняют, забивают гвозди, ... И те, и те в итоге платят больше нервами и деньгами.
                    Ответить
                    • Именно поэтому каждые 3 недели я покупаю новую китайскую клавиатуру за 300 рублей.
                      Ответить
                      • Почему так часто? Протирать лень?
                        Нельзя же так сильно Ctrl+C/Ctrl+V жать :)
                        Ответить
                        • Ctrl+C/Ctrl+V это признак ламерства

                          Нормальные программисты используют CTRL Ins + Shift Ins

                          ну или y и p :)
                          Ответить
                          • В некоторых программах Ctrl+C —– это вообще аналог break.
                            Ответить
                            • у соснольных прог в винде и у tty в юниусах так по умолчанию
                              Ответить
                            • Именно поэтому я за ctrl+break.
                              Ответить
                          • y и p - видимо, тоже говно с точки зрения разумного петуха.
                            y и p - буквенные клавиши, которые он бережёт и следит за клювом.
                            Ответить
                        • Множество причин: например, в последний раз я уронил банку пены для бритья на клавиатуру, и клавиша Ctrl перестала работать.
                          Обычная же - из-за моей неопрятности в клавиатуру падает/просыпается/проливается большое количество разнообразного говна, и не всегда есть силы или желание ее вычищать.
                          Ответить
                          • Именно поэтому я против "бритья".
                            Ответить
                            • Именно поэтому я за "женщин": у них нет бритья, а только лишь эпиляция
                              Ответить
                            • Ну да, петушиную "бороду" под клювом сбривать было бы опасно для здоровья.
                              Ответить
                            • Сенсация! Ричард Столман на «Говнокоде»!
                              Ответить
                              • Или Ларри Ойстерман
                                https://sec.ch9.ms/ch9/1e7c/ed36381b-5652-422b-9c8c-feb7a9f41e7c/Larry-Osterman-Whats-the-secret-to-succeeding-at-_960.jpg
                                Ответить
                                • https://www.wired.com/wp-content/uploads/blogs/wiredenterprise/wp-content/uploads/2012/08/ken-thompson-dennis-ritchie.jpg
                                  Ответить
                                • http://media.codethinked.com/images/posts/12-2007/Jon_Hall.jpg
                                  Ответить
                          • именно потому я за мак
                            там кроме контрола есть еще опшн и яблоко
                            три кнопки!

                            всех не убьегшь!!
                            Ответить
                      • Ты её об колено ломаешь там?
                        Ответить
                    • > экономят ресурс
                      Ножничная клава через пару месяцев активного использования: https://i.imgur.com/ay3AqJw.jpg

                      Именно поэтому я за механику.
                      Ответить
                      • Меру знать надо, чтоб из-за нетерпения на понтовые дорогие механические клацалки не тратиться.
                        Ответить
                        • DAS Keyboard это круто
                          остальное сост
                          Ответить
                          • Mitsumi Millennium круто, а у остального даже подставки под карандаш нет.
                            Ответить
                        • > нетерпения
                          А при чём здесь нетерпение?
                          Ответить
                          • Может, неудачное слово. Эмоциональность, прилив сил, невозможность усидеть на месте и т.п.
                            Ответить
                            • Эмоциональность - это когда перо или мышку кидают в стену, а потом спрашивают в чате как их починить... Немного не тот случай.
                              Ответить
                              • Пыл?

                                В любом случае, стоит успокоиться и не долбить по клавишам со всей дури.
                                В этом плане самое крутое - клавиатура на ультрабуках. Можно печатать тихо и почти без усилий. Миллиметр-полтора - и оно прожалось.
                                Ответить
                                • > со всей дури
                                  Иначе я не успеваю или клавиша не прожимается. А одна недожатая клавиша - слитое фк на мапе.

                                  Поэтому нежные механизмы подобных клавиатур непригодны для этой игры.
                                  Ответить
                                • > печатать тихо и почти без усилий
                                  Я просто оставлю это здесь: https://www.youtube.com/watch?v=go0JkNqVC0I
                                  Ответить
                                  • Ну вот, уже целых три просмотра. А говорили, что на «Говнокоде» никого нет.
                                    Ответить
                                    • Предлагаю устроить говнокодо-стрим по «Osu».
                                      Ответить
                                  • Хуйня какая-то, вот в симуляторах пианино можно подключить MIDI-клавиатуру, и занятие это менее бессмысленное. Именно поэтому я за "Synthesia". Хотя нет, я против "симуляторов".
                                    Ответить
                                    • >хуйня какая-то
                                      Ну да. Зато моск неплохо отключает.
                                      Ответить
                                      • Ничего не понимаю. В "PHP" никакой "моск" не нужен. Именно поэтому я за "PHP".
                                        Ответить
                                      • По этому я за Crusader Kings 2, в средневековье за то что думали сжигали!
                                        Ответить
                        • > меру знать
                          Сложно контролить силу нажатий во время быстрых паттернов... Вот и разъебалось крепление клавиши постепенно.
                          Ответить
                      • > Именно поэтому я за механику.

                        А я - за дешевое китайское мембранное говно
                        Ответить
                  • да нет, ты просто старый

                    ты копипстил еще в броланд паскале под дос, а там было именно ctrl ins + shift ins
                    Ответить
                    • В «Бройлер Паскале» ещё были кобенации Ctrl+K,B для начала выделения, Ctrl+K,K для завершения выделения, Ctrl+K,H для отмены выделения, Ctrl+K,C для вставки в данное место копии выделенного блока. Я пользовался Ctrl+K,I и Ctrl+K,U для добавления или удаления отступа слева (да, он добавлялся к каждой строке; другого способа работы с вертикальными блоками не было).

                      Там была целая куча кобенаций с Ctrl+K, позаимствованных... не помню, откуда. Из какого-то древнего редактора. Кто вспомнит название, тот древнее меня!
                      Ответить
                      • edit.com какойнить або multiedit?

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

                        но выделение блоков там было, да
                        Ответить
                        • «Wordstar». Сам вспомнил.

                          «Multiedit» появился уже позже, он использовал бройландовскую библиотеку «Трубовижн».
                          Ответить
                          • Я на турбовижине изучал ООП
                            Собссно, до турбовижена он мне особо и не нужен был. А там я кнопочки наследовал и переопределял какие-то методы, помню
                            Ответить
                          • >https://youtu.be/5kYfsP_WKLY?t=258

                            на nano похож, или как там этот говноредактор называется которым на ламеродистрах линуксов заменяют vim
                            Ответить
                      • > Ctrl+K
                        MSVS их взяла или не их?
                        Ответить
                        • Я не знаю, я всё через «msbuild» кокококомпилирую.
                          Ответить
                          • Программист на XML.
                            Ответить
                          • между прочим классная тула
                            поди мне идеевский проект собери с сосноли без грядла
                            Ответить
                            • > классная тула
                              Это сарказм, надеюсь?

                              > без грядла
                              Ну тогда студийный проект надо собирать без msbuild'а. Чтобы в равных условиях быть.
                              Ответить
                              • Вовсе нет.

                                Смотри: cproj и sln можно открыть и собрать и в студии, и с командоной строки (читай из CI).

                                Intellijные же проекты с командной строки собрать нельзя.

                                Gradle это сторонее решение, к тому же не имеющиее UI (в отличие от студии)


                                До появления градла Intelij-based продукты посасывали в этом вопросе и люди рядом с .idea коммитили сборку проекта на чем-то таком чтобы делать это на CI.

                                В студии же msbuild был уже очень давно.

                                Но и с градлом ситуация не очень хороша, потому что gradle это DSL на груви, и как любой DSL он не читаем и не писаем: кусочки градла копируют друг у друга не понимая их смысла, а кроме того там нет UI.

                                С другими Intellij продуктами все еще смешнее: для CLion там CMake, что в целом не плохо (но опять таки без UI) но для сборки одного файла генерируется тонна кода

                                В всякие python и ruby просто стоят в стороне: люди сначала приписывают PATHы в PyCharm , а потом тоже самое делают в системе для запуска тестов на CI.

                                В студии такой проблемы нет вспринцие
                                Ответить
                                • > не имеющиее UI
                                  Да и похуй, если честно. Если ты решил править vcxproj руками - то от UI придётся отречься. Разве что .cpp или .h файлик добавить (внимательно поглядывая на дифф). Иначе студия засрёт весь твой няшный и наглядный xml своим раскопипащенным под все конфиги говнищем.

                                  UI и сложные проекты не особо совместимы, имхо. В десятке-другом vcxproj'ей ты через гуйню заебёшься настройки поддерживать в консистентном состоянии.
                                  Ответить
                                  • >Да и похуй, если честно.
                                    хумхау.

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

                                    И вполне себе настраивался через UI и после этого работал с msbuild.

                                    Если тебе не хватает UI и декларативщины то уж тут уж конечно разницы особой нет: все равно придется писать рукакакаками.
                                    Ответить
                                    • > запуском батфайлов
                                      Ну вот есть у тебя 4 конфига сборки. UI студии въебёт в проект четыре копии этого кастомного шага с запуском батников. Комбики чуть-чуть не так стояли - она въебёт его не во все конфиги. Ревьювить диффы этой хуйни тоже не особо приятно...

                                      А солюшен из трёх проектов даже со сраными мейкфайлами легко поддерживать, имхо.
                                      Ответить
                                      • В теории в UI можно сделать общий шаг, не специфичный для типа сборки.

                                        Поддерживать Make может и легко, но вопрос в его синхронизации со студией

                                        Я же хочу комплишен иметь и запускаться по кнопочке "Run".

                                        А писать одно и тоже два раза я не хочу.
                                        Ответить
                                        • > комплишен иметь и запускаться по кнопочке "Run"
                                          Это всё и с "cmake" вполне работает. И поштучная сборка проектов из гуйни. И отладка.

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

                                            В целом связка CLion/CMake наименее плохая потому что у тебя есть синхронизация с UI и сборка с коммандной строки

                                            Стоит так же упомянуть xcode / xcodebuild
                                            Ответить
                                            • > а в студии разве можно
                                              "cmake" генерит "vcxproj" и "sln" во временном каталоге. Ты их открываешь студией и видишь все файлы с актуальными настройками. Если поправишь цмейклист и пнёшь сборку (из гуя или сосноли, без разницы), то "vcxproj" перегенерятся и студия их релоаднет. На трёх проектах это будет почти мгновенно :)
                                              Ответить
                                              • а как они это сделали? неужели их формат документирован?
                                                Ответить
                                                • > документирован
                                                  Да, msbuild неплохо документирован. По крайней мере основные механики и опции конпелятора. Если приноровиться - можно даже вручную проекты пилить. Вполне няшно получается, хоть и ебучий XML. Или генерить из своего собственного DSL'а.

                                                  А sln отреверсили, видимо. В нём ничего особо полезного нету помимо каталогов и ссылок на проекты.
                                                  Ответить
                                                  • Вообще тут интересный трейдофф

                                                    С одной стороны я хочу чтобы мне дали писать сборку на нормальном императивном языке и не ебли мозги своими XMLями и DSLями

                                                    С другой стороны GUI по нему не построишь
                                                    Ответить
                                                    • > GUI по нему не построишь
                                                      Построишь, в эту то сторону легко. А вот передавать изменения из гуя в этот язык - уже пиздец.
                                                      Ответить
                                                      • не построишь потому что парсить его можно только посредством запуска, а там нас ждет хальтинг проблем

                                                        гвоздь прав
                                                        Ответить
                                                        • Ну а цмейк и гредл путём запуска и парсят.
                                                          Ответить
                                                          • ну они не совсем императивные, они все же декларативные скорее

                                                            хотя можно наверное на грувях нахуячить в гредле и поствить раком IDE
                                                            можно же?
                                                            Ответить
                                                            • Да нихуя они не декларативные. Самый обычный псевдо-декларативный DSL на императивном языке.

                                                              Даже мейкфайл декларативней чем они ;)
                                                              Ответить
                                                              • ну если держаться формальностей то он довольно декларативен

                                                                там дерево строит говен всяких и потом эти говны исполняет

                                                                но конечно ничто не мешает

                                                                while (true) {}
                                                                Ответить
                                                                • В S" Forth" всё ненужное можно выпилить нахуй. Именно поэтому я за S" Forth".
                                                                  Ответить
                                  • > Если ты решил править vcxproj руками - то от UI придётся отречься.
                                    Ну хрен знает. После того, как мне Студия после drag'n'drop'а файликов в проект прописала в vcxproj их абсолютные пути, я файлики прописываю исключительно вручную.
                                    Ответить
                                    • ;) бывает такое.
                                      Я всегда проверяю файл перед коммтом
                                      Ответить
            • В JS вообще ничонет
              Именно потому я за пистон
              Ответить
      • Ты где-то здесь увидел параметры url, или это просто отвлеченный вопрос?

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

        Поэтому я за haskell.
        Ответить
    • Не знаю как в жабе, но в крестах проще так, чем ебаться с подключением библиотеки ради одного жсона. Если такое размазано много где, тогда другой разговор.

      Поэтому я за "PHP".
      Ответить
      • В крестах для JSON часто проканывает boost::property_tree.
        Ответить
        • Часто прокатывает? То есть может и не проканать?
          Ответить
          • Оно всё строками хуярит. Будет что-то в духе {"num": "42"} вместо {"num": 42}.
            Ответить
            • Как хорошо, что у «JS» слабая тупизация.
              Ответить
              • у питона сильная

                знал бы ты сколько я карамелек отсосал в джанге от того что не {"pk":42} а {"pk":"42"} например
                Ответить
                • Небось с жс туда перешел?
                  Ответить
                • В "TCL" и "SNOBOL" всё строки (правда для производительности в "TCL" таки добавили типы, но они в кишках и снаружи не заметны). Именно поэтому я за "TCL" и "SNOBOL".
                  Ответить
      • Тем более, библиотека рассчитана на общий случай, поэтому может работать медленно, а тут царский анролл без единого цикла и ветвления.
        Ответить
    • Где здесь JSON, vistefan?
      Ответить
      • Я объебался как никогда, разумеется, это не JSON, это автогенерённый toString, вставленный в IDEA через Shift+Insert.

        Однако говнокод в том, что такой toString написан у объекта, единственная цель которого -- быть DTO для сериализации в JSON, и только так он юзается, а toString unused.
        Ответить
    • Ты давбайоб, это автогенерация toString() в Intellij Idea, а не жидсон.
      Иди транспиль тайпскрипт в жыэс
      Ответить
      • Ты прав.

        > Иди транспиль тайпскрипт в жыэс
        Не пойду.
        Ответить
    • похже на генеренный идеей тустринг

      в нормальных ЯПах тустринги генерятся сами, но жвасосы любят руками писать много несложного кода
      Ответить
      • И это заебись для джавки
        Ответить
        • джаверам платят за количество букв, я в курсе
          Ответить
          • if((x<0).toString().length() == 4) // "true" состоит из 4 символов
            Ответить
          • нет, джаверам не платят за количество букв.
            Ответить
            • Им платят за количество классов.
              Ответить
              • Нет, это не так.
                Ответить
                • Им вообще не платят?
                  Ответить
                  • Именно поэтому я за «PHP».
                    Ответить
                  • В программировании на любом языке платят примерно за одно и то же, и примерно одинаково.
                    Ответить
                    • Я слышал, программистам на Perl платят, чтобы они НЕ писали код.
                      Ответить
                      • Есть и свои исключения ))
                        Ответить
                        • Боже, где эти исключения кроме booking.com?
                          Ответить
                          • Ну в маил.ру есть перлисты насколько я знаю
                            Ответить
                            • программистов нету, а перлисты есть?
                              Ответить
                              • > а перлисты есть?
                                Перлисты –— это те кто строчат всякие перлы, которые потом сюда постят? Так таких хоть жопой ешь.
                                Ответить
                            • А почему именно "Perl"? Мне кажется, что им больше идёт "PHP".
                              Ответить
                              • mail.ru делали хуёвые программы когда о PHP еще никто не слышал
                                Ответить
                                • Именно поэтому я за «mail.ru». Жаль, что их поделия не опенсорсные...
                                  Ответить
                          • в жж еще

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

                        Те же, кто решают простую задачу посредством написания сотен и тысяч строк кода, как правило, являются программистами на "PHP"
                        Ответить
                        • Пользоваться услугами психологов? Проблема выдумана, программа не нужна.
                          Ответить
                          • Всегда так делаю.
                            Ответить
                          • > Проблема выдумана

                            Это уже наверное к психиатрам, если дело дошло до попытки реализовать и понадобилось вмешательство специалиста.
                            Ответить
                      • Именно поэтому я за "C", 'J' и S" Forth".
                        Ответить
                    • а тогда в чем разница?
                      Ответить
      • В джаве даже не могут завести перегрузку операторов, долбоёбы тупые. Бедные джаверы вынуждены писать много буков.
        Ответить
        • Java напоминает водный пистолетик. Его дали детям вместо настоящего C++ чтобы случайно не отстерили себе ногу.

          Причем первые джависты осознанно решили себя кучи инструментов ради "Безопастности!", а современные никогда на плюсах и не писали (если не считать программы из трех строк, кончающейся словами system("pause")) и продолжают кукарекать что С++ сложный и нипанятный и небезопасный
          Ответить
          • В «Бейсике» вообще нет никаких инструментов. Именно поэтому я за «Бейсик».
            Ответить
            • лучшие инструменты есть у Apple

              Instrumetns.app это офанарительный профайлер на основе DTrace.
              можно профилировать свое приложение и течь[1] одновременно


              [1]
              https://docs.elementscompiler.com/Platforms/Cocoa/Instruments/Using_Instruments-_3-Leaks.png
              Ответить
          • >вместо настоящего C#
            Пофиксил. А C++ не нужен.
            Ответить
            • Вот классический адепт ненужности С++, чьи познания С++ ограничены system("pause")
              Ответить

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