ЙажаСценарий / Говнокод #26907 Ссылка на оригинал

0

  1. 1
// https://habr.com/ru/company/ruvds/blog/515676/

Разбор худшего в мире куска кода.

Запостил: GDMaster GDMaster, (Updated )

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

  • смеш0н мне нахрюк на неизвестную ошибку в комментах. Сразу видно, что питух никогда не писал на сишечке под проприетарное апи
    Ответить
  • Это реальный код из продакшена или кто-то просто выебнулся?
    Ответить
  • if (account.username === username &&
            account.password !== password) {
    console.error(`Пароль ${account.password}, а вы ввели {password}`);
    }
    Ответить
    • я так примерно в детстве на борланд паскале писал, думаю все так делали
      Ответить
        • у автора даже свой сайт есть. Там статьи про покупку объектива на авито

          Но вообще чтобы понять, что километровая портянка из переменных soldat49 и komnata22 это плохо, нужна пара лет опыта обычно.
          Ответить
      • Посмотри мой первый говнокод, как раз таки борманд паскаль и бесконечная лесенка из ифов.
        Ответить
          • Кстати, я вот смотрю на этот код и думаю, что сейчас я бы тупо не смог это запилить. Начал бы думать про архитектуру, про то как убрать копипасту и т.п. А тогда - хуяк-хуяк за пару дней и всё работает.
            Ответить
            • Да ладно. Взял бы flex/yacc/antlr/parsec и не стал бы заморачиваться. Разве нет?
              Ответить
            • +1.

              В какой-то момент я мог написать что угодно. Бери, да пиши.
              А теперь начинаешь думать как сделать правильно, и пиздец.
              Ответить
  • Всё таки руби -- клвый
    puts %w(Но от жадности ква-ква и от глупости ква-ква).tally
    # {"Но"=>1, "от"=>2, "жадности"=>1, "ква-ква"=>2, "и"=>1, "глупости"=>1}

    а ваш язык так может?
    Ответить
    • print(table(strsplit("Но от жадности ква-ква и от глупости ква-ква", " ")))


      глупости жадности        и  ква-ква       Но       от 
             1        1        1        2        1        2


      А то, что %w никому не нужен, уже обсуждалось.
      Ответить
    • std::istream_iterator b(std::stringstream(s)), e;
      std::map<std::string, size_t> counts;
      for (auto i = b; b != e; ++b)
          counts[*b]++;
      for (auto [word, count] : counts)
          std::cout << word << " " << count << std::endl;
      Ответить
        • Ваш язык просто не может в такую вербозность, вот вы и завидуете.
          Ответить
          • спорим, что на джаве я могу написать более вербозно?
            Ответить
            • На джаве по-моему сплит есть, так что даже покороче выйдет.
              Ответить
                  • получится, но это все равно долго: сначала сплитим, потом итерируемся, проверяем слово в мапе, увеличиваем счетчик, потом еще ее вывести нужно красиво
                    Ответить
                    • А, там нету каких-нибудь getOrDefault? Надо именно проверять перед обращением?
                      Ответить
    • Мой язык имеет npm
      const _ = require('lodash');
      
      console.log(_.countBy('Но от жадности ква-ква и от глупости ква-ква'.split(' ')));
      Ответить
      • фу вот еще стороннюю либу ставить, и кавычки еще эти
        Ответить
        • Для не-скриптушни совсем не длинно

          p.s. что-то ГК начал проглатывать комментарии
          Ответить
          • > p.s. что-то ГК начал проглатывать комментарии
            Это как?
            Ответить
            • Да отправляю, а они потом не добавляются. То ли мне мерещится, что я отправляю, но уже во второй раз так
              Ответить
              • К чему такие потуги? Возьми член в рот и расслабься.
                Ответить
    • Давайте будем честны: без чтения доки доки ни один петух не поймёт, что такое «tally». Именно поэтому я за «Python».
      >>> from collections import Counter
      >>> Counter('Но от жадности ква-ква и от глупости ква-ква'.split(' '))
      Counter({'от': 2, 'ква-ква': 2, 'Но': 1, 'жадности': 1, 'и': 1, 'глупости': 1})
      Ответить
      • Давайте будем честны: без чтения доки доки ни один петух не поймёт, что такое «Counter»
        Ответить
    • еще бы по-человечески на методы можно было ссылаться (как в йаже да шарпее), цены бы не было (да, я знаю про &:xyz, это не то).
      Ответить

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

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8