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

    −2

    1. 1
    2. 2
    Граждане!
    Пишите код на высокоуровневых языках!

    Например, на паскале.
    Программы на пасцале удобочитаемы, даже можно чуть вникнуть в задачу кода.
    А то - хуй пойми, что означает например вот это:

    byte_t vector_mult(const std::array<byte_t, 4>& v1, std::array<byte_t, 4>&& v2) {
    std::transform(begin(v1), end(v1), begin(v2), begin(v2),
    [](byte_t x, byte_t y) { return mapper.at(y)(x); });
    return std::accumulate(begin(v2), end(v2), byte_t(0), std::bit_xor<byte_t>());



    ...По крайней мере, код будет читабелен, а не состоять из потусторонних закорючек.

    Запостил: AnalBoy, 20 Января 2020

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

    • Узрел скрытую подначку на холивар тему ""си++" против "делфей""... не прокатит, можешь даже не пытацца.
      В сиподобных programmng languages тип перемённой пишется слева от ее имени, приведение типов тоже чуть специфичнее, чем в этих Твоих паскалях.
      Ответить
      • Есть сиподобных programmng languages тип перемённой пишется справа от имени, например Котлин и Go. В котельне можне даже опускать.
        Ответить
      • А как еще, если не слева и не справа? В си вот тип пишется вокруг идентификатора:
        int myArray[64]; 
        unsigned (*а)(char);
        Ответить
        • Ричи как бы говорит нам: "нехуй объявлять массив указателей на функции принимающих массив коллбеков принимающих коллбеки принимающих...".
          Ответить
          • А мне кажется, они о таких извращениях и не думали. Тогда просто писали код, который более-менее укладывался в голове. Раздутых приложений не было. Суперпроектирование, суперабстрагирование и множество ФВП не были нужны, тем более что всё это тормозило. И их использование никак не затрудняли, а просто не оптимизировали под эти редкие конструкции язык, т.к. тормоза даже идиот не хотел включать в программу.
            Ответить
            • >массив указателей на функции

              Это снижает перфоманс.

              В те времена Цари делали ультрахитрые свищи с дафф-девайсами и проваливанием.
              На ГК уже были куски кода из K&R.
              Ответить
    • > 4>& v1
      XNJ "NJ&

      Ксати, в стоке госта-бормана похожу кривой парсер код из поста.
      Ответить
      • А, тьфу ты, это часть "const std::array<byte_t, 4>& v1" просто я к крестам не привычен и не отличил сразу запятую-разделитель параметров шаблона от запятой-разделителя параметров функции.
        Ответить
        • Это ещё ладно, там и >> (оператор) надо отличать от >> (закрыли 2 шаблона).
          Ответить
      • Код на «C++» настолько сложно парсить, что даже сток не справляется.
        Видимо, [⁢code][⁢/code] в посте не парсится. Передал в инженерный отдел, что-нибудь придумаем.
        Ответить
    • Ну используется это как-то так:
      myvector v1 = getNormal();
      myvector v2 = v1 * v1;

      И все понятно - логика алгоритма видна, и эффективность при этом не страдает. А то вы залезли в кишки высокооптимизированной либы и жалуетесь, что СЛОЖНА.
      Ответить
      • > кишки высокооптимизированной либы
        Если бы. Это кусок из говнокода какого-то дебила: https://govnokod.ru/26357.
        Ответить

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